1 # SPDX-License-Identifier: GPL-3.0-or-later
6 # https://cdrdv2.intel.com/v1/dl/getContent/613456
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
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
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_"
29 # GbE values for 82579LM
31 # This example sets MAC address to 00:DE:AD:C0:FF:EE
32 # USE YOUR DEVICES MAC ADDRESS!!
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,
42 "reserved_x03" = 0x0800,
44 # Reserved (Word 0x04)
45 "reserved_x04" = 0xffff,
47 # Image Version Information (Word 0x05)
48 "imageversioninfo_x05" = 0x00D3,
50 "reserved_x06" = 0xffff,
51 "reserved_x07" = 0xffff,
53 # PBA Low and PBA High (Words 0x08 and 0x09)
55 "pba_low_x08" = 0xffff,
56 "pba_high_x09" = 0xffff,
58 # PCI Init Control Word (Word 0x0A)
60 "pci_loaddeviceid_0" = 1,
61 "pci_loadsubsystemid_1" = 1,
63 "pci_reserved_3" = 0x0,
66 "pci_reserved_8" = 0x10,
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 ****************
79 # Words 0x0E and 0x0F Are Reserved
83 # LAN Power Consumption (Word 0x10)
85 "lanpwr_d3pwr_0" = 0x2,
86 "lanpwr_reserved_5" = 0,
87 "lanpwr_d0pwr_8" = 0x7,
89 # Word 0x12 and Word 0x11 Are Reserved
90 "reserved_x11" = 0x0000,
91 "reserved_x12" = 0x0000,
93 # Shared Init Control Word (Word 0x13)
95 "sicw_dynamicclock_0" = 1,
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,
108 # Extended Configuration Word 1 (Word 0x14)
110 "ecw1_extcfgptr_0" = 0x0028,
111 "ecw1_oemload_12" = 1,
112 "ecw1_phyload_13" = 1,
113 "ecw1_reserved_14" = 0,
115 # Extended Configuration Word 2 (Word 0x15)
117 "ecw2_reserved_0" = 0x00,
118 "ecw2_extphylen_8" = 0x12,
120 # Extended Configuration Word 3 (Word 0x16)
122 "ecw3_extcfg1_0" = 0x00,
124 # OEM Configuration Defaults (Word 0x17)
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,
132 "oem_reserved_15" = 0,
134 # LED 0 - 2 Configuration Defaults (Word 0x18)
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,
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,
161 # Reserved (Word 0x19)
162 # NOTE: bit 6 must be 1 for validation. See datasheet.
163 "reserved_x19" = 0x2B40,
165 # Reserved (Word 0x1A)
166 # Advanced Power Management Wake Up Enable
169 "amp_reserved_1" = 0x0421,
171 # Reserved (Word 0x1B)
172 "reserved_x1B" = 0x0113,
174 # Reserved (Word 0x1C)
175 "reserved_x1C" = 0x1502,
177 # Reserved (Word 0x1D)
178 "reserved_x1D" = 0xBAAD,
180 # Reserved (Word 0x1E)
181 "reserved_x1E" = 0x1502,
183 # Reserved (Word 0x1F)
184 "reserved_x1F" = 0x1503,
186 # Reserved (Word 0x20)
187 "reserved_x20" = 0xBAAD,
189 # Reserved (Word 0x21)
190 "reserved_x21" = 0xBAAD,
192 # Reserved (Word 0x22)
193 "reserved_x22" = 0xBAAD,
195 # Reserved (Word 0x23)
196 "reserved_x23" = 0x1502,
198 # Reserved (Word 0x24)
199 "reserved_x24_0" = 0x0000,
200 "reserved_x24_14" = 0,
201 "reserved_x24_15" = 1,
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,
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,
220 # Reserved (Word 0x27)
221 "reserved_x27" = 0x80,
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,
233 # Boot Agent Main Setup Options (Word 0x30)
234 # Hardcoded PXE setup (disabled)
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,
248 # Boot Agent Configuration Customization Options (Word 0x31)
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,
262 # Boot Agent Configuration Customization Options (Word 0x32)
264 "pxe32_buildnum_0" = 0x28,
265 "pxe32_minorversion_8" = 0x2,
266 "pxe32_majorversion_12" = 0x1,
268 # IBA Capabilities (Word 0x33)
270 "pxe33_basecodepresent_0" = 1,
271 "pxe33_undipresent_1" = 1,
272 "pxe33_reserved_2" = 1,
273 "pxe33_efiundipresent_3" = 0,
275 "pxe33_reserved_5" = 0,
276 "pxe33_signature_14" = 10,
278 "pxe_padding"[11] = 0xffff,
280 # Checksum is generated by bincfg
281 # "checksum_gbe" = xxx,
283 # G3 -> S5 PHY Configuration
284 "g3_s5_phy_conf"[0x16] = 0,
286 # Padding 0xf80 bytes
287 "padding"[0xf6a] = 0xff