Jump to content

Compiling ACPI v2.0 driver for Windows XP SP3 and Windows 2003 SP2 (x32/x64)


Mov AX, 0xDEAD

Recommended Posts


On 6/2/2023 at 11:37 PM, Dibya said:

@Mov AX, 0xDEAD

Is it possible to boot XP without 32bit Ring 0 ? Can it be emulated in Custom Bootloader?
Future looks grim

Looks like XPx64 is only option

I think such processors will not be good  because any win32 software will not run on it, all 28-year legacy software since win95 era is dropped, same crop like uefi-only booting

Basicaly we can patch WinXP-64 to run on pure 64 cpu mode even in uefi environment, need rewrite legacy vga output like boot graphic, boot menu, bsod screen etc and initial memory manager

 

Edited by Mov AX, 0xDEAD
Link to comment
Share on other sites

2 hours ago, Mov AX, 0xDEAD said:

I think such processors will not be good  because any win32 software will not run on it, all 28-year legacy software since win95 era is dropped, same crop like uefi-only booting

Basicaly we can patch WinXP-64 to run on pure 64 cpu mode even in uefi environment, need rewrite legacy vga output like boot graphic, boot menu, bsod screen etc and initial memory manager

 

Well Windows XP x64 on my Coffee Lake laptop refuses to boot unless it's on a Virtual Machine.

I wish there was a way to implement boot graphics from windows 8 ntoskrnl so we can see the BSOD in case of trying to boot XP x64 on UEFI without CSM (NOGUIBOOT with 16497 winload.efi).

Even if I use VGA emulators like VgaShim/UefiSeven/FlashBootPro, XP still won't boot on my UEFI Class 3 laptop.

If I was able to see BSOD without debugging on NOGUIBOOT, then maybe I would be able to try to find the cause much easier.

I think you should try to create packages that allow users to patch XP kernel files for UEFI support.

I also think you should borrow the graphics from windows 8's kernel not for design purposes but for functional purposes of automatically patching the kernel in memory on UEFI mode to force vga.sys and vgapnp.sys to support the GOP/UGA framebuffer just like FlashBoot does, so display with VGA drivers will work just like in CSM mode.

This is related to ACPI because if I can't see the BSOD, I can't figure out if the problem is caused by ACPI or other drivers.

If I can't even boot an XP installation cleaned up with sysprep from 16497 winload.efi with BCD with VGA Emulator + DisableIntegrityChecks and proper mass storage controller drivers, then the problem may be on XP's kernel.

Winload.efi 16497 is capable of booting XP, so I was wondering if there was a way to make it patch XP's kernel into memory automatically to include UEFI support for XP so it can boot effortlessly on UEFI without CSM.

Edited by UsefulAGKHelper
Link to comment
Share on other sites

24 minutes ago, UsefulAGKHelper said:

I think you should try to create packages that allow users to patch XP kernel files for UEFI support.

I also think you should borrow the graphics from windows 8's kernel not for design purposes but for functional purposes of automatically patching the kernel in memory on UEFI mode to force vga.sys and vgapnp.sys to support the GOP/UGA framebuffer just like FlashBoot does, so display with VGA drivers will work just like in CSM mode.

If something I did for x32 is also suitable for x64, I usually do it too. But I'm not interested in doing something "unique" only for x64.

Link to comment
Share on other sites

On 6/9/2023 at 7:07 PM, Mov AX, 0xDEAD said:

If something I did for x32 is also suitable for x64, I usually do it too. But I'm not interested in doing something "unique" only for x64.

The thing is that I tried to compile Bootvid.dll numerous times from the source code but it always gives me errors, even the untouched code.

What I tried to do is change the resolution on bootvid.dll from 640x480 to 1024x768. Why? I am trying to force XP's BSOD to show on UEFI mode when a VGA emulator like Uefiseven/FlashBootPro is used for a fake int10h handler, so I can see if the problem is caused by acpi.sys or something else.

I can't debug because I have only one functional laptop, btw I don't even have a serial cable.

On already installed XP x64 from XP2ESD (with VirtualBox) that I was trying to boot on real hardware, the mass storage controller driver is installed (device manager entry matching real hardware ID is added from edited reg file from host's enum key), USB 3.0 is installed, Int 10h emulator is used, so maybe it's either the ACPI problem or the fact that my laptop's chipset isn't PIIX3. My Chipset is "I/O LPC Controller - 9D84 for Intel(R) 300 Series Chipset Family On-Package Platform Controller Hub", PCI\VEN_8086&DEV_9D84&REV_30, maybe this chipset doesn't support XP, because it uses generic msisadrv driver (service) that isn't included natively on XP.

Edited by UsefulAGKHelper
Link to comment
Share on other sites

5 hours ago, Damnation said:

I did get the amd64 version of bootvid.dll to build in the XPSP1 tree.

I'm not sure how to change the resolution from 640x480 to something else though.

XP x64 is based on windows server 2003 codebase, so try to compile bootvid from windows server 2003 source code in 64 bit.

In bootdata.c and bootvid.c of W2003 > NT > base > boot > bootvid folder , replace all strings containing "640x480" with "1024x768" using Ctrl+H and try to compile bootvid 64-bit and give the link if there are no compiling errors.

Edited by UsefulAGKHelper
Link to comment
Share on other sites

On 6/9/2023 at 5:54 AM, kocoman said:

is it possible to debug (add serial? add debug statments printf to) acpi.sys I am getting A5 ACPI_BIOS_ERROR on coreboot/tianocore

thx

 

Try searching for keywords like "windbg" in this topic. You can debug via LAN and other computer. If you don't have debug version of acpi.sys, ask @Dietmar for it.

Link to comment
Share on other sites

6 hours ago, R1600 said:

Try searching for keywords like "windbg" in this topic. You can debug via LAN and other computer. If you don't have debug version of acpi.sys, ask @Dietmar for it.

the acpi loads very early, even before the 7b bsod..

I using the patched 7777.5xx for now but hopefully the sfc/sp3.cab doesn't get updated automatically somehow

 

Link to comment
Share on other sites

On 6/11/2023 at 12:49 AM, UsefulAGKHelper said:

In bootdata.c and bootvid.c of W2003 > NT > base > boot > bootvid folder , replace all strings containing "640x480" with "1024x768" using Ctrl+H and try to compile bootvid 64-bit and give the link if there are no compiling errors.

bootvid doesn't work this way :)

this .DLL needs to rewrite completely because it uses raw VGA register programming

Edited by Mov AX, 0xDEAD
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...