path: root/drivers/net/wireless/brcm80211
diff options
authorPeter Wu <>2013-08-09 17:17:59 +0200
committerPeter Wu <>2014-10-15 21:26:29 +0200
commit55754e5441d1bb32d30d4174a524eaf2c1c18148 (patch)
tree4f207cc3e58c8dbbb090191a8f4977abe274f3a5 /drivers/net/wireless/brcm80211
parent9db8a8bb98cf75b0a51d66f560c87028e93a8ed8 (diff)
r8169: add ethtool eeprom change/dump featurertl-eeprom-3.17
This adds the ability to read and change EEPROM for 93C46/93C56 serial EEPROM. Two-Wire serial interface and SPI are not supported. (Do not even try this for SPI or other chips, it may break your hardware.) Works with RTL8169SCL (driver detects RTL8169sb), with some quirks. Not sure if it is a hardware bug, but to be able to read EEPROM, one has to write something, e.g.: printf '\0\0' | ethtool -E eth0 magic 0x8169 offset 0x40 length 2 Otherwise, only zeroes are read. Another note for this NIC, one has to "enable" the eeprom by writing to it (as shown above) and then make the NIC to reload the contents from firmware such that the PCI ID gets detected correctly (10ec:8169 instead of 10ec:8129). Reload by writing 0x40 (Auto-load) to register 0x50 (9346CR): printf '\x40' | dd seek=80 bs=1 \ of=/sys/bus/pci/devices/0000:03:00.0/resource0 Then detach and rescan the PCI device (use `lspci -tv` to find parent): echo 1 > /sys/bus/pci/devices/0000\:03\:00.0/remove echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/rescan After this, this RTL8169sb PCI GbE NIC appears to work. On a second RTL8188E onboard GbE chip, EEPROM cannot be dumped, writing also does nothing. Here, reads all return FFs. Signed-off-by: Peter Wu <>
Diffstat (limited to 'drivers/net/wireless/brcm80211')
0 files changed, 0 insertions, 0 deletions