What is WindSLIC? WindSLIC is a Dynamic SLIC Injector in the form of an open-source PCI Option-ROM. It can be loaded on a PCI network card ROM or injected into a BIOS as a PCI (or ISA?) module. This allows SLIC insertion on machines that otherwise do not support BIOS mods/etc. Changelog for latest version: ;------------------------------------------------------------ [Beta] 2011.01.22.01 - Now works with Sandy Bridge sort-of ;------------------------------------------------------------ - Added memory zeroing (backported from nononsense's modifications to WindSLIC in creating the WindSLIC Bootable CD, etc.). Memory areas to be used are now first scrubbed/initialized. - Added Target Environment / Hypervisor Overrides Single value can be set that will set the proper values for VMWare and VirtualBox ROM settings (VendorID/DeviceID and Rom Alignment Size) - Works with Intel P67 / UEFI-Legacy boot on Asus P8P67 Deluxe to boot Windows 7 x64. The previous versions hung, probably because of the memory non-initialization issue mentioned above. ;------------------------------------------------------------ The Latest WindSLIC Release (v2011.01.22.01.beta): [Note: Don't Download with IE. It seems to screw up the zip file somehow.] View attachment windslic-2011_01_22_01-beta.zip The Previous WindSLIC Release (v2010.02.22.01): [Note: Don't Download with IE. It seems to screw up the zip file somehow.] View attachment windslic-2010_02_22_01.zip
WindSLIC Tested-Compatible NICs and Other PCI Cards The most commonly used NICs for WindSLIC are the various Intel 100Base-T and 1000Base-T cards. The following cards have been tested to work: - Intel Pro/100+ (VID/DID: 8086h,1229h) - Intel Pro/1000CT (VID/DID: 8086h,10D3h) ( Tested by truthinjection / FreeStyler ) - Intel Pro/1000GT (VID/DID: 8086h,107Ch) - Intel Pro/1000MT Desktop Adapter (VID/DID 8086h,1076h ("Intel Corporation","82541GI Gigabit Ethernet Controller")) (tested by fruttifresh) - Intel Pro/1000MT (VID/DID: 8086h,100Eh) - Intel Pro/1000PT (VID/DID: 8086h,10B9h) ( Tested by kolin ) (The list from the older thread is below) Intel Pro1000/MT (Tested by truthinjection, ficho & Lithium) Intel PRO/1000 MT Dual Port Server Adapter (By dapjukebox & ficho) Intel Pro1000/GT (Tested by SirSilentBob) Intel Pro1000/CT (EXPi9301CT) (Tested by digimanuk) Intel Pro100+ PCI NIC (Used on an Intel D845HV motherboard) (Tested by bluecatfish) INTEL EtherExpress PRO/100+ Management Adapter PCI (By Serxavi) Intel PRO/100 S Manamegent Adapter (By Lithium)
WindSLIC Tested-Compatible Motherboards The following motherboards/systems have been tested to work: Motherboards: - Asus P8P67 Deluxe (tested by truthinjection, requires WindSLIC v2011.01.22.01 at least) - Asus P8Z68-V (tested indirectly by truthinjection, requires WindSLIC v2011.01.22.01 at least) - Gigabyte GA-EP35-DS3R (tested by truthinjection) - Abit IP35-Pro (tested by truthinjection) - Asus M3N78-EM (tested by truthinjection) - Intel DX48BT2 (tested by truthinjection) - ECS GeForce7050M-M (tested by DSpyder) Systems: - HP COMPAQ DC5700 SFF PC (Bios v2.07 plus latest Microcodes) (tested by fruttifresh)
Known Issues and Workarounds for WindSLIC This will hold any issues and workarounds for those issues that have been found with WindSLIC. Currently there is a single main workaround included with the WindSLIC release. It is to work around a Video issue on some models of Dell PC.
Testing and Troubleshooting WindSLIC Testing: The various SLIC utilities can be used to verify that WindSLIC has successfully injected a SLIC into a PC's memory. Specifically useful is the RW-Everything Utility, v1.4.6 or higher. An "ACPI Tables - EBDA" mode was added by the author in this version that shows the changes WindSLIC has made to the ACPI Tables. Troubleshooting: If WindSLIC is not working, check the following: The proper PCI Vendor and Device IDs for your device must be entered before compiling. The WindSLIC "Initializing" message is displayed during BIOS POST (Example below): WindSLIC must be configured as the First Boot Device in the BIOS. The regular Boot Devices (CD-ROM, Hard Disk, etc) should be set to boot after WindSLIC. The WindSLIC "Activating" message is displayed immediately following BIOS POST: The Activator is the portion of WindSLIC that does the actual memory patching/SLIC-loading/etc. (That is why WindSLIC must be the first boot device).
WindSLIC Non-English Language Translations While WindSLIC is written in English, (although the original program that was the basis for WindSLIC was in Chinese), with the newer versions of WindSLIC, the on-screen display text has been moved into the file Code: ws_texts.inc This file can be translated to allow WindSLIC to show information in other languages at boot. Currently there are no official plans to do any translations, but if any users want to work on one and post it, it will be added to this entry.
try adding: Code: push cs call BEV right before the Code: retn ; Return to Caller after Finishing INIT line and see if that will combine the two into one. circle becomes line, -tij-
Technically, WindSLIC is reading the "PCI BIOS" or "PCI Firmware" version, rather than the base version of the electronics of the PCI bus itself. I've not found a good reference that explains how the two relate. From a PCI BIOS support perspective, I'm not sure there's anything in the PCI base specification that would preclude a PCI 2.x motherboard from having a BIOS that supported the extended PCI-Firmware 3.0 stuff, just as your motherboard claims to do. PCI-Firmware 3.0 is a backwards-compatible superset of the functionality in the PCI-BIOS 2.1 standard, so I suspect we'll see lots of boards such as this. Thanks for the update! -tij-
Thanks. Don't worry, though. I saved a big bag of them for use in the new Int13H handler BCV stuff I'm writing for the next version. So far I've gotten it to boot in QEMU, but not VMWare, using the new non-BEV method, so there's obviously more work to do. Rotating the barnacles, -tij-
Does anybody know how to re-create floppy bootable image file .dsk like @ rom-o-matic.net but have windslic.bin to boot instead of gPXE? I did not manage yet, even I tried for a couple of hours today sebus
I wish. The BCV is not an actual boot mechanism itself, but allows a ROM to install an Int13H handler to hook into the Disk boot process. Then, instead of the BEV being called (via Int19H) after the POST has completed (as we do it now), the BCV is called before the POST has completed (write protection is not really affected, though (I don't think) because the BCV is just sort of a slightly delayed continuation of the INIT procedure, rather than the BEV procedure). The BCV hooks Int 13H, and then, when POST is done, Int19H is called, and that does the Int13H call, to which we are now hooked. I'm not sure if it will work, but this will (hopefully) give us a key to fixing the one true bug in the current WindSLIC boot mechanism (ignoring the whole "BIOS Segment F000H is read-only by the time the ACPI tables exist for us to inject anything into" limitation, of course). The "one true bug" to which I am referring is the "AMI Hibernate Boot Bug", which prevents WindSLIC from working when an AMI motherboard is hibernated from Windows 7. The AMI BIOS short-circuits the Boot process, and never calls the BEV, so on AMI motherboards, it's possible to "lose" the SLIC if you hibernate the machine. Nothing else I've tried (hook Int19H, etc) has successfully hooked into the Boot process of the Post-Hibernated AMI BIOS. This is an attempt to do that. It basically will (maybe) end up trading "Have to make WindSLIC the first in the Boot Priority" for "Have to make WindSLIC the first in the Hard Disk Boot Order", though. Still working through it to see if I can make things "better than ever" or not. like a wikipedia article sometimes, -tij-