VOGONS


First post, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

I'm currently finding myself stuck on how to get this onboard network adapter working on certain OSes. So far I can get it working with Linux and Windows XP, but nowhere else (NT 3.5x and Vista/7 x64).

Unlike other 8255x network interfaces this one (compatible with 82559ER) has a Device ID of 1209h instead of the 1229h which prevented most known drivers from accepting it. As far as I've tested, drivers available for NT 3.51 (E100B.SYS) don't work with it -- can be installed, but it would throw an error on startup, likely due to it expecting a 1229h device but there's none.

For 82551ER/82559ER there's a different driver called E100E which has only NDIS4 version (E100ENT.SYS) and not NDIS3 one (that would be E100E.SYS per their naming conventions). On the other hand, there's no officially signed x64 drivers for 8255xER (1209h), so I can't even use it with Windows Vista or 7, whereas vanilla 8255x with 1229h still have NDIS5.x x64 drivers there. I tried adding the device ID in question into the driver INF and tried installing it with driver signature enforcement temporarily disabled -- no luck. Code 10.

I wonder to how much extent 8255xER differs from vanilla 8255x in terms of driver code. Is it just the PCI device ID difference or some significantly different code path? Hardware-wise it seems 8255xER is pin-compatible with vanila 8255x, though there are some SMB-related pins not present in 8255xER and perhaps that might be why a different device ID and driver was needed...

I also tried modding the EEPROM after referring to these datasheets [1] [2] [3]. However, for 82551ER/IT I'm getting contradictory information from these datasheets regarding whether it can change device ID or not. So far it seems not. I changed word 23h to 1229h from 1209h and it's still being detected as 1209h even after fiddling necessary bits in word 0Ah to any valid combinations.

Looks like the explanation in the 82551QM/ER/IT EEPROM map datasheet [3] might be the correct one -- that 82551ER/IT doesn't support changing PCI device ID via word 23h, only 82551QM does, despite the EEPROM map in 82551ER datasheet [2] stated otherwise. On the other hand, there's probably no need to change anything for 82551QM at all as it's already using 1229h, and that one does have the SMB-related pins absent from 8255xER, while also present in vanilla 82559, making it fully pin (and maybe software) compatible to 82559.

Just now I hacked into the E100B.SYS driver binary as well as the config (EPRO100.DLL), changing the mentions of device ID 1229h to 1209h and installed the driver as a 82557 in NT 3.51. The driver is not working, but it's a partial success -- the card is now picked up by the driver and the config, and it can pass first 3 tests until it fails at internal loopback. Don't know if I need to hack a newer NDIS3 driver version, or that there were indeed some difference in the code path for 8255xER requiring the specialized driver (E100E). Perhaps I'll have to look for the answer in their respective Linux drivers...

Reply 1 of 6, by Horun

User metadata
Rank l33t++
Rank
l33t++

Hmm just a quick search shows nothing above XP as you said. The dev ID I209 does not even show on this 2006 archive:
http://web.archive.org/web/20060823011452/htt … b/cs-012904.htm (so was never used on standalone adapter afaik).
from datasheet: "Full pin compatibility with the 82559 and 82559ER controllers and
— Backward compatible software to 82559ER controllers" ok so the proper driver is backward to 82559ER ???
added: Also noted that there is updates from 2002 thru Nov 2008 in the datasheet which takes it past the start of Win Vista....
what motherboard is this on ?

added 2: found reference to XP64 and Vist64 and Win2003 server 64bit here: http://web.archive.org/web/20070208214548/htt … x?ProductID=994
and this but no Vista listed??
https://web.archive.org/web/20060322051702/ht … ating%20Systems
sorry do not have time to dig deeper right now, have a family thing have to get going on...

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 2 of 6, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie

Thanks for the info. Unfortunately archived pages like these aren't going to be too helpful. Someone has to dig into the Internet Archive library instead of the wayback machine to look for it... However, so far I haven't found anything new there.

For NT 3.51, modding the driver binary to look for 1209h instead of 1229h would allow the onboard adapter be picked up by the driver (at least I could see the I/O space, IRQ, and MAC address). However, it seems the driver code path is not fully compatible as the adapter still cannot be started. I still have a long, long way to go to figure out how Intel's network drivers work as they appear very complicated under the hood -- aside from device IDs, there are different code paths for different revisions as well as subsystem IDs.

From what I found, the ER variants (82551ER/82559ER) lack a few SMB-related pins but otherwise fully pin and footprint compatible with vanilla 82559. Not sure how this would make the ER variant's code path deviate from the vanilla.

The board in question is AIMB-865. For those with 100Mbit ethernet 82551ER is used, though there were some variants with Gigabit ethernet. I think 8255xER is also used by some other period-correct motherboards mainly for embedded purposes, as there were even drivers for WinCE and XP Embedded according to some driver sites.

Don't know whether replacing the 82551ER with a vanila 82559 would continue to work on such boards... I don't have the right tools to handle BGA components yet, though it might be interesting to conduct such experiments when possible...

Reply 3 of 6, by Horun

User metadata
Rank l33t++
Rank
l33t++

Did not find any NT 3.51 drivers for a 82551/59 just NT 4.0 and up on a quick search.
Some of us have had good success digging into wayback, I was able to get many of the Intel motherboards goodies after Intel removed them. Same is possible with most of the Network stuff.
Yes saw that particular ether chip was used on some SBC and considered an OEM part whose drivers would have been on the long gone Intel ftp. The Intel ftp at archive lib does not have all the drivers that it should have contained back in 2014.
Maybe PC Hoarder will see this and go digging, he is very good at it.

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 4 of 6, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
Horun wrote on 2024-02-18, 02:05:
Did not find any NT 3.51 drivers for a 82551/59 just NT 4.0 and up on a quick search. Some of us have had good success digging […]
Show full quote

