Jump to content

Recommended Posts


Posted (edited)

@Dietmar

I need to remember and practice because I don't remember exactly.

pci - list all PCI devices

For graphics card you need set register Command (4): 0007

mm xxyyzz04 7 -pci

For PCI Bridge you need set register VGA Enable in Bridge Control (3E) (the bridge to which the graphics card is connected)

mm xxyyzz3E 8 -pci

xxyyzz is PCI bus dev func of PCI Bridge device

https://forums.macrumors.com/threads/win7-x64-booting-natively-via-efi-no-bios-emulation.696523/post-14778765

https://forums.macrumors.com/threads/win7-x64-booting-natively-via-efi-no-bios-emulation.696523/post-14776170

This is example in my PC:

00 1C 04 - PCI bridge to which the graphics card is connected
04 00 00 - PCIe graphics card

mm 001c043e 8 -pci    VGA Enable
mm 04000004 7 -pci    I/O acces and Bus master

For check changes:

pci -i 00 1c 04 -b
pci -i 04 00 00 -b

To check bridge to which the graphics card is connected use:

devtree -b

and dh handle_number

devtree.png bridge-001c04.png amd6450.png

Edited by reboot12
Posted (edited)

@Dietmar

Yes, VGA Enable 1 help boot xp32 on iGPU using normal ntldr - black screen but OS works - I have Remote Administrator installed and OS works in 640x480 4-bit (Memory Remap Enabled or Disabled):
VGA-Enable-i-GPU-ntldr-radmin.png

00 01 00 - bridge to which the graphics card iGPU is connected
00 02 00 - iGPU

No need set I/O acces and Bus master 'Command (4)' for iGPU because is default set to 7 - only VGA Enable for bridge:

mm 0001003e 8 -pci
CSMWrap121.efi

If VGA Enable is 0 then OS hang for some minutes (about ~3) and in WinDbg BSOD 0x4000008a:

Microsoft (R) Windows Debugger Version 6.12.0002.633 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\com3
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target at (Fri Jun  6 15:34:42.574 2025 (UTC + 2:00)), ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: *** Invalid ***
****************************************************************************
* Symbol loading may be unreliable without a symbol search path.           *
* Use .symfix to have the debugger choose a symbol path.                   *
* After setting your symbol path, use .reload to refresh symbol locations. *
****************************************************************************
Executable search path is: 
*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
*                                                                   *
* The Symbol Path can be set by:                                    *
*   using the _NT_SYMBOL_PATH environment variable.                 *
*   using the -y <symbol_path> argument when starting the debugger. *
*   using .sympath and .sympath+                                    *
*********************************************************************
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe - 
Windows XP Kernel Version 2600 MP (1 procs) Free x86 compatible
Built by: 2600.xpsp_sp2_rtm.040803-2158
Machine Name:
Kernel base = 0x804d7000 PsLoadedModuleList = 0x8055c700
System Uptime: not available
watchdog!WdUpdateRecoveryState: Recovery enabled.

*** Fatal System Error: 0x4000008a
                       (0x89ECE990,0xB9D7DA60,0x00000000,0x00000000)

Break instruction exception - code 80000003 (first chance)

A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been invoked.

A fatal system error has occurred.

*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
*                                                                   *
* The Symbol Path can be set by:                                    *
*   using the _NT_SYMBOL_PATH environment variable.                 *
*   using the -y <symbol_path> argument when starting the debugger. *
*   using .sympath and .sympath+                                    *
*********************************************************************
*** ERROR: Module load completed but symbols could not be loaded for ntdll.dll
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for ntkrpamp.exe - 
*******************************************************************************
*                                                                             *
*                        Bugcheck Analysis                                    *
*                                                                             *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 4000008A, {89ece990, b9d7da60, 0, 0}

***** Kernel symbols are WRONG. Please fix symbols to do analysis.

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for halmacpi.dll - 
*** ERROR: Module load completed but symbols could not be loaded for mssmbios.sys
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: nt!_KPRCB                                     ***
***                                                                   ***
*************************************************************************
*************************************************************************
***                                                                   ***
***                                                                   ***
***    Your debugger is not using the correct symbols                 ***
***                                                                   ***
***    In order for this command to work properly, your symbol path   ***
***    must point to .pdb files that have full type information.      ***
***                                                                   ***
***    Certain .pdb files (such as the public OS symbols) do not      ***
***    contain the required information.  Contact the group that      ***
***    provided you with these symbols if you need this command to    ***
***    work.                                                          ***
***                                                                   ***
***    Type referenced: nt!_KPRCB                                     ***
***                                                                   ***
*************************************************************************
Probably caused by : ntkrpamp.exe ( nt!KeRegisterBugCheckReasonCallback+77c )

