VirtualBox

Ticket #6008 (closed enhancement: fixed)

Opened 4 years ago

Last modified 4 years ago

E1000: EERD (EEPROM Read register) functionality => Fixed in SVN

Reported by: 01000101 Owned by:
Priority: major Component: network
Version: VirtualBox 3.1.2 Keywords: E1000 EEPROM EERD
Cc: Guest type: other
Host type: other

Description

This is a patch for /src/VBox/Devices/Network/DevE1000.cpp. It allows the use of the EERD to get data from the EEPROM without having to use the 4-wire method. Chapter 13.4.4 of the 8254x Software Developer's manual describes the EERD.

The patch file is attached.

Thanks, Josh

Attachments

DevE1000.cpp.patch Download (1.5 KB) - added by 01000101 4 years ago.
EERD register functionality patch
e1000_eerd.patch Download (5.3 KB) - added by aleksey 4 years ago.
Revised version of the patch

Change History

Changed 4 years ago by 01000101

EERD register functionality patch

Changed 4 years ago by aleksey

Revised version of the patch

comment:1 Changed 4 years ago by aleksey

Hi Josh,

Thanks a lot for the patch! I took a liberty to revise it in order to use existing infrastructure.

One small note: clearing EERD.DONE in write handler does not do any good (not hurts either) as this code is executed in critical section preventing any reads from this register until we are done.

Unfortunately I have no guests that are able to read EERD on the chipsets being emulated (the only one I know is e1000e driver with 82571 chipset). Could you help me with testing it?

Thanks in advance, Aleksey

comment:2 Changed 4 years ago by 01000101

aleksey: Thanks! I just tested your patch with my custom OS (just doing a straight-forward read of the first 3 words from the EEPROM using EERD) with "Intel PRO/1000 MT Server (82545EM)" emulation, and I was able to acquire the hardware address (accurately) without any problems/hangs. I'm not sure how else to test this patch with Linux/Windows/BSD/etc... but if you have an idea I'd be happy to give it a try (even though most e1000 drivers use the 4-wire interface AFAIK).

comment:3 Changed 4 years ago by aleksey

Hi Josh,

I don't know any guests that use EERD, except e1000e driver in Linux, but it works with PCIe bus only. Let's assume that everything is OK, and if it is not someone will file another ticket eventually. I've already merged the patch into the trunk, so I'll just change the title to "=> Fixed in SVN".

Thanks, Aleksey

comment:4 Changed 4 years ago by aleksey

  • Summary changed from E1000: EERD (EEPROM Read register) functionality to E1000: EERD (EEPROM Read register) functionality => Fixed in SVN

comment:5 Changed 4 years ago by frank

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.

www.oracle.com
ContactPrivacy policyTerms of Use