Thanks. I haven't gotten back into trying any code changes yet. This week has been reinstall OSes week so far. The new Fedora 12 came out, etc. I need to roll-back the interesting (but abortive) Int19-hooking changes I had been experimenting with. The Int19H hooking makes it so you don't have to set the WindSLIC entry first in the boot order to make it work, but some BIOSes block the hooking, so it hasn't been as fruitful as I had hoped. -tij-
Ok. It’s good to hear you are alive and kicking! BTW: IMO it's nice feature to have WindSLIC activate/perform inject ONLY if it's the first one in the boot order...
The Int19H test was actually to fix a totally unrelated issue, but I did find an actual use for it. Sure, having to pick WindSLIC as first in boot order is okay, but in certain situations (Intel board DX48BT2 specifically), it makes the boot take 10-15 seconds longer because the built-in NIC gets activated, too, and tries to do PXE booting. So, ideally, the selection would be a compile-time selection that best fits the board in question. -tij-
IMO, LOM (Lan-On-Motherboard) doesn’t have its own flash. Corresponding NIC “BIOS” is just a module in main BIOS. I.e. if you can replace that module – you can do something closed by OEM, like enable WOL, if your hardware supports it But if you are able to replace a BIOS module – you would rather insert SLIC 2.1, than modify NIC module, right?
tij - Hope you had a good holiday. FWIW, I decided to just get the OEM version of the Pro/1000 GT cards from NewEgg. My target machine is an older Dell Precision 360 (P4 3GHz + 3GB RAM + NVIDIA 7600GT AGP)...it has a built-in Intel PXE NIC but I'll flash the PCI card NIC on another PC. Just one question: Will I have the same issue with the read-only BIOS memory? Here's a snapshot from a Linux dmesg output: Code: BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 00000000000a0000 (usable) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 00000000bff74000 (usable) BIOS-e820: 00000000bff74000 - 00000000bff76000 (ACPI NVS) BIOS-e820: 00000000bff76000 - 00000000bff97000 (ACPI data) BIOS-e820: 00000000bff97000 - 00000000c0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) BIOS-e820: 00000000fecf0000 - 00000000fecf1000 (reserved) BIOS-e820: 00000000fed20000 - 00000000fed90000 (reserved) BIOS-e820: 00000000fee00000 - 00000000fee10000 (reserved) BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved) Code: Using APIC driver default ACPI: RSDP (v000 DELL ) @ 0x000feb90 ACPI: RSDT (v001 DELL WS 360 0x00000008 ASL 0x00000061) @ 0x000fd164 ACPI: FADT (v001 DELL WS 360 0x00000008 ASL 0x00000061) @ 0x000fd19c ACPI: SSDT (v001 DELL st_ex 0x00001000 MSFT 0x0100000d) @ 0xfffc8e8e ACPI: MADT (v001 DELL WS 360 0x00000008 ASL 0x00000061) @ 0x000fd210 ACPI: BOOT (v001 DELL WS 360 0x00000008 ASL 0x00000061) @ 0x000fd27c ACPI: ASF! (v016 DELL WS 360 0x00000008 ASL 0x00000061) @ 0x000fd2a4 ACPI: DSDT (v001 DELL dt_ex 0x00001000 MSFT 0x0100000d) @ 0x00000000
Trials to commence - Dell laptop I have two Dell D410 laptops, which are Centrino era without SLIC of any kind in BIOS. I located a Dell PD01X docking station and an Intel Pro/1000 MT server ethernet adapter PWLA8492MT (dual NIC). I scoped out the docking station which fits all D-Series Dell laptops, and has room for a full-size PCI card in the card slot and a D-Bay for any D-series Dell optical drive. I intend to see if I can mod the Intel PXE flash to hold SLIC 2.1, put my Win7 All-in-One DVD in the optical drive and install Win7 and activate the D410s with the Intel NIC.
The current code doesn't seem to work with Dells, but even if it did, this would require you to leave the laptop stuck in the docking station for Windows to remain activated. The moment you removed it from the docking station, the next time your rebooted, it would go back to native BIOS, and no SLIC.
Yes, you would have the same issue since the RSDT is at (0x000f___), which is read-only. It is believed that by moving the RSDP into the EBDA, a new version could be made that doesn't have this problem, but so far, I have not gotten around to programming this version. -tij-
To Truthinjection and all who have helped him in testing and debugging: I apologize for not updating the original post in nearly 2 months. I've been extremely busy with packing, selling a residence, moving, and buying a new residence which I will be moving into soon. I have updated the original post to include additional NICs that this method has worked on, and I have removed the original .ASM file from the post, since TI has updated it many times, and I don't want people to use his older original version and brick anything. It now instructs users to browse the thread and use the latest version from TI. If there are further updates/changes that should be done, please PM me and I'll get it all updated. I'm really happy that this method has evolved so far and is available to those with an un-moddable bios!
I had modified both Intel 100pro (with old chip set 82558) and 1000MT with success, then I was trying to modify the 3com and Realteck 8139/8169 card, since their original programs not succesful, I finally blow out one of the bios eeprom from the Intel 82558 Lan card (which modified with 80861229 - vendor & device ID) and plug into the 3Com 905B and Realtek 8139 Lan cards, guess what? all of them loaded the modified SLIC2.1 succesful and using the dumptool and they all successful to report the SLIC inside the lan bootrom. Then my question is - does the Vendor & Device ID really meaningful for the modification?
Depend on mobo BIOS, I guess. PCI_VENDOR_ID, PCI_DEVICE_ID are used in PCI ROM Data Structure. If you really want to know more – Google for it.
Yes. Depends on the BIOS of the motherboard whether or not it works with an incorrect VID/DID. For example, the QEMU virtual machine doesn't care at all, but real BIOSes should care, both about the VID/DID and also about the checksum being 0 across the entire ROM. Also, the Intel utility won't flash the firmware to the cards unless the VID/DID match the card that is being flashed. Hope that helps, -tij- PS. I'm still alive/here. Thanks for the updates, SirSilentBob/Apokrif. I finally started work on the EBDA stuff. I have it moving the RSDP semi-successfully now, except that I have to work on it some more, since it appears to be corrupting the RSDP during/after the copy, but I'm not sure if that's my code, or the particular donor location chosen in the EBDA. Once I get that sorted, I have to then get it to move the RSDT/XSDT, which once upon a time, my code did, so hopefully I can just find that old version and take the code directly from there.
thanks for information. Understand the motherboard check correct VID&DID, as the VenID and DeviceID stored at another eeprom not at the bootrom, we can modify them by eeupdate (as many people modify the normal 82559 to a server board by changing the data by eeupdate). so do the motherboard check the vid&did but did they compared with the bootrom data? i will further check with 3com 905B with intel modified bootrom into few different motherboard to see what happen. thanks again
Just checked - it's Intel PXE code looking for match: "PXE-E01: PCI Vendor and Device IDs do not match!" I guess, mobo might not care about it at all
Use Intel NIC PXE image mod for 2 1 SLIC Even if, don't use MSI Live Update. It seldom finds the latest drivers anyway and it is horribly dangerous when it comes to BIOS Updates and should therefore be avoided at all costs. You are not missing out on anything here, just one less useless tool running in the background.
Cool beans...I have two Intel Pro1000GT cards waiting to test on my Dell Precision 360. BTW how would we test if everything got moved ok? Comparing RW reports before & after?