Tom Hiller | 9e7c99d | 2020-08-13 22:31:42 -0400 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | # |
| 4 | # Datasheets: |
| 5 | # |
| 6 | # https://cdrdv2.intel.com/v1/dl/getContent/613456 |
| 7 | |
| 8 | # The datasheet says that this spec covers the following pci ids: |
| 9 | # 8086:1502 - Intel 82579LM gigabit ethernet controller |
| 10 | # 8086:1503 - Intel 82579V gigabit ethernet controller |
| 11 | |
| 12 | # Naming convention |
| 13 | # * Word groups separated by a blank line |
| 14 | # * Word groups with known meaning given a prefix |
| 15 | # * prefix will be defined in comment before group |
| 16 | # * Variable names to be named using a prefix, descriptive name and bit offset |
| 17 | # within the word, separated by an underscore. |
| 18 | # * Example: "prefix_description_0" |
| 19 | # * Unidentified reserved word groups will be named reserved and LAN Word |
| 20 | # * EXCEPTION: Word 0x24, Word 0x25, Word 0x26 also include bit offset |
| 21 | # within the word |
| 22 | # Offset hex address, separated by an underscore. |
| 23 | # * Example: "reserved_x03" |
| 24 | # * Nonprefixed names will be named reserved and LAN Word Offset hex address, |
| 25 | # separated by an underscore. |
| 26 | # * Example: "imageversioninfo_x05" |
| 27 | # * Unspecified words are prefixed with "offset_" |
| 28 | |
| 29 | # GbE values for 82579LM |
| 30 | { |
| 31 | # This example sets MAC address to 00:DE:AD:C0:FF:EE |
| 32 | # USE YOUR DEVICES MAC ADDRESS!! |
| 33 | # prefix: "mac_" |
| 34 | "mac_address_0" = 0x00, |
| 35 | "mac_address_1" = 0xDE, |
| 36 | "mac_address_2" = 0xAD, |
| 37 | "mac_address_3" = 0xC0, |
| 38 | "mac_address_4" = 0xFF, |
| 39 | "mac_address_5" = 0xEE, |
| 40 | |
| 41 | # Reserved (Word 0x3) |
| 42 | "reserved_x03" = 0x0800, |
| 43 | |
| 44 | # Reserved (Word 0x04) |
| 45 | "reserved_x04" = 0xffff, |
| 46 | |
| 47 | # Image Version Information (Word 0x05) |
| 48 | "imageversioninfo_x05" = 0x00D3, |
| 49 | |
| 50 | "reserved_x06" = 0xffff, |
| 51 | "reserved_x07" = 0xffff, |
| 52 | |
| 53 | # PBA Low and PBA High (Words 0x08 and 0x09) |
| 54 | # prefix: "pba_" |
| 55 | "pba_low_x08" = 0xffff, |
| 56 | "pba_high_x09" = 0xffff, |
| 57 | |
| 58 | # PCI Init Control Word (Word 0x0A) |
| 59 | # prefix: "pci_" |
| 60 | "pci_loaddeviceid_0" = 1, |
| 61 | "pci_loadsubsystemid_1" = 1, |
| 62 | "pci_reserved_2" = 0, |
| 63 | "pci_reserved_3" = 0x0, |
| 64 | "pci_pmenable_6" = 1, |
| 65 | "pci_auxpwr_7" = 1, |
| 66 | "pci_reserved_8" = 0x10, |
| 67 | |
| 68 | # ************* Configurable PCI IDs **************** |
| 69 | # TODO: make command line switch for these |
| 70 | # Subsystem ID (Word 0x0B) |
| 71 | "subsystemid_x0B" = 0, |
| 72 | # Subsystem Vendor ID (Word 0x0C) |
| 73 | "subsystemvendorid_x0C" = 0x8086, |
| 74 | # Device ID (Word 0x0D) |
| 75 | # TODO: 82579V uses "deviceid_x0D" = 0x1503, |
| 76 | "deviceid_x0D" = 0x1502, |
| 77 | # ************* END Configurable PCI IDs **************** |
| 78 | |
| 79 | # Words 0x0E and 0x0F Are Reserved |
| 80 | "reserved_x0E" = 0x0, |
| 81 | "reserved_x0F" = 0x0, |
| 82 | |
| 83 | # LAN Power Consumption (Word 0x10) |
| 84 | # prefix: "lanpwr_" |
| 85 | "lanpwr_d3pwr_0" = 0x2, |
| 86 | "lanpwr_reserved_5" = 0, |
| 87 | "lanpwr_d0pwr_8" = 0x7, |
| 88 | |
| 89 | # Word 0x12 and Word 0x11 Are Reserved |
| 90 | "reserved_x11" = 0x0000, |
| 91 | "reserved_x12" = 0x0000, |
| 92 | |
| 93 | # Shared Init Control Word (Word 0x13) |
| 94 | # prefix: "sicw_" |
| 95 | "sicw_dynamicclock_0" = 1, |
| 96 | "sicw_clkcnt_1" = 0, |
| 97 | "sicw_reserved_2" = 1, |
| 98 | "sicw_fullduplex_3" = 0, |
| 99 | "sicw_forcespeed_4" = 0, |
| 100 | "sicw_reserved_5" = 0, |
| 101 | "sicw_phydeviceype_6" = 0, |
| 102 | "sicw_reserved_8" = 1, |
| 103 | "sicw_phy_enpwrdown_9" = 0, |
| 104 | "sicw_reserved_10" = 1, |
| 105 | "sicw_macsecdisable_13" = 1, |
| 106 | "sicw_sign_14" = 0x2, |
| 107 | |
| 108 | # Extended Configuration Word 1 (Word 0x14) |
| 109 | # prefix: "ecw1_" |
| 110 | "ecw1_extcfgptr_0" = 0x0028, |
| 111 | "ecw1_oemload_12" = 1, |
| 112 | "ecw1_phyload_13" = 1, |
| 113 | "ecw1_reserved_14" = 0, |
| 114 | |
| 115 | # Extended Configuration Word 2 (Word 0x15) |
| 116 | # prefix: "ecw2_" |
| 117 | "ecw2_reserved_0" = 0x00, |
| 118 | "ecw2_extphylen_8" = 0x12, |
| 119 | |
| 120 | # Extended Configuration Word 3 (Word 0x16) |
| 121 | # prefix: "ecw3_" |
| 122 | "ecw3_extcfg1_0" = 0x00, |
| 123 | |
| 124 | # OEM Configuration Defaults (Word 0x17) |
| 125 | # prefix: "oem_" |
| 126 | "oem_reserved_0" = 0x000, |
| 127 | "oem_lpluenind0a_9" = 0, |
| 128 | "oem_lplueninnond0a_10" = 1, |
| 129 | "oem_gbedisinnond0a_11" = 1, |
| 130 | "oem_reserved_12" = 0, |
| 131 | "oem_gbedis_14" = 0, |
| 132 | "oem_reserved_15" = 0, |
| 133 | |
| 134 | # LED 0 - 2 Configuration Defaults (Word 0x18) |
| 135 | # prefix: "l02_" |
| 136 | # Lenovo default values |
| 137 | "l02_led0mode_0" = 0x4, |
| 138 | "l02_led0invert_3" = 0, |
| 139 | "l02_led0blink_4" = 0, |
| 140 | "l02_led1mode_5" = 0x3, |
| 141 | "l02_led1invert_8" = 0, |
| 142 | "l02_led1blink_9" = 1, |
| 143 | "l02_led2mode_10" = 0x2, |
| 144 | "l02_led2invert_13" = 1, |
| 145 | "l02_led2blink_14" = 0, |
| 146 | "l02_blinkrate_15" = 0, |
| 147 | |
| 148 | # Intel default Values |
| 149 | #"l02_led0mode_0" = 0x4, |
| 150 | #"l02_led0invert_3" = 0, |
| 151 | #"l02_led0blink_4" = 1, |
| 152 | #"l02_led1mode_5" = 0x7, |
| 153 | #"l02_led1invert_8" = 0, |
| 154 | #"l02_led1blink_9" = 0, |
| 155 | #"l02_led2mode_10" = 0x6, |
| 156 | #"l02_led2invert_13" = 0, |
| 157 | #"l02_led2blink_14" = 0, |
| 158 | #"l02_blinkrate_15" = 0, |
| 159 | |
| 160 | |
| 161 | # Reserved (Word 0x19) |
| 162 | # NOTE: bit 6 must be 1 for validation. See datasheet. |
| 163 | "reserved_x19" = 0x2B40, |
| 164 | |
| 165 | # Reserved (Word 0x1A) |
| 166 | # Advanced Power Management Wake Up Enable |
| 167 | # prefix: "amp_" |
| 168 | "amp_enable_0" = 1, |
| 169 | "amp_reserved_1" = 0x0421, |
| 170 | |
| 171 | # Reserved (Word 0x1B) |
| 172 | "reserved_x1B" = 0x0113, |
| 173 | |
| 174 | # Reserved (Word 0x1C) |
| 175 | "reserved_x1C" = 0x1502, |
| 176 | |
| 177 | # Reserved (Word 0x1D) |
| 178 | "reserved_x1D" = 0xBAAD, |
| 179 | |
| 180 | # Reserved (Word 0x1E) |
| 181 | "reserved_x1E" = 0x1502, |
| 182 | |
| 183 | # Reserved (Word 0x1F) |
| 184 | "reserved_x1F" = 0x1503, |
| 185 | |
| 186 | # Reserved (Word 0x20) |
| 187 | "reserved_x20" = 0xBAAD, |
| 188 | |
| 189 | # Reserved (Word 0x21) |
| 190 | "reserved_x21" = 0xBAAD, |
| 191 | |
| 192 | # Reserved (Word 0x22) |
| 193 | "reserved_x22" = 0xBAAD, |
| 194 | |
| 195 | # Reserved (Word 0x23) |
| 196 | "reserved_x23" = 0x1502, |
| 197 | |
| 198 | # Reserved (Word 0x24) |
| 199 | "reserved_x24_0" = 0x0000, |
| 200 | "reserved_x24_14" = 0, |
| 201 | "reserved_x24_15" = 1, |
| 202 | |
| 203 | # Reserved (Word 0x25) |
| 204 | "reserved_x25_0" = 0x0000, |
| 205 | "reserved_x25_4" = 1, |
| 206 | "reserved_x25_5" = 0, |
| 207 | "reserved_x25_7" = 1, |
| 208 | "reserved_x25_8" = 0x00, |
| 209 | "reserved_x25_15" = 1, |
| 210 | |
| 211 | # Reserved (Word 0x26) |
| 212 | "reserved_x26_0" = 0x00, |
| 213 | "reserved_x26_9" = 1, |
| 214 | "reserved_x26_10" = 1, |
| 215 | "reserved_x26_11" = 1, |
| 216 | "reserved_x26_12" = 0, |
| 217 | "reserved_x26_14" = 1, |
| 218 | "reserved_x26_15" = 0, |
| 219 | |
| 220 | # Reserved (Word 0x27) |
| 221 | "reserved_x27" = 0x80, |
| 222 | |
| 223 | # Offsets 0x28-0x2F |
| 224 | "offset_x28" = 0x0000, |
| 225 | "offset_x29" = 0x0000, |
| 226 | "offset_x2A" = 0x0000, |
| 227 | "offset_x2B" = 0x0000, |
| 228 | "offset_x2C" = 0x0000, |
| 229 | "offset_x2D" = 0x0000, |
| 230 | "offset_x2E" = 0x0000, |
| 231 | "offset_x2F" = 0x0000, |
| 232 | |
| 233 | # Boot Agent Main Setup Options (Word 0x30) |
| 234 | # Hardcoded PXE setup (disabled) |
| 235 | # prefix: "pxe30_" |
| 236 | "pxe30_protocolsel_0" = 0, |
| 237 | "pxe30_reserved_2" = 0, |
| 238 | "pxe30_defbootsel_3" = 0x3, |
| 239 | "pxe30_reserved_5" = 0, |
| 240 | "pxe30_prompttime_6" = 0x3, |
| 241 | "pxe30_dispsetup_8" = 0, |
| 242 | "pxe30_reserved_9" = 0, |
| 243 | "pxe30_forcespeed_10" = 0, |
| 244 | "pxe30_forcefullduplex_12" = 0, |
| 245 | "pxe30_reserved_13" = 0, |
| 246 | "pxe30_reserved_14" = 0, |
| 247 | |
| 248 | # Boot Agent Configuration Customization Options (Word 0x31) |
| 249 | # prefix: "pxe31_" |
| 250 | "pxe31_disablemenu_0" = 1, |
| 251 | "pxe31_disabletitle_1" = 1, |
| 252 | "pxe31_disableprotsel_2" = 0, |
| 253 | "pxe31_disbootorder_3" = 0, |
| 254 | "pxe31_dislegacywak_4" = 0, |
| 255 | "pxe31_disableflasicwpro_5" = 0, |
| 256 | "pxe31_reserved_6" = 0, |
| 257 | "pxe31_ibootagentmode_8" = 0, |
| 258 | "pxe31_contretrydis_11" = 0, |
| 259 | "pxe31_reserved_12" = 0, |
| 260 | "pxe31_signature_14" = 10, |
| 261 | |
| 262 | # Boot Agent Configuration Customization Options (Word 0x32) |
| 263 | # prefix: "pxe32_" |
| 264 | "pxe32_buildnum_0" = 0x28, |
| 265 | "pxe32_minorversion_8" = 0x2, |
| 266 | "pxe32_majorversion_12" = 0x1, |
| 267 | |
| 268 | # IBA Capabilities (Word 0x33) |
| 269 | # prefix: "pxe33_" |
| 270 | "pxe33_basecodepresent_0" = 1, |
| 271 | "pxe33_undipresent_1" = 1, |
| 272 | "pxe33_reserved_2" = 1, |
| 273 | "pxe33_efiundipresent_3" = 0, |
| 274 | "pxe33_iscsi_4" = 0, |
| 275 | "pxe33_reserved_5" = 0, |
| 276 | "pxe33_signature_14" = 10, |
| 277 | |
| 278 | "pxe_padding"[11] = 0xffff, |
| 279 | |
| 280 | # Checksum is generated by bincfg |
| 281 | # "checksum_gbe" = xxx, |
| 282 | |
| 283 | # G3 -> S5 PHY Configuration |
| 284 | "g3_s5_phy_conf"[0x16] = 0, |
| 285 | |
| 286 | # Padding 0xf80 bytes |
| 287 | "padding"[0xf6a] = 0xff |
| 288 | } |