blob: 01ae47023ee9ba78ae930d3b07454be96250b327 [file] [log] [blame]
Tom Hiller9e7c99d2020-08-13 22:31:42 -04001# 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}