VirtualBox

Opened 14 years ago

Closed 14 years ago

#6008 closed enhancement (fixed)

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

Reported by: Josh Cornutt Owned by:
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 (2)

DevE1000.cpp.patch (1.5 KB ) - added by Josh Cornutt 14 years ago.
EERD register functionality patch
e1000_eerd.patch (5.3 KB ) - added by Aleksey Ilyushin 14 years ago.
Revised version of the patch

Download all attachments as: .zip

Change History (7)

by Josh Cornutt, 14 years ago

Attachment: DevE1000.cpp.patch added

EERD register functionality patch

by Aleksey Ilyushin, 14 years ago

Attachment: e1000_eerd.patch added

Revised version of the patch

comment:1 by Aleksey Ilyushin, 14 years ago

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 by Josh Cornutt, 14 years ago

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 by Aleksey Ilyushin, 14 years ago

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 by Aleksey Ilyushin, 14 years ago

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

comment:5 by Frank Mehnert, 14 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.

© 2023 Oracle
ContactPrivacy policyTerms of Use