Followup: MachineOwner
---------

nt!DbgBreakPointWithStatus+0x4:
8052a5d8 cc              int     3

I tried install Haswell iGPU driver, install OK but after reboot and VGA Enable is error Code 12 (not free resources) and still works on 4-bit:
i-GPU-Code12.png

But if use bootmgr+winload.exe+BCD+vga.sys (haswell iGPU uninstalled) no need set VGA Enable 1 then OS boot in e.g. 800x600 32-bit

VGA Enable is only helpful for ntldr loader

Edited by reboot12
Posted (edited)

@reboot12

Hi Gelip,

I am a big step forward.

And now I think, all what I write at FlyGoat about loading legacy Option Rom is correct.

I put the AMD Radeon HD 6450 into my Asrock z370 k6 board, with CSM enabled.

And voila, after typing dmem 0C0000 40 at the UEFI Shell, I SEE the legacy Option Rom at 000C0000, 55 AA.

And now comes the most crazy part:

When I disable CSM with this card, I get black screen.

And even after typing fs0: and then start blind the csmwrap.efi from this shell,

the screen remains black.

This means, that until now it is impossible for SeaBios to load ANY legacy Option Rom at 000C0000 in memory.

It uses the UEFI Option Rom if there, cool

Dietmar

 

PS: Now I have an nearly ideal test scenario, if it is possible for Clover, to load the legacy Option Rom

at this place 000C0000 to memory

and shows me the menu screen of Clover, the UEFI shell when hitting esc in Clover and then boot csmwrap.efi .

 

 

Edited by Dietmar
Posted
14 minutes ago, Dietmar said:

And now comes the most crazy part:

When I disable CSM with this card, I get black screen.

This is normal because CSM Disabled = pure UEFI and this requires GOP. Your AMD6450 card not have GOP - only Legacy VBIOS

Posted

@reboot12

Yes, but now comes the sad message:

Clover cant load the legacy VGA Option Rom at this place C0000.

At once I understand, why only 4 bit Graphic.

But when I use the Nvidia card GT 730 with csm disabled on the Asrock z370 k6 board, it also does not load the vga Bios to C0000.

But strange enough, after waiting about 2 min, it boots XP SP3 in 32 bit color.

The normal Nvidia driver works.

So, it must fetch the information, that it has a legacy VGA option Rom from another place

Dietmar

Posted
11 minutes ago, Dietmar said:

Clover cant load the legacy VGA Option Rom at this place C0000.

Why clover? CSMWrap 1.2.1 normal load VBIOS from my AMD6450 - but in motherboard bios I have amd-gop inserted.

Posted

@reboot12

Please tell me step by step, how you integrated amd-gop from that card into Bios on board of a compi,

which tool you need and can this be done for other graphik cards also

Dietmar

Posted (edited)

Yesssssaaa :cheerleader::cheerleader::cheerleader:

After soso much crazy tests and hacks I succeed with the Nvidia GT 730 graphik card for to boot XP SP3 with full 32 bit 3D graphik

on the Arrow Lake Gigabyte board B860 DS3H under pure Uefi, means no csm at all.

Dietmar

umdb52bs.jpg

Edited by Dietmar
Posted (edited)

 

6 hours ago, Dietmar said:

Please tell me step by step, how you integrated amd-gop from that card into Bios on board of a compi,

which tool you need and can this be done for other graphik cards also

GOP not from this one but from a similar HD7450

Did you read this post? I described on betaarchive.com with pictures:
https://msfn.org/board/topic/186793-csmwrap-boot-csm-on-uefi-only-systems/page/9/#findComment-1280411

Insert .ffs file using UEFITool:
https://www.mediafire.com/file/hdkw8v22lhixv8c/AMD-GOP.zip/file

Instruction step-by-step on other example driver:
https://github.com/pbatard/efifs/wiki/Adding-a-driver-to-a-UEFI-firmware

Read tutorial from Adding the module to the firmware

Edited by reboot12
Posted (edited)

@Dietmar

I noticed an interesting thing - I did the xp32 tests with CSMWrap described in the last few posts on the original xp sp2 files including acpi.sys and there were no problems with acpi. Today I wanted to test something, I set CSM Enabled in the bios, I run the system without CSMWrap and there is BSOD A5.