Did not find any NT 3.51 drivers for a 82551/59 just NT 4.0 and up on a quick search.
Some of us have had good success digging into wayback, I was able to get many of the Intel motherboards goodies after Intel removed them. Same is possible with most of the Network stuff.
Yes saw that particular ether chip was used on some SBC and considered an OEM part whose drivers would have been on the long gone Intel ftp. The Intel ftp at archive lib does not have all the drivers that it should have contained back in 2014.
Maybe PC Hoarder will see this and go digging, he is very good at it.

Vanilla 8255x (E100B) has NT 3.51 (NDIS3) drivers. I haven't found NDIS3 drivers for 8255xER (E100E). Not sure if it ever exists.

Thanks for the hint on Intel FTP archive. Will try getting it and take a look inside. 2014 should be enough for any up to Win7 (x64) stuffs but I wonder how old the FTP would reach.

So far there's no way to actually change PCI device ID for 82551ER via EEPROM word 23h, even though the word in question is programmed to 1209h in the reference EEPROM map. The ability to change PCI device ID was something specific to 82551QM which already used 1229h and thus could already be picked up by most of the drivers...

EDIT: Turned out that archive is unlikely to be helpful...

This is not the "download" you are looking for.... this does not include drivers for your beloved motherboards, Chipsets, LAN, Audio, ... this is PDF files, and PR stuff about motherboards, other products etc and other B.S. Don't waste your time downloading the 70GB file... it does have a few files but mostly 97 percent worthless. Intel must not have kept the "good Stuff" on the FTP side.

EDIT 2: I ended up plugging a RTL8139C based network card to that system. Now the system has working network across all OSes. Sadly the board doesn't have the ability to disable the onboard adapter.

Reply 5 of 6, by Horun

User metadata
Rank l33t++
Rank
l33t++

Well that was my next suggestion (add a diff NIC), Hmm you would think bios would have a choice for the onboard. I did look at the bios you posted in other topic, both are dated 2024 at end if you HEX them and are AMI.
Are they really that new ? Did you ever find x64 drivers for the 82551er
Also looked at some SBC that has same 82551er (EMAC Inc PCM-3353, PCM-3372, etc) and have no drivers different than you found already.
Also looked at MSI K7D which does have a 1209 ID inside it's lan driver (w9x-2k) and stumbled on some file called Intel-FORCED-5x86-OLD-drp.zip also has ID 1209 listed (has shit load of drivers, Attached.).
Found a few others too but do not think NT3.5x will ever work with it, there is a diff in how NT 3.5x and NT4 work with parts...and maybe the chip was never designed for backward compatibility (there is a few Realtek like that)
Am thinking the 82551er is sort of a bastard chip that Intel pawned off to OEM's for cheap and is why very few boards actually use it., then changed to 82559er when issues developed...
odd the resources talk about 2002 thru 2008 but yet no forward/backward OS support.

Hate posting a reply and then have to edit it because it made no sense 😁 First computer was an IBM 3270 workstation with CGA monitor. Stuff: https://archive.org/details/@horun

Reply 6 of 6, by LSS10999

User metadata
Rank Oldbie
Rank
Oldbie
Horun wrote on 2024-02-19, 04:05:

Well that was my next suggestion (add a diff NIC), Hmm you would think bios would have a choice for the onboard. I did look at the bios you posted in other topic, both are dated 2024 at end if you HEX them and are AMI.
Are they really that new ?

No. Those BIOS themselves are still old. I dumped and updated/added microcodes that's all.

I'd like to dive deeper into modding the BIOS to fix some issues that I already know how to fix after boot, just I don't know which tool I actually need (neither AMIBCP nor MMTool). It's off-topic for this thread, as I've already brought up a topic about that question a while ago...

Horun wrote on 2024-02-19, 04:05:
Did you ever find x64 drivers for the 82551er Also looked at some SBC that has same 82551er (EMAC Inc PCM-3353, PCM-3372, etc) […]
Show full quote

Did you ever find x64 drivers for the 82551er
Also looked at some SBC that has same 82551er (EMAC Inc PCM-3353, PCM-3372, etc) and have no drivers different than you found already.
Also looked at MSI K7D which does have a 1209 ID inside it's lan driver (w9x-2k) and stumbled on some file called Intel-FORCED-5x86-OLD-drp.zip also has ID 1209 listed (has shit load of drivers, Attached.).
Found a few others too but do not think NT3.5x will ever work with it, there is a diff in how NT 3.5x and NT4 work with parts...and maybe the chip was never designed for backward compatibility (there is a few Realtek like that)
Am thinking the 82551er is sort of a bastard chip that Intel pawned off to OEM's for cheap and is why very few boards actually use it., then changed to 82559er when issues developed...
odd the resources talk about 2002 thru 2008 but yet no forward/backward OS support.

No I haven't. It seems Intel never really released anything past that for 1209h. Only 1229h has x64 drivers. 82551QM is the one that uses 1229h (changeable), whereas 82551ER/IT uses a hardcoded 1209h.

NT 3.51 uses NDIS3, while NT4 uses NDIS4. I'm still exploring how to get more information out of driver binaries... so perhaps I'll compare E100ENT that I found with a similarly dated E100BNT (both NDIS4) in hope I could find some hints on behavioral differences between the two Device IDs/models...