# Zerocat Coreboot Machines --- Create very satisfying free software devices. # # Copyright (C) 2021, 2022 Kai Mertens # # This file is part of Zerocat Coreboot Machines. # # Zerocat Coreboot Machines is free software: you can redistribute it # and/or modify it under the terms of the GNU General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # Zerocat Coreboot Machines is distributed in the hope that it will be # useful, but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Zerocat Coreboot Machines. # If not, see . # Usage # ===== # # Datasheet: 82579-gbe-phy-datasheet-vol-2-1.pdf # # # Product Brief: 82579-gbe-controller-brief.pdf # # # The datasheet says that this spec covers the following pci ids: # 8086:1502 - Intel 82579LM Gigabit Ethernet PHY (Corporate) # 8086:1503 - Intel 82579V Gigabit Ethernet PHY (Consumer) # 82579LM/V GbE PHY for Intel(r) 6 Series Express Chipset { # byte 0x00..0x05 Ethernet Address Bytes 0..5 "macaddress"[0x06] : 8, # 0x00aa00xxxxxx or 0x00a0c9xxxxxx # word 0x03 (0000_1000_0000_0000b, 0x0800) "reserved03_1" : 11, # 000_0000_0000b "reserved03_lom" : 1, # 1b "reserved03_2" : 4, # 0000b # word 0x04 "reserved04" : 16, # 0xffff # word 0x05 Image Version Information 1 (0x00d3=MobileLAN, 0x00d4=other) "version05" : 16, # word 0x06 "reserved06" : 16, # 0xffff # word 0x07 "reserved07" : 16, # 0xffff # word 0x08 PBA low (0xffff) "pbalow" : 16, # 0xffff # word 0x09 PBA high (0xffff) "pbahigh" : 16, # 0xffff # word 0x0A PCI Init Control Word (0001_0000_1100_0011b, 0x10c3) "pci_loaddid" : 1, # 1b "pci_loadssid" : 1, # 1b "pci_reserved1" : 1, # 0b "pci_reserved2" : 3, # 000b "pci_pmen" : 1, # 1b "pci_auxpwr" : 1, # 1b "pci_reserved3" : 8, # 0001_0000b # word 0x0B Subsystem ID (0x0000) "ssdid" : 16, # 0x0000 # word 0x0C Subsystem Vendor ID (0x8086) "ssvid" : 16, # 0x8086 # word 0x0D Device ID (82579LM=0x1502, 82579V=0x1503) "did" : 16, # 0x1502 # word 0x0E "reserved0e" : 16, # 0x0000 # word 0x0F "reserved0f" : 16, # 0x0000 # word 0x10 LAN Power Consumption (0000_0111_0000_0010b, 0x0702) "lanpwr_d3pwr" : 5, # 0_0010b "lanpwr_reserved" : 3, # 000b "lanpwr_d0pwr" : 8, # 0000_0111b # word 0x11 "reserved11" : 16, # 0x0000 # word 0x12 "reserved12" : 16, # 0x0000 # word 0x13 Shared Init Control Word (1010_0101_0000_0101b, 0xa505) "sh_dynclkgate" : 1, # 1b "sh_dmafreq" : 1, # 0b "sh_reserved1" : 1, # 1b "sh_force_halfduplex" : 1, # 0b "sh_force_lowspeed" : 1, # 0b "sh_reserved2" : 1, # 0b "sh_phyt" : 2, # 00b "sh_reserved3" : 1, # 1b "sh_phy_enpwrdown" : 1, # 0b "sh_reserved4" : 3, # 001b "sh_dismacsec" : 1, # 1b "sh_sign" : 2, # 10b # word 0x14 Extended Configuration Word 1 (0011_0000_0010_1000b, 0x3028) "cw1_extcfgptr" : 12, # 0000_0010_1000b "cw1_oemload" : 1, # 1b "cw1_enphywr" : 1, # 1b "cw1_reserved1" : 2, # 00b # word 0x15 Extended Configuration Word 2 (0001_0010_0000_0000b, 0x1200) "cw2_reserved" : 8, # 0000_0000b "cw2_extphylen" : 8, # 0001_0010b # word 0x16 Extended Configuration Word 3 "extcfg16" : 16, # 0x0000 # word 0x17 OEM Configuration Defaults (0000_1100_0000_0000b, 0x0c00) "l1_reserved1" : 9, # 0_0000_0000b "l1_lplu_all" : 1, # 0b "l1_lplu_non_d0a" : 1, # 1b "l1_gbedis_non_d0a" : 1, # 1b "l1_reserved2" : 2, # 00b "l1_gbedis" : 1, # 0b "l1_reserved3" : 1, # 0b # word 0x18 LED 0..2 (0001_1000_1111_0100b, 0x18f4 "l02_led0mode" : 3, # 100b "l02_led0invert" : 1, # 0b "l02_led0blinks" : 1, # 1b "l02_led1mode" : 3, # 111b "l02_led1invert" : 1, # 0b "l02_led1blinks" : 1, # 0b "l02_led2mode" : 3, # 110b "l02_led2invert" : 1, # 0b "l02_led2blinks" : 1, # 0b "l02_blinkrate" : 1, # 0b # word 0x19 "reserved19" : 16, # 0x2b00 # word 0x1a 0000_1000_0100_0011b, 0x0843 "reserved1a_1" : 1, # 1b (APM Enable) "reserved1a_2" : 15, # 000_0100_0010_0001b # word 0x1b "reserved1b" : 16, # 0x0113 # word 0x1c "reserved1c" : 16, # 0x1502 # word 0x1d "reserved1d" : 16, # 0xbaad # word 0x1e "reserved1e" : 16, # 0x1502 # word 0x1f "reserved1f" : 16, # 0x1503 # word 0x20 "reserved20" : 16, # 0xbaad # word 0x21 "reserved21" : 16, # 0xbaad # word 0x22 "reserved22" : 16, # 0xbaad # word 0x23 "reserved23" : 16, # 0x1502 # word 0x24 1000_0000_0000_0000b, 0x8000 "reserved24_1" : 14, # 00_0000_0000_0000b "reserved24_2" : 1, # 0b "reserved24_3" : 1, # 1b # word 0x25 1000_0000_1001_0000b, 0x8090 "reserved25_1" : 4, # 0000b "reserved25_2" : 1, # 1b "reserved25_3" : 2, # 00b "reserved25_4" : 1, # 1b "reserved25_5" : 7, # 000_0000b "reserved25_6" : 1, # 1b # word 0x26 0100_1110_0000_0000b, 0x4e00 "reserved26_1" : 9, # 0_0000_0000b "reserved26_2" : 1, # 1b "reserved26_3" : 1, # 1b "reserved26_4" : 1, # 1b "reserved26_5" : 2, # 00b "reserved26_6" : 1, # 1b "reserved26_7" : 1, # 0b # word 0x27 "reserved27" : 16, # 0x0080 # word 0x28..0x2f "reserved_"[0x08] : 16, # 0x0000 # word 0x30..0x3e PXE Software Region # word 0x30 Boot Agent Main Setup Options (0000_0001_0000_0000b, 0x0100) "pxe30_protocolsel" : 2, # 00b "pxe30_reserved1" : 1, # 0b "pxe30_defbootsel" : 2, # 00b "pxe30_reserved2" : 1, # 0b "pxe30_prompttime" : 2, # 00b "pxe30_dispsetup" : 1, # 1b "pxe30_reserved3" : 1, # 0b "pxe30_forcespeed" : 2, # 00b "pxe30_forcefullduplex" : 1, # 0b "pxe30_reserved4" : 1, # 0b "pxe30_reserved5" : 2, # 00b # word 0x31 Boot Agent Configuration Customization Options (0100_0000_0000_0000b, 0x4000) "pxe31_disablemenu" : 1, # 0b -> 1b? "pxe31_disabletitle" : 1, # 0b -> 1b? "pxe31_disableprotsel" : 1, # 0b "pxe31_disablebootorder" : 1, # 0b "pxe31_disablelegacywak" : 1, # 0b "pxe31_disableflash_pro" : 1, # 0b -> 1b ? "pxe31_reserved1" : 2, # 00b "pxe31_ibootagentmode" : 3, # 000b "pxe31_discontretry" : 1, # 0b "pxe31_reserved2" : 2, # 00b "pxe31_signature" : 2, # 01b (set this to 11b to indicate valid data) # word 0x32 Boot Agent Configuration Customization Options (0001_0010_0010_1000b, 0x1228) "pxe32_buildnum" : 8, # 0010_1000b "pxe32_minorversion" : 4, # 0010b "pxe32_majorversion" : 4, # 0001b # word 0x33 IBA Capabilities (0100_0000_0000_0111b, 0x4007) "pxe33_basecodepresent" : 1, # 1b "pxe33_undipresent" : 1, # 1b "pxe33_reserved1" : 1, # 1b "pxe33_efiundipresent" : 1, # 0b "pxe33_iscsibootcapabsent" : 1, # 0b "pxe33_reserved2" : 9, # 0_0000_0000b "pxe33_signature" : 2, # 01b # word 0x34..0x3e "pxe_padding"[0x0b] : 16, # word 0x3F Software Checksum (Bytes 0x00 through 0x7d) "checksum_gbe" : 16, # word 0x40..0x4a G3 -> S5 PHY Configuration "phy_padding"[0x0b] : 16, # word 0x4b..0x07ff "padding"[0x7b5] : 16 }