I replaced the acpi.sys outside of the running system with the ones from you - modded acpi.sys 5.2 and the system boots fine - but it seems to be related to the fact that I use winload.exe and it has a problem with the original acpi.sys - I seem to have written about it before (in 2019 and 2020) on BA about xp 64-bit + winload.exe:
https://www.betaarchive.com/forum/viewtopic.php?p=445453&sid=c0c23f5574a1881384f2de47f5f59987#p445453

https://www.betaarchive.com/forum/viewtopic.php?p=447734&sid=c0c23f5574a1881384f2de47f5f59987#p447734

Very interesting that with CSMWrap work ok original acpi.sys + winload.exe

Edited by reboot12
Posted (edited)

@reboot12

I wonder, which parts from DSDT are really presented from the SeaBios to the compi.

When only Acpi1b words are presented, it is clear, that the original acpi.sys works.

ReadWrite Everything gives me a DSDT on running XP SP3 on the Arrow Lake board, which is very near to the DSDT from UEFI Bios F6.

And so comes the problem with XP: Not enough resources for the PCI-1 bus.

On my older compi from 2009, which is my daily work compi X58,

there is only ONE PCI-bus.

And on that PCI-bus 1 with yellow mark sits Slot 1 with the graphik card. NOTHING other sits there!

It has nothing to do with  recogneicing the Graphikcard.

They are recogniced with their VID&Pid numbers via csmwrap.efi .

The AMD has Legacy VGA Option Rom, the Nvidia GT 730 not.

The fault of csmwrap.efi is, that it needs an Legacy VGA Option ROM on a compi without any CSM or black screen,

after SeaBios is loaded and XP starts. You see the running Balken, but then only start sound of XP.

And also a VGA UEFI Option ROM, or no screen at all from start of compi, I tested with AMD Radeon HD6450.

And this gives me the ingenious idea, how to overcome this problem,

works

Dietmar

PS: I also tried a heavy modd of the DSDT, for to give PCI-1 bus more resources. Fail, may be something like hard wired or stored in other Acpi tables. The most easy would be, to use not an acpi PC, but this is not what I wanted.

Edited by Dietmar
Posted (edited)
16 minutes ago, Dietmar said:

The AMD has Legacy VGA Option Rom, the Nvidia GT 730 not.

It is impossible that such an old graphics card GT 730 does not have a Legacy vbios, after all, you booted the computer with this card in Legacy mode using CSMWrap - right?
https://msfn.org/board/topic/186793-csmwrap-boot-csm-on-uefi-only-systems/page/10/#findComment-1280463

This is proof that it has vbios - show what the SLIC ToolKit memory dump at C0000 shows:
https://msfn.org/board/topic/186793-csmwrap-boot-csm-on-uefi-only-systems/page/9/#findComment-1280402

Edited by reboot12
Posted (edited)

@reboot12

I just check again: The GT 730 does not have an Legacy VGA Option Rom.

The Radeon R240 has.

But the Radeon also does not load 55 AA at C0000 because the PCI-bus 1 has not enough resources for it under XP on the Arrow Lake board.

This you can check easy via UEFI shell with dmem 0C0000 40 .

The resources go all to PCI-bus 00. And because of this, also Clover does not help.

I understand everything, what the problem is of the Arrow Lake bord for booting via Graphik card for XP SP3

and also what is the problem of csmwrap.efi: It needs mostly the help of an underlying CSM from a compi, where it is just disabled.

Or it is lost without Legacy VGA Option Rom, waiting of 2 min for to load SeaBios and then black screen.

And on an Arrow Lake board this resources problem appears.

After I understand this, I can boot full XP SP3 to desktop, 32 bit color and resolution as much as I want, 3D driver works to full there.

I disable PCI-bus 01 in Device Manager. Everything works there and is stable

Dietmar

Edited by Dietmar
Posted (edited)
31 minutes ago, Dietmar said:

I just check again: The GT 730 does not have an Legacy VGA Option Rom.

I don't believe it. I asked you to take a screenshot in xp in SlicTool Kit (slic.exe):
https://www.mediafire.com/file/zuxxznjxjjnn3u1/memory_check.zip/file

At the moment I'm not interested in whether the card works on ArrowLake with CSMwrap just whether it actually has VBIOS - connect card to other old motherboard run xp in legacy mode and please use slic tool kit.

Edited by reboot12

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   1 member

×
×
  • Create New...