| # SPDX-License-Identifier: GPL-3.0-or-later |
| |
| # |
| # Datasheets: |
| # |
| # https://cdrdv2.intel.com/v1/dl/getContent/613456 |
| |
| # The datasheet says that this spec covers the following pci ids: |
| # 8086:1502 - Intel 82579LM gigabit ethernet controller |
| # 8086:1503 - Intel 82579V gigabit ethernet controller |
| |
| # Naming convention |
| # * Word groups separated by a blank line |
| # * Word groups with known meaning given a prefix |
| # * prefix will be defined in comment before group |
| # * Variable names to be named using a prefix, descriptive name and bit offset |
| # within the word, separated by an underscore. |
| # * Example: "prefix_description_0" |
| # * Unidentified reserved word groups will be named reserved and LAN Word |
| # * EXCEPTION: Word 0x24, Word 0x25, Word 0x26 also include bit offset |
| # within the word |
| # Offset hex address, separated by an underscore. |
| # * Example: "reserved_x03" |
| # * Nonprefixed names will be named reserved and LAN Word Offset hex address, |
| # separated by an underscore. |
| # * Example: "imageversioninfo_x05" |
| # * Unspecified words are prefixed with "offset_" |
| |
| # GbE values for 82579LM |
| { |
| # This example sets MAC address to 00:DE:AD:C0:FF:EE |
| # USE YOUR DEVICES MAC ADDRESS!! |
| # prefix: "mac_" |
| "mac_address_0" = 0x00, |
| "mac_address_1" = 0xDE, |
| "mac_address_2" = 0xAD, |
| "mac_address_3" = 0xC0, |
| "mac_address_4" = 0xFF, |
| "mac_address_5" = 0xEE, |
| |
| # Reserved (Word 0x3) |
| "reserved_x03" = 0x0800, |
| |
| # Reserved (Word 0x04) |
| "reserved_x04" = 0xffff, |
| |
| # Image Version Information (Word 0x05) |
| "imageversioninfo_x05" = 0x00D3, |
| |
| "reserved_x06" = 0xffff, |
| "reserved_x07" = 0xffff, |
| |
| # PBA Low and PBA High (Words 0x08 and 0x09) |
| # prefix: "pba_" |
| "pba_low_x08" = 0xffff, |
| "pba_high_x09" = 0xffff, |
| |
| # PCI Init Control Word (Word 0x0A) |
| # prefix: "pci_" |
| "pci_loaddeviceid_0" = 1, |
| "pci_loadsubsystemid_1" = 1, |
| "pci_reserved_2" = 0, |
| "pci_reserved_3" = 0x0, |
| "pci_pmenable_6" = 1, |
| "pci_auxpwr_7" = 1, |
| "pci_reserved_8" = 0x10, |
| |
| # ************* Configurable PCI IDs **************** |
| # TODO: make command line switch for these |
| # Subsystem ID (Word 0x0B) |
| "subsystemid_x0B" = 0, |
| # Subsystem Vendor ID (Word 0x0C) |
| "subsystemvendorid_x0C" = 0x8086, |
| # Device ID (Word 0x0D) |
| # TODO: 82579V uses "deviceid_x0D" = 0x1503, |
| "deviceid_x0D" = 0x1502, |
| # ************* END Configurable PCI IDs **************** |
| |
| # Words 0x0E and 0x0F Are Reserved |
| "reserved_x0E" = 0x0, |
| "reserved_x0F" = 0x0, |
| |
| # LAN Power Consumption (Word 0x10) |
| # prefix: "lanpwr_" |
| "lanpwr_d3pwr_0" = 0x2, |
| "lanpwr_reserved_5" = 0, |
| "lanpwr_d0pwr_8" = 0x7, |
| |
| # Word 0x12 and Word 0x11 Are Reserved |
| "reserved_x11" = 0x0000, |
| "reserved_x12" = 0x0000, |
| |
| # Shared Init Control Word (Word 0x13) |
| # prefix: "sicw_" |
| "sicw_dynamicclock_0" = 1, |
| "sicw_clkcnt_1" = 0, |
| "sicw_reserved_2" = 1, |
| "sicw_fullduplex_3" = 0, |
| "sicw_forcespeed_4" = 0, |
| "sicw_reserved_5" = 0, |
| "sicw_phydeviceype_6" = 0, |
| "sicw_reserved_8" = 1, |
| "sicw_phy_enpwrdown_9" = 0, |
| "sicw_reserved_10" = 1, |
| "sicw_macsecdisable_13" = 1, |
| "sicw_sign_14" = 0x2, |
| |
| # Extended Configuration Word 1 (Word 0x14) |
| # prefix: "ecw1_" |
| "ecw1_extcfgptr_0" = 0x0028, |
| "ecw1_oemload_12" = 1, |
| "ecw1_phyload_13" = 1, |
| "ecw1_reserved_14" = 0, |
| |
| # Extended Configuration Word 2 (Word 0x15) |
| # prefix: "ecw2_" |
| "ecw2_reserved_0" = 0x00, |
| "ecw2_extphylen_8" = 0x12, |
| |
| # Extended Configuration Word 3 (Word 0x16) |
| # prefix: "ecw3_" |
| "ecw3_extcfg1_0" = 0x00, |
| |
| # OEM Configuration Defaults (Word 0x17) |
| # prefix: "oem_" |
| "oem_reserved_0" = 0x000, |
| "oem_lpluenind0a_9" = 0, |
| "oem_lplueninnond0a_10" = 1, |
| "oem_gbedisinnond0a_11" = 1, |
| "oem_reserved_12" = 0, |
| "oem_gbedis_14" = 0, |
| "oem_reserved_15" = 0, |
| |
| # LED 0 - 2 Configuration Defaults (Word 0x18) |
| # prefix: "l02_" |
| # Lenovo default values |
| "l02_led0mode_0" = 0x4, |
| "l02_led0invert_3" = 0, |
| "l02_led0blink_4" = 0, |
| "l02_led1mode_5" = 0x3, |
| "l02_led1invert_8" = 0, |
| "l02_led1blink_9" = 1, |
| "l02_led2mode_10" = 0x2, |
| "l02_led2invert_13" = 1, |
| "l02_led2blink_14" = 0, |
| "l02_blinkrate_15" = 0, |
| |
| # Intel default Values |
| #"l02_led0mode_0" = 0x4, |
| #"l02_led0invert_3" = 0, |
| #"l02_led0blink_4" = 1, |
| #"l02_led1mode_5" = 0x7, |
| #"l02_led1invert_8" = 0, |
| #"l02_led1blink_9" = 0, |
| #"l02_led2mode_10" = 0x6, |
| #"l02_led2invert_13" = 0, |
| #"l02_led2blink_14" = 0, |
| #"l02_blinkrate_15" = 0, |
| |
| |
| # Reserved (Word 0x19) |
| # NOTE: bit 6 must be 1 for validation. See datasheet. |
| "reserved_x19" = 0x2B40, |
| |
| # Reserved (Word 0x1A) |
| # Advanced Power Management Wake Up Enable |
| # prefix: "amp_" |
| "amp_enable_0" = 1, |
| "amp_reserved_1" = 0x0421, |
| |
| # Reserved (Word 0x1B) |
| "reserved_x1B" = 0x0113, |
| |
| # Reserved (Word 0x1C) |
| "reserved_x1C" = 0x1502, |
| |
| # Reserved (Word 0x1D) |
| "reserved_x1D" = 0xBAAD, |
| |
| # Reserved (Word 0x1E) |
| "reserved_x1E" = 0x1502, |
| |
| # Reserved (Word 0x1F) |
| "reserved_x1F" = 0x1503, |
| |
| # Reserved (Word 0x20) |
| "reserved_x20" = 0xBAAD, |
| |
| # Reserved (Word 0x21) |
| "reserved_x21" = 0xBAAD, |
| |
| # Reserved (Word 0x22) |
| "reserved_x22" = 0xBAAD, |
| |
| # Reserved (Word 0x23) |
| "reserved_x23" = 0x1502, |
| |
| # Reserved (Word 0x24) |
| "reserved_x24_0" = 0x0000, |
| "reserved_x24_14" = 0, |
| "reserved_x24_15" = 1, |
| |
| # Reserved (Word 0x25) |
| "reserved_x25_0" = 0x0000, |
| "reserved_x25_4" = 1, |
| "reserved_x25_5" = 0, |
| "reserved_x25_7" = 1, |
| "reserved_x25_8" = 0x00, |
| "reserved_x25_15" = 1, |
| |
| # Reserved (Word 0x26) |
| "reserved_x26_0" = 0x00, |
| "reserved_x26_9" = 1, |
| "reserved_x26_10" = 1, |
| "reserved_x26_11" = 1, |
| "reserved_x26_12" = 0, |
| "reserved_x26_14" = 1, |
| "reserved_x26_15" = 0, |
| |
| # Reserved (Word 0x27) |
| "reserved_x27" = 0x80, |
| |
| # Offsets 0x28-0x2F |
| "offset_x28" = 0x0000, |
| "offset_x29" = 0x0000, |
| "offset_x2A" = 0x0000, |
| "offset_x2B" = 0x0000, |
| "offset_x2C" = 0x0000, |
| "offset_x2D" = 0x0000, |
| "offset_x2E" = 0x0000, |
| "offset_x2F" = 0x0000, |
| |
| # Boot Agent Main Setup Options (Word 0x30) |
| # Hardcoded PXE setup (disabled) |
| # prefix: "pxe30_" |
| "pxe30_protocolsel_0" = 0, |
| "pxe30_reserved_2" = 0, |
| "pxe30_defbootsel_3" = 0x3, |
| "pxe30_reserved_5" = 0, |
| "pxe30_prompttime_6" = 0x3, |
| "pxe30_dispsetup_8" = 0, |
| "pxe30_reserved_9" = 0, |
| "pxe30_forcespeed_10" = 0, |
| "pxe30_forcefullduplex_12" = 0, |
| "pxe30_reserved_13" = 0, |
| "pxe30_reserved_14" = 0, |
| |
| # Boot Agent Configuration Customization Options (Word 0x31) |
| # prefix: "pxe31_" |
| "pxe31_disablemenu_0" = 1, |
| "pxe31_disabletitle_1" = 1, |
| "pxe31_disableprotsel_2" = 0, |
| "pxe31_disbootorder_3" = 0, |
| "pxe31_dislegacywak_4" = 0, |
| "pxe31_disableflasicwpro_5" = 0, |
| "pxe31_reserved_6" = 0, |
| "pxe31_ibootagentmode_8" = 0, |
| "pxe31_contretrydis_11" = 0, |
| "pxe31_reserved_12" = 0, |
| "pxe31_signature_14" = 10, |
| |
| # Boot Agent Configuration Customization Options (Word 0x32) |
| # prefix: "pxe32_" |
| "pxe32_buildnum_0" = 0x28, |
| "pxe32_minorversion_8" = 0x2, |
| "pxe32_majorversion_12" = 0x1, |
| |
| # IBA Capabilities (Word 0x33) |
| # prefix: "pxe33_" |
| "pxe33_basecodepresent_0" = 1, |
| "pxe33_undipresent_1" = 1, |
| "pxe33_reserved_2" = 1, |
| "pxe33_efiundipresent_3" = 0, |
| "pxe33_iscsi_4" = 0, |
| "pxe33_reserved_5" = 0, |
| "pxe33_signature_14" = 10, |
| |
| "pxe_padding"[11] = 0xffff, |
| |
| # Checksum is generated by bincfg |
| # "checksum_gbe" = xxx, |
| |
| # G3 -> S5 PHY Configuration |
| "g3_s5_phy_conf"[0x16] = 0, |
| |
| # Padding 0xf80 bytes |
| "padding"[0xf6a] = 0xff |
| } |