HealthTalkie

Talk About Health and Its related Topics

 

WindSLIC - PCI Replacement ROM For SLIC Injection

by truthinjection
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.]
8171

The Previous WindSLIC Release (v2010.02.22.01):
[Note: Don't Download with IE. It seems to screw up the zip file somehow.]
6122

  • WindSLIC Bootable CD
    Forum member nononsense has created a modification for WindSLIC that turns it into a Bootable CD.
    Click Here to go to the forum thread about the WindSLIC Bootable CD.

    (http://forums.mydigitallife.info/threads/9169) WindSLIC Volume Boot Sector
    Forum member nononsense has created a modification for WindSLIC that applies it to the volume boot sector of a HDD.
    Click Here to go to the forum thread about the WindSLIC Volume Boot Sector. (http://forums.mydigitallife.info/threads/18141-WindSLIC-volume-boot-sector)

    WindSLIC Thumb Drive Edition
    Forum member nononsense has created a modification for WindSLIC that applies it to the volume boot sector of a USB Thumb Drive:
    Click Here to go to the forum thread about the WindSLIC for USB Thumb Drives Edition (http://forums.mydigitallife.info/threads/18197-WindSLIC-thumb-drive-edition)

    WindSLIC EFI
    Forum member nononsense has created a C-Based EFI Boot file that can be applied to the EFI Boot Partition to activate an EFI system:
    Click HERE to go to the forum thread about WindSLIC EFI (http://forums.mydigitallife.info/showthread.php?p=499465)

    Note: All of the nononsense-created WindSLIC variants are downloadable from this link:
    http://www.mediafire.com/?5qy8oh936479v
    - truthinjection, 4 years ago
  • 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)
    - truthinjection, 4 years ago
  • 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)
    - truthinjection, 4 years ago
  • The following utilities are required to compile:
    - FASM (Flat Assembler) - v1.68 - http://flatassembler.net/

    The following utilities can be used to test success:
    - RW-Everything - v1.47 - http://jacky5488.myweb.hinet.net/
    - truthinjection, 4 years ago
  • 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.
    - truthinjection, 4 years ago
  • 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):


    Initializing WINDSLIC v2010.xx.xx.x (SLIC Mfr, SLIC Model)...
    PCI BIOS 3.00
    Press F5 to skip.
    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:

    Activating WindSLIC... 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).
    - truthinjection, 4 years ago
  • To compile WindSLIC, the FASM assembler (v1.68 or higher) is required.

    The instructions below include:


    Assembling (Compiling) the WindSLIC ROM Image File
    Flashing the Compiled ROM Image File to a PCI Card Flash-ROM

    Note:
    The SLIC included with the download is a Dummy SLIC and
    does not contain any valid SLIC information. It must
    be replaced with the desired SLIC before WindSLIC is
    compiled.

    Part 1. To Assemble (Compile) the WindSLIC ROM Image File:


    Download and Install FASM (See the post above).
    Get a Donor PCI/PCIe Network Card with an installed Flash-ROM.
    Suggestion: Intel Pro/100+ or Intel Pro/1000 MT or Pro/1000 GT PCI
    Determine the PCI Vendor and Device ID of the Network Card.
    Download and unzip the WindSLIC ZIP file to a directory.
    Copy the desired SLIC file to embed to the work directory.
    Note: Use a Binary 374-byte SLIC file only.
    Rename the SLIC file to 'slcembed.raw'
    Edit the 'windslic.asm' file with a text editor.

    Change the PCI_VENDOR_ID line to equal the hex value of the Vendor ID (from Step 3 above).
    Change the PCI_DEVICE_ID line to equal the hex value of the Device ID (from Step 3 above).
    Note: Some example VIDs/DIDs can be found in the file.


    Save the file.
    Execute the following command:

    fasm windslic.asm
    This should produce a file called 'windslic.bin' in the directory.



    Part 2. To Flash the Compiled ROM Image File to a PCI Card Flash-ROM:


    Figure out the instructions for the type of card you plan to use.
    These instructions are geared towards Intel Pro/100 or Intel Pro/1000 cards, since they have a large Flash-ROM and they use a relatively easy to handle flashing process.
    For Intel Cards, you will need the PCI Vendor ID and Device ID of your card.

    Rename the 'windslic.bin' produced above to:

    vendoriddeviceid.iba (substituting your values for the ids)

    Example: For the Intel Pro/1000GT, the file would be

    8086107c.iba
    For Intel Cards, the DOS util 'ibautil.exe' can be used to write the rom.

    Here are the relevant instructions:

    Note: The linked instructions are linux-centric, but the disk can be created in Windows (XP at least).

    The parts of the steps you care about are:
    http://etherboot.org/wiki/romburning/intel#renaming_the_rom_image
    and
    http://etherboot.org/wiki/romburning/intel#burning_the_gpxe_rom
    - truthinjection, 4 years ago
  • add_slic.asm
    WindSLIC was originally based on an assembly-language file
    called 'add_slic.asm'. This file was used in the earliest
    BIOS-Mods for SLIC Insertion.

    Low-Cost Embedded X86 Teaching Tool
    The original source example for this sort of PCI mod came from Darmawan Salihun, who publishes several BIOS-Editing articles on his site (Pinczakko):
    http://sites.google.com/site/pinczakko/low-cost-embedded-x86-teaching-tool-2

    ROMOS
    Another similar example for this sort of PCI mod came from someone called RayeR, who wrote a ROM loader that can load FreeDOS from ROM:
    http://rayer.ic.cz/romos/romose.htm
    - truthinjection, 4 years ago
  • 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

    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.
    - truthinjection, 4 years ago
  • I can not get more than the this booting from Preworx PXE-on-Disk

    http://yfrog.com/5dbootprocesscontinuesp

    sebus

    5849
    - sebus, 4 years ago
  • I can not get more than the this booting from Preworx PXE-on-Disk

    http://yfrog.com/5dbootprocesscontinuesp


    Well, you might be able to add a far call from INIT straight to BEV and get around the issue. I'll look at that later today if I can remember.

    Also, you can try the version I just posted. It probably won't do anything different, but who knows?




    Add attachment seems not to be working for me


    When they switched on the new attachments dialog, I had that issue, and they told me the trick was you had to click the "Home" folder thing at the left of the Dialog before the uploads function would work. You could also disable the new dialog in one of the User Settings somewhere, as well.

    Good luck,
    -tij-
    - truthinjection, 4 years ago
  • Yes, new version did not do anything different at all

    sebus
    - sebus, 4 years ago
  • Yes, new version did not do anything different at all

    sebus


    try adding:



    push cs
    call BEV
    right before the



    retn ; Return to Caller after Finishing INIT
    line and see if that will combine the two into one.

    circle becomes line,
    -tij-
    - truthinjection, 4 years ago
  • And BINGO!

    Thanks a lot!!!

    (only tested on Vmware Workstation 7.01 - will test Parallels later at home)

    Created windslic.bin (with correct VID/DID)

    Edited pxeclient.ini (from PXE-on-Disk)



    [Windslic]
    DeviceName =Windslic with Dell M09 SLIC
    Driver1 =windslic.bin
    Loadoptions1 =1
    ImageType1 =2
    LofLEntry1 =6
    Parameters1 =

    Driver2 =Pxeos.ldr
    Loadoptions2 =4
    ImageType2 =1
    LofLEntry2 =7
    Parameters2 =

    VendorID1 =0x1022
    DeviceID1 =0x2000
    ;----------------------------

    Had to use pxeos.ldr , as otherwise the process would NOT continue booting (just stays there on The boot process continues...)

    Not the nices solution, but I could not find quickly anything that does carry on with the local boot

    Created the floppy image (used VFD 2.1 (http://chitchat.at.infoseek.co.jp/vmware/vfd.html) on Win 7 x64 (with x64 driver AND vfdwin.exe 05.404 - it is the ONLY one that works! on x64)

    made the VM boot from floppy first
    - sebus, 4 years ago
  • Tested on Parallels Desktop 4 for Windows:
    The pxeos.ldr is not needed (as for vmware), the boot process carries on from the local HD, but XP/2003 will give 0x000000A5 BSoD - The bios in this system is not fully ACPI compliant. More info is available here - http://www.coreboot.org/SeaBIOS#Windows

    Seven gives STOP: 0x00000050 PAGE_FAULT_IN_NON-PAGED_AREA

    Parallels Desktop 5 for MAC OS - starting XP does not give display, but does not BSoD at least
    Seven DVD will boot OK (as will Windows7Rescue iso), but once installed it will NOT boot - it just hangs

    sebus
    - sebus, 4 years ago
  • This is very interesting, MB User manual says "PCI Interface 2.3"
    WS says "3.0", I wonder if it got upgraded to v3 with a BIOS update.


    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-
    - truthinjection, 4 years ago
  • Well Done, On Driving the Demons OUT of the Int15h handler


    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-
    - truthinjection, 4 years ago
  • 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
    - sebus, 4 years ago
  • The address space for option ROMs conforming to the Device Driver Initialization
    Model (DDIM), such as PCI, shall be write-enabled both when their initialization
    vector is called, and when their BCV is called.


    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.



    Whats the main advantage, to us, of using BCV over the current BEV way of do things?


    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-
    - truthinjection, 4 years ago
  • The address space for option ROMs conforming to the Device Driver Initialization
    Model (DDIM), such as PCI, shall be write-enabled both when their initialization
    vector is called, and when their BCV is called.
    This is quoted from the "BIOS Boot Specification. Version 1.01" paper.
    Not, that, that makes it true.


    Yep. It's true. It's just not very useful, because the BCV (unlike the BEV) is called before the POST has completed, so the ACPI tables aren't necessarily there/finalized yet.

    The BIOS Boot Specification is pretty good. I just wish they would have released an updated version with examples of how to architect the BCV, etc.

    edit:


    Does our int15h handler stay hooked after returning from Hibernation?

    No, but on all but the AMI BIOSes (of the one's I've encountered), the BEV gets executed again and thus re-hooks int15h, so there's no apparent break to the hibernated OS.

    Let me get my specs, :)
    -tij-
    - truthinjection, 4 years ago
  • If the EBDA gets moved would the memory, where it was, probably then get released?

    Probably, but that's somewhat undefined, I guess. The real problem is that from the perspective of whatever moved the EBDA, that memory is (at least in the case of, say, a SCSI card firmware), exactly the memory that it would then think was its to overwrite with whatever it wanted.

    PCI FW 3.0 has a mechanism (POST Memory Manager (PMM)) to gain non-moving permanent memory at INIT time, but with neither of the VMs (QEMU and the latest VMWare (I'm assuming VirtualBox is no better)) supporting PCI-FW 3.0, testing it would be... fun.

    I think the Int15H stuff works okay for us, but it's not as good as the PMM method.

    Given the different options for different boards, so far I have tried to go with the "most compatible" rather than the "most capable" solution. If there is a need to, we can expand WindSLIC to be huge-on-ROM (64K is as big as I think we can safely go) and include all the various tools we have found in past versions at our disposal. Or, if size is an issue, compile-time options could be made for specific chipsets/motherboards/etc.

    Right now, WindSLIC puts RSDP into the EBDA, and then puts RSDT/XSDT/SLIC into HA-MEM (my word for High-Address Memory, meaning the highest non-reserved memory found by the E820 mechanism, up to near 4GB). Both of these are sub-optimal, in that the old RSDP isn't removed (read-only), and there are two sets of RSDT/XSDT in memory.

    On Intel-Chipset Intel P4, Core and Core2 (but not Core-i3,5,7) boards, old versions of WindSLIC have the capability to alter the original RSDP, etc. That's nice.

    From my research, I think every AMD memory-controller-having Athlon/Opteron/Phenom/etc chip has some capaiblity to do the same thing, regardless of motherboard. Untested, but also nice.

    Intel Core-i3,i5, and -i7chips *supposedly* have the same mechanism (configuration mechanisms are purported to be on the on-chip PCI BUS #255) but I don't own one to test, and at least one person says he's tried and can't find any trace of them on a real board.

    Nvidia, ATI, and other chipset Intel boards don't have published datasheets explaining how to accomplish the same thing, unfortunately. If we tore apart the BIOS ROMs, we could probably discern the mechanism, but I haven't attempted it yet.

    -tij-
    - truthinjection, 4 years ago
  • On a separate note:

    Would anyone here like to try helping to develop WindSLIC (or similar things)?

    I'm willing to write a thread on the mechanisms I use to develop it, if anyone wants to try to do the same thing.

    The basics are:


    Program is written in FASM assembly for 16-bit x86 CPUs
    Development Environment is actually Fedora Linux
    GNU Make is used to make and test most things
    QEMU (and now VMWare) are used to do most of the dev/testing runs

    If a few people want to volunteer to learn, I'll give the forum all the tricks I've learned. Might be kind of fun.

    -tij-
    - truthinjection, 4 years ago
  • What was the last version of WS that could alter the original RSDP?

    I don't remember right off the top of my head what was the last version that could do that completely. The bits of code that deprotected the memory area are still around but remmed out (ws_pcifn.inc), but the actual RSDP-alteration code is almost still there, used after the RSDP gets copied into EBDA.



    and I guess that AMI MB, after returning from Hibernation, windows uses the original un-altered RSDP?

    It varies. That's one outcome. If the Int15H doesn't get re-hooked, it also pops up a nasty-gram that yells about the E820 map being different and proceeds to boot without restoring the hibernated state.

    -tij-
    - truthinjection, 4 years ago
  • Hi!

    I tested with Intel S5000PSL Motherboard (2 Xeon CPU's) + 4 GB RAM (2x2 GB Kingston), Intel 1000/PRO PT Desktop Bulk Network Card, Windows 2008 R2.

    It doesn't work !!!

    Server crash after 1-2 sec after bootstart !!!

    Tommorow I will test with Intel/PRO 1000 MT Desktop Adapter.

    Can I restore the normal BIOS of the cards they don't work ?? How?

    regards

    EDIT!

    I downloaded the last truthinjections files and made it as in readme in this 7zip File. I also can set the "winslic" device as first boot device !

    EDIT OFF
    - lattensepp, 4 years ago
  • Hi!

    I tested with Intel S5000PSL Motherboard (2 Xeon CPU's) + 4 GB RAM (2x2 GB Kingston), Intel 1000/PRO PT Desktop Bulk Network Card, Windows 2008 R2.

    It doesn't work !!!

    Server crash after 1-2 sec after bootstart !!!

    Tommorow I will test with Intel/PRO 1000 MT Desktop Adapter.

    Can I restore the normal BIOS of the cards they don't work ?? How?

    regards

    EDIT!

    I downloaded the last truthinjections files and made it as in readme in this 7zip File. I also can set the "winslic" device as first boot device !

    EDIT OFF

    Hmm. Sorry to hear that. Sounds like Windows 2008 R2 may do something that Win7 doesn't.

    To fix the card, you'll want to hit "F5" the moment you see the card's WindSLIC show up.

    That should disable the card's WindSLIC, and the boot should occur normally.

    Assuming that works, you then should be able to flash the card's firmware back to normal/PXE however you flashed it before.

    Good luck!
    -tij-
    - truthinjection, 4 years ago
  • I would say, that the problem, is not with the Network Cards, So I would expect both cards to behave the same. U need to backup the card's rom with the same utility (probably IBAUtil.exe), before U reprogram the card. Use press F5 to get your machine to boot. (Like -tij- said to disable WindSlic)

    IMAGE PROGRAMMING IBAUtil.exe OPTIONS with -SAVE

    Saves the existing Intel Boot Agent flash image to a disk file.



    If you didn't save the old Firmware, I don't think you're in too much trouble. The WindSLIC flash using IBAUTIL doesn't overwrite the card's EEPROM, so the MAC address and whatnot should be intact.

    I usually just recommend doing IBAUTIL -upgrade when I want to remove WindSLIC. That will put the newest (or whatever version was included with your IBAUTIL, at least) version of the Intel PXE Firmware on the card.





    The file will be named based on the PCI Vendor and Device ID of the NIC. If this is specified on the same command line as -UPGRADE, the save is performed before the upgrade. U can restore a saved rom image from the type of Card, if U don't have the original saved rom image from that card.
    D


    If you need a specific version of the real Intel ROM for the card, you can restore it as DSpyder suggested (if you have access to one), but the recommended way is to track down the proper PROBOOT version from Intel and use that (since its version of IBAUTIL will include/use a clean non-saved-card-specific PXE firmware).

    -tij-
    - truthinjection, 4 years ago
  • OMG I LUV YOU TRUTHINJECTION! I tried the January 15 release in SirSilentBob's thread http://forums.mydigitallife.info/threads/8727-Use-Intel-NIC-PXE-image-mod-for-2.1-SLIC, and it didn't work (video crash). Afterward, I built a new bios with your set, but it did not work just restoring over the previous mod. I had to restore back to stock and then to the new mod for it to work. Now everything works perfectly!! Thanks again! This was on a Dell Dimension 3000 bios A03 that was deemed "unmoddable". I used an Intel Pro/1000 GT PCI card.
    - someguyfromhell, 4 years ago
  • Well, I ran a boot test with a VM Windows 2008 R2 installation.

    It seemed to boot and run fine with my development version.

    As for what to do next, I had a couple of questions for the Windows 2008 R2 users here.

    How much RAM do you have in the machines you're trying this on? I don't have any machines with more than 4GB.

    Can you boot to DOS and run the WSCOMFIL debugging test with BS_DEBUG enabled? That would allow the WindSLIC internal debugging text to be captured and uploaded here.

    Failing that, can you set:


    BOOTSPLASH_VERBOSITY = BS_DEBUG ; OR USE BS_DETAILED, It would probably be sufficient
    BOOTSPLASH_USE_TIMELY_PAUSES = 1
    Then, run through the boot and see if it finds an E820 High Water Mark?

    Edit:
    There's also an advanced E820 Diagnostic mode (DEBUG_SYS_E820_ENABLED) included in WindSLIC, but I haven't used it in a while and I think it's a bit neglected/broken (wrong function name for displaying dwords as hex, and bad linefeeds) in the current version.

    Thanks,
    -tij-
    - truthinjection, 4 years ago
  • Hi truthinjection,


    Hmm. Sorry to hear that. Sounds like Windows 2008 R2 may do something that Win7 doesn't.


    I can confirm I have this working with Windows Server 2008 R2. I'm using an Intel Pro/100 S Desktop Adapter with the latest version of your code. It's in an HP ML110 G5 Server with 8GB RAM which boots W2K8R2 and activates perfectly.

    Thanks for all your hard work on a great project!

    Nick.
    - HPNick, 4 years ago
  • I can confirm I have this working with Windows Server 2008 R2. I'm using an Intel Pro/100 S Desktop Adapter with the latest version of your code. It's in an HP ML110 G5 Server with 8GB RAM which boots W2K8R2 and activates perfectly.


    Well, that's encouraging. :) So, it at least sounds like there's nothing intrinsically wrong with the interaction between WindSLIC and Windows 2008 R2, necessarily. That leaves a million possibilities, of course, but that's better than a million and one, I suppose. ;)



    Thanks for all your hard work on a great project!


    Sure thing. Thanks for your feedback!
    - truthinjection, 4 years ago
  • 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


    I worked on it for a little while today. I finally figured out why it's hard:

    If WindSLIC doesn't get loaded as a ROM, we'll have to reserve some (low) memory for WindSLIC itself (including the Int15H Handler we use), not just the final ACPI tables.

    Ah, fun.

    -tij-
    - truthinjection, 4 years ago
  • Vmware workstation works just fine with PXE-on-Disk/windslic combo floppy image- post #15

    Parallels has BAD ACPI BIOS - post #16, so it does NOT work (in fact does not boot) - loaders or secr9tos driver work fine

    I could not get Hyper-V to boot at all (why?) from the same floppy image used in Vmware workstation test - hence wanted some other rom loading boot floppy image to try

    And here is some info for Virtualbox rom boot - http://www.etherboot.org/wiki/romburning/vbox
    and vmware - http://www.etherboot.org/wiki/vmwarebios

    Maybe something of interest - Floppy-Disk-Boot-Loader-Version-1.0 (http://www.sirecovery.com/FloppyDiskBootLoader.html)

    and link to required Microsoft Macro Assembler Version 6.15.8803 - http://mirror.href.com/thestarman/asm/masm.htm

    I was give this explanation by Stefan Hajnoczi, why the gPXE could not be used to load the WS


    gPXE images contain two main parts: the prefix (loader) and the
    compressed code. Most of gPXE will be compressed. The prefix
    includes the loading code and the decompression routine.

    Each supported gPXE image type has its own prefix (dsk, usb, pxe, rom,
    lkrn, ...). That means that a gPXE floppy image does not load a ROM
    from floppy. It directly loads the gPXE code from floppy and has no
    ROM headers.

    Another was of describing this is:
    gpxe.rom = rom prefix + gpxe code
    gpxe.dsk = dsk prefix + gpxe code

    AND NOT

    gpxe.dsk = dsk prefix + gpxe.rom

    So looking at gPXE floppy code may not help you in loading an
    unmodified ROM image.

    Here is the ROM and floppy prefix code:
    arch/i386/prefix/{dskprefix.S, romprefix.S}

    sebus
    - sebus, 4 years ago
  • "I can confirm I have this working with Windows Server 2008 R2. I'm using an Intel Pro/100 S Desktop Adapter with the latest version of your code. It's in an HP ML110 G5 Server with 8GB RAM which boots W2K8R2 and activates perfectly."

    Can you tell me whicht PCI_VENDOR & DEVICE you have on the Card? Can you post the pxe File ? Have here a Pro/100 S Card

    regards
    - lattensepp, 4 years ago
  • Hello i have the windslic running on my pc fine since last year the early versions, i was wondering can a usb windslic activator be made?
    - jet29, 4 years ago
  • Hello i have the windslic running on my pc fine since last year the early versions, i was wondering can a usb windslic activator be made?

    Potentially, yes. But, what benefit would that have over the existing loaders that can do that?

    -tij-
    - truthinjection, 4 years ago
  • I was looking at convenience and ease of use, since usb sticks are quick and easy to implement, since a no of other methods ie. floppy etc were mentioned i thought why not this!

    I have not upgraded my windslic to the latest one since your earliest version is working fine for me, any benefit in changing to new one for me? thanks
    - jet29, 4 years ago
  • I was looking at convenience and ease of use, since usb sticks are quick and easy to implement, since a no of other methods ie. floppy etc were mentioned i thought why not this!


    Hm. Well, it's an idea, I guess. I never really considered positioning WindSLIC in the "loader" arena, but there's nothing preventing it, necessarily, I guess.



    I have not upgraded my windslic to the latest one since your earliest version is working fine for me, any benefit in changing to new one for me? thanks


    I would upgrade, since the new version fixes a number of possible failure modes, but if the old version is working for you, I suppose there's no official reason why you'd have to upgrade.

    If it ain't broke, don't fix it?
    -tij-
    - truthinjection, 4 years ago
  • I have looked High and low for source code, of working examples, of setting-up and using BCV to add a HD device to the BIOS, I haven't found any. Did U find any?


    You know, I haven't found much either. I think the BCV part of the BBS specification was sort of written to rely on knowledge in the bailiwick of the BIOS engineer crowd. I've found bits and pieces of the knowledge needed, but not a whole how-to about it, or even a great example.



    How is your "Devilment (Dev-elop-ment)" & Testing, going?


    Haven't done much in the last day or two. The two things I'm working on are the BCV stuff and the Floppy-Loader stuff, but neither is in a position where it entices me to work on it much.

    The BCV stuff seems to actually work in the VM test cases, but the last version I tried on a real PC (AMI BIOS) didn't, so I need to pick apart more of the bits of sketchy Int13H handler stuff from the internet to see if I can figure out how to fully hook a drive number.

    The Floppy thing hit a roadblock when I realized that because it's not in the UMB area, I would have to find a way to reserve/protect the WindSLIC after loading. I'm sure there's a way (for example, extending the EBDA another 8K or so and shoving all of WindSLIC there), but I'm not done letting the idea percolate.

    -tij-
    - truthinjection, 4 years ago
  • That does look very interesting... Good luck playing with it

    sebus
    - sebus, 4 years ago
  • Hi,
    I have a problem with this method :-(

    I have patched my Intel Pro/1000MT with the compiled 8086100E.iba file and I see the following boot-message:

    Initializing WINDSLIC v2010.02.22.1 (_ASUS_Notebook)...
    PCI BIOS 3.00
    Press F5 to skip.

    Everest and RWEverything v.147 do not show the wanted SLIC.

    Instead I see the SLIC from my already patched AMI bios (DELL QA09).

    Does the MB-BIOS overwrite the SLIC from the NIC-ROM or do I make an error?

    I want to test this method for another PC with the same NIC.
    - tramp20, 4 years ago
  • I have a problem with this method :-(


    Hm. Did you set WindSLIC as the first boot device in your BIOS? WindSLIC works in two parts: Initializer and Activator. The text you posted is the Initializer, which sets up the WindSLIC Option-ROM itself in memory. After that, the BIOS might load other Option-ROMs, like SCSI cards, other network PXE ROMs, etc. After the BIOS has loaded all the Option-ROMs, it finishes the POST, then tries to boot an operating system by calling Int-19H. Then, iff WindSLIC is the first BIOS boot device, the Activator portion is executed, which does the actual SLIC insertion into memory.



    Initializing WINDSLIC v2010.02.22.1 (_ASUS_Notebook)...
    PCI BIOS 3.00
    Press F5 to skip.


    Well, it's nice to see that the new PCI-FW version display code is working, at least. :)



    Everest and RWEverything v.147 do not show the wanted SLIC.


    Does RW-Everything v1.47 show both the "ACPI Table" and "ACPI Table - EBDA" windows when you select ACPI?

    What model of PC is the one you're using to test this on?

    Thanks,
    -tij-
    - truthinjection, 4 years ago
  • Hi,
    thank you very much for your help :-)

    I forgot to set the NIC to the first boot device although I read the whole thread several times. Now all is ok.
    Even RWEverything shows now the new ACPI Table - EBDA.

    Thank you again.

    tramp
    - tramp20, 4 years ago
  • thank you very much for your help :-)


    Sure thing. Glad it's working for you. :)



    I forgot to set the NIC to the first boot device although I read the whole thread several times. Now all is ok.
    Even RWEverything shows now the new ACPI Table - EBDA.


    Yeah, the original thread has better troubleshooting sprinkled throughout, but it's huge and none of the good info is on the first page. This new thread is a lot easier to manage, but not all the best info has been percolated up from the old thread into the new thread's first page.

    I updated the first page's troubleshooting post and put the First Boot Device info there, so now it'll be found a lot more easily next time.

    Thanks,
    -tij-
    - truthinjection, 4 years ago
  • Hey just got WindSLIC working nicely on an Intel Pro 100/S. Thanks truthinjection for the great tool!
    - Russtavo, 4 years ago
  • Has anyone, Out There, gotten WindSlic to perform on a MB with more than 4gb of memory on it?

    Well, according to HPNick, he's using it with Win2008R2 on a motherboard with 8GB...



    I can confirm I have this working with Windows Server 2008 R2. I'm using an Intel Pro/100 S Desktop Adapter with the latest version of your code. It's in an HP ML110 G5 Server with 8GB RAM which boots W2K8R2 and activates perfectly.


    Hope that helps,
    -tij-
    - truthinjection, 4 years ago
  • Evidently, There is NOT many Mama-Boards, with more than 4GB, being tested ?

    I suppose not. As for me specifically, I sort of decided 4GB was a sweet-spot, memory-wise, so I never upgraded past that. I still don't have much exposure to the 64-bit or PAE-enabled world, so it hasn't really come up for me personally.

    When I get a new PC in the next year or two, I'll get a Core i7 and at least 6GB of ram, hopefully. :)

    What board/memory-size are you trying it with?

    -tij-
    - truthinjection, 4 years ago
  • I have successfully patched bootmgr with WindSLIC, I had to trim alot out of it
    to get it to fit. Many thanks for posting this project I have learned more from reading
    your well commented code than any of the assembly books I have, keep up the
    good work!

    works with my HP mini netbook with SLIC in bios (came with Windows 7)
    and an ASUS P6T- deluxe motherboard without bios mod (has KB971033 installed, is activated)

    I figure there is about 600b of space left in bootmgr so Im going
    to try to add back a lite version of the UI (trimed boot text,
    keyboard key etc).



    http://www.mediafire.com/?h3oydhyymyn
    - nononsence, 4 years ago
  • I have successfully patched bootmgr with WindSLIC, I had to trim alot out of it to get it to fit.


    That's pretty wild. :) Did you follow a guide to do that? Might be good to add links to that to the first page of this thread so others can do it, too?



    Many thanks for posting this project I have learned more from reading
    your well commented code than any of the assembly books I have, keep up the
    good work!


    Certainly! The reason the code is reasonably well-documented is that I was learning it as I went, and that was the only way I could keep track of what the original add_slic.asm code was doing with its chinese-translated-by-google comments. :)



    works with my HP mini netbook with SLIC in bios (came with Windows 7)
    and an ASUS P6T- deluxe motherboard without bios mod (has KB971033 installed, is activated)


    Interesting. Glad to see it works, but aren't you concerned that they will target bootmgr-specific mods first?



    I figure there is about 600kb of space left in bootmgr so Im going
    to try to add back a lite version of the UI (trimed boot text,
    keyboard key etc).

    http://www.mediafire.com/?zivztj22ntn


    WindSLIC is only 16kB (16,384 bytes) with debugging enabled, I think. Enabling BS_HIDDEN and turning off the BOOTSPLASH_VISIBLE option should get rid of the text-display without having to manually delete it.

    Anyway, that's pretty cool that you managed to insert WindSLIC into a boot loader. I tried to write it to be flexible like that, but so far you're the only person smooth enough to make it work. :)

    -tij-
    - truthinjection, 4 years ago
  • no guide, I dissasembled the old SLIC in bootmgr to see if I could get it to work better but it had been
    hacked on pretty bad so I gave up, and just for fun tried to get WindSLIC to work in bootmgr after
    a few hours it was working; I included a readme.txt with the steps on how to do it. (EASY)

    MS has stated that it is collecting checksums on "boot instruction file's" (bootloaders) so I dont expect it
    to last long without countermeasures, host file blocking is working for now. I did this just for fun if MS
    kills it mehhh, Ill move to the bootsector.

    sorry that should have been 600 bytes, I have maybe 3Kb to work with, any code much past that point crashes.
    I had a real hard time figuring that out, but noticed that the crash happened around screen writes. so I
    commented out ws_disp.inc and ws_texts.inc and then had to fix all the compile errors, since then I have
    slimed it down a little more, so I think I can add the boot text back.
    - nononsence, 4 years ago
  • view xanax dosage pink pill - taking xanax for flight anxiety
    - yLDSdxsJTGO, 3 months ago
  • buy ambien online ambien cr long does stay your system - buy ambien online usa
    - EnWCNAWwYopFWm, 3 months ago
  • http://www.manateeinn.com/lib/#6u valium xanax online - valium 10 effects
    - ViPoFCzxlVhFqX, 3 months ago
  • buy ambien online ambien side effects tremors - buy ambien online with prescription
    - aVm, 3 months ago
  • buy ambien side effects prolonged use ambien - do employers drug test ambien
    - amJbDUATEHsyjoiJnkm, 3 months ago
  • buy ambien will there generic ambien cr - ambien 2012
    - CHd, 3 months ago
  • Home Page ativan and alcohol high - happens you overdose ativan
    - MeUCLdhwcdo, 3 months ago
  • buy adderall buy adderall rx online - buy adderall xr usa
    - Tiy, 3 months ago
  • tramadol 50mg tramadol hcl er 200 mg tab - buy tramadol 50mg
    - ux, 3 months ago
  • official site ambien side effects heartburn - sleeping pill better than ambien
    - uIkSAinIGzbd, 3 months ago
  • buy tramadol tramadol hcl 50 mg abuse - buy tramadol no prescription mastercard
    - ukfuWE, 3 months ago
  • buy valium online valium water soluble - 5mg of valium street price
    - CQsuv, 3 months ago
  • watch jOulaaT#online Nu watch drift onlie lbEU www.watch sbbKreu#.com
    - HVEkFpukKt, 2 months ago
  • watch fFLnJRc# Lu captain phillips stream hd gDpP watch nwmFAdz online fre
    - IPpmeqCgwV, 2 months ago
  • wach oxQCnQx online free dw the fifth estate streaming hULq NvGMbUD online free ru
    - fAKXDkCFrJ, 2 months ago
  • dzVXuZz onli mP watch the fifth estate streaming WXId CajVJJH watch free online stream
    - FcVCAxWGRF, 2 months ago
  • buy tramadol cod next day delivery safe take 2 50mg tramadol - order tramadol online no prescription overnight
    - QbazWM, 2 months ago
  • buy xanax online online pharmacy canada xanax - xanax without prescriptions
    - hoQFMDsxA, 2 months ago
  • valium online pharmacy generic valium blue - can you buy valium over the counter in canada
    - KRJiP, 2 months ago
  • buy valium valium 5mg or 10mg - price of 5mg valium
    - NOIfW, 2 months ago
  • cheap tramadol no prescription tramadol dosage half life - tramadol no prescription free shipping
    - VEpZmoVE, 2 months ago

Comment