Jump to content

XP Pro x64 OS Boot NVMe


bluebolt

Recommended Posts

On 2/9/2019 at 6:11 PM, bluebolt said:

I installed the Windows XP Professional x64 operating system on a Samsung 970 Pro NVME SSD drive using an ASRock X99 Extreme4 motherboard.

I have ASUS B85M-E motherboard with two PCIe x16 slots (second work at x4). In the first slot x16 I have a graphics card AMD.

I would like to buy the NVMe M.2 PCIe adapter (x4) and M.2 drive, e.g. Samsung 9xx Pro and install WinXP SP2 64-bit

What adapter to buy and will it work?

P.S. Information about PCIe/PCI slots from the user manual of the motherboard:

2605952200_1665405918_thumb.jpg

Edited by reboot12
Link to comment
Share on other sites


Hi,

booting XP on this board from any nvme dvice will not work in normal way,

because it has no support for nvme in its Bios.

I wrote on the nuked forum, that nvme boot can be done with the Bios from the 950 Pro nvme disk,

but it is not easy procedure and works only for Fat32 und freeldr.sys from reactos

Dietmar

 

http://reboot.pro/index.php?showtopic=22566

 

Waaoooh:)))))) ,
I split the Option Rom in 2 parts:
First Option Rom is original plpbtrom.bin from Elmar (Plop).
I modd this for the Realtek Lan PXE boot on the Asus P8H77-M board via

plpbtrom -vendorid 0x10EC -deviceid 0x8168 plpbtrom.bin nvmeua.rom

and integrate nvmeua.rom into Bios with MMTool (Replace Methode "Option Rom", here for 10EC 8168).

The second Option Rom is from the Samsung 950 Pro.
This I modd for the Samsung 960 Pro  etc. and integrate it also in the same Bios
with MMTool (insert Option Rom with 144D A804).

And voila: I can now boot legacy NVME XP SP3
via ntldr(?), via freeldr.sys and via winload.exe on the Asus P8H77-M board from any nvme device.
This methode should work on all (needs to be tested) motherboards.

It is stable. All works. StandBy works.

When I have time I write Tutorial. Now I am going to look at USB3 from ⇗ @infuscomus
So the Plop plpbtrom-0.6 for to build Option Rom is a very nice, good tool.
New nocumentation should be done for this Plop plpbtrom-0.6 from Elmar
Dietmar

EDIT: Plop can load freeldr.sys(!) and ntldr. Plop cant load MBR for winload.exe.
So in my eyes is winload.exe not a good choice for to run XP.

PS: The Option Rom from the Plextor M8Pe does also not work via this way with Plop and also not alone.
So I think, the Option Rom Bios of the Plextor M8Pe speaks in other(?) way to its nvme disk.

The Option Rom from Vmware see post also does not work.
⇗ [Experimental] NVMe Option ROM
Not alone and also not with Plop.
Plop bootmanager starts but does not show harddisk and also nvme cant be booted via "Lan" switch in Plop.
The legacy nvme disk is recogniced but not correct.

This is full readout Bios 1306 8MB from Asus P8H77-M board. It contains the full Samsung 950 Pro Option Rom.
It boots XP SP3 from Samsung 950 Pro, Samsung 960 Pro, Samsung 970 Pro and Toshiba RD 400
and Plextor M8Pe.
It contains also the Option Rom from Elmar for the Realtek PXE Lan boot on the P8H77-M.
https://ufile.io/gfnu4jn2

 

I make some more fun with the freeldr from Reactos with nice result for XP SP3 boot!
This Tutorial I tested on 2 different motherboards.

1.) First I take an old 80 Gbyte Sata harddisk and wipe all out with 00 with Winhex.
    This step is not necessary, but it gives clear start situation.
    
This HD is in an USB box, so that I can easy see, which is the wished 80 GB harddisk and that I do not destroy my other harddisks(!).

2.) Make a Fat32 partition with RMPrebUSB 2.1.739 with ntldr and force use LBA on this 80 Gbyte HD.

3.) With Rufus 2.18 portable (last version for XP)
    set mark for "Show USB" , Fat32, "Schnellformatierung", "Startffäges Laufwerk erstellen   Grub4Dos 0.4.6a" and hit Start.
    Message about grldr I ignore. And also message about "fehlgeschlagen".

4.) Copy grldr (extracted from RMPrebUSB 2.1.739) on the 80Gb HD.

5.) Make a *.txt file on the 80 Gb HD with content

title  ReactOS
root  (hd0,0)
kernel  /freeldr.sys

and rename it to menu.lst .

6.) Copy freeldr.sys and freeldr.ini from Reactos 0.4.13 on the 80GB HD.

7. With Editor open freeldr.ini and replace all  ReactOS => WINDOWS .
  
With only the 4 files grldr, menu.lst, freeldr.sys and freeldr.ini on harddisk, you can test already boot possibility for XP.
It works from harddisk, USB, nvme..

8.) With copy and paste copy there a (small, not necessary small) working XP SP3 installation.
   Not important, if this XP installation comes from ntfs or fat32, all work.
   ntldr, ntdetect.com and boot.ini dont copy. Also dont copy Recycler, System Volume Information, pagefile.

9.) Now fun starts: Connect this 80 GB HD to a compi.
   It gives ultrafast start of XP to Desktop via freeldr, faster than with ntldr.

10.) Tell me, if it works for you )

Dietmar

PS: I just test my own Tutorial for booting XP via freeldr step by step and it works .

EDIT: I just notice, that Rufus 2.18 can be kicked out of the Tutorial,
        because RMPrebUSB offers also the possibility to install grub4dos and also to install its own and wished grldr.

Here are the needed and already edited files for XP boot via freeldr
https://ufile.io/71t6nooh

 

I just succeed to switch for one and the same XP installation between boot with freeldr from Reactos or via ntldr.
For this I use menu.lst (thanks to jaclaz at reboot.pro) with content

title XP via ReactOS loader
root (hd0,0)
kernel /freeldr.sys

title XP via normal NTLDR
root (hd0,0)
chainloader /ntldr

This configuration can now boot any XP bootdevice. It can boot more(!) devices than ntldr alone.
This is the very first time, that Reactos puts XP a lot forward.
Some more tests with other boards I need, then I write new Tutorial
Dietmar

EDIT: With Reactos freeldr boot, the strange shutdown problem on some boards is gone.

Link to comment
Share on other sites

7 hours ago, Dietmar said:

It contains also the Option Rom from Elmar for the Realtek PXE Lan boot on the P8H77-M.
https://ufile.io/gfnu4jn2

Put files to another server (https://www.zippyshare.com , https://www.sendspace.com) because on ufile.io it shows me Premium Access Only.

I don't understand what PLOP is for legacy NVMe boot? I do not want to remove Realtek PXE from the bios. Isn't it better to insert it as PCI OptionRom with PCI DEV/VEN adapter NVMe PCIe or another PCI device?

Or maybe it can be inserted as ISA OptionRom? I used to do tests with BIOS AMI in MS VPC 2007 and I put PLOP in OptionRom for the PCI device Host Bridge: Intel Corporation 440BX/ZX/DX and works:

plpbtrom -compress -vendorid 0x8086 -deviceid 0x7192 plpbt.bin plop80867192.rom

I can also try to build an ISA or PCI OptionRom: Building a "Kernel" in PCI Expansion ROM

P.S. If I want to boot WinXP 64-bit in UEFI mode, it is enough to integrate in the BIOS NVME DXE Driver in this way? :

[HowTo] Get full NVMe support for all Systems with an AMI UEFI BIOS

Edited by reboot12
Link to comment
Share on other sites

But what do you need PLOP for? PLOP is used to boot with USB if the BIOS of the motherboard does not support booting with USB.

In order for the BIOS to start PCI OptionROM (VEN\DEV):

  • the device with the same VEN/DEV must be present in the system
  • 8-bit control sum must be 00
  • if BIOS supports ISA OptionROM, you don't need a PCI device > How add PLOP as ISA OptionROM

I noticed that the ROM from the Samsung 950 disk (image.zip) has 8-bit control sum 3F ???

8621971800_1665641999_thumb.jpg

Maybe the PLOP is unnecessary and will fix the check sum 3F to 00 to make the OptionROM work?

I do it this way with WinHex:

  • i open the OptionROM and modify the last byte FF by inserting 00 and save changes
  • i calculate the 8-bit control sum > menu Tools > Compute Hash... > Checksum (8 bit) - It come 40h
  • i calculate 100h - 40h = C0h
  • i put the calculated result C0 in the last byte OptionROM, save changes and I calculate the 8-bit checksum again

Now OptionROM has the correct control sum 00:

7897740100_1665643471_thumb.jpg

EDITED

==================

I analyzed the image.rom from image.zip file again. He contains two firmware - Legacy and UEFI (same as graphics cards have Legacy and UEFI firmware):

efirom -d image.rom
Image 1 -- Offset 0x0
  ROM header contents
    Signature              0xAA55
    PCIR offset            0x001C
    Signature               PCIR
    Vendor ID               0x144D
    Device ID               0xA802
    Length                  0x0018
    Revision                0x0002
    DeviceListOffset        0x00
    Class Code              0x020801
    Image size              0x4600
    Code revision:          0x0001
    MaxRuntimeImageLength   0x00
    ConfigUtilityCodeHeaderOffset 0x00
    DMTFCLPEntryPointOffset 0x3C80
    Indicator               0x00
    Code type               0x00
Image 2 -- Offset 0x4600
  ROM header contents
    Signature              0xAA55
    PCIR offset            0x001C
    Signature               PCIR
    Vendor ID               0x144D
    Device ID               0xA802
    Length                  0x0018
    Revision                0x0000
    DeviceListOffset        0x00
    Class Code              0x000002
    Image size              0x3800
    Code revision:          0x0000
    MaxRuntimeImageLength   0x00
    ConfigUtilityCodeHeaderOffset 0x3646
    DMTFCLPEntryPointOffset 0x00
    Indicator               0x80   (last image)
    Code type               0x03   (EFI image)
  EFI ROM header contents
    EFI Signature          0x0EF1
    Compression Type       0x0001 (compressed)
    Machine type           0x8664 (unknown)
    Subsystem              0x000B (EFI boot service driver)
    EFI image offset       0x0034 (@0x4634)

8-bit checksum Legacy part is OK 00

@Dietmar

When you put in the bios ASUS P8H77-M whole image.rom is e.g. Win10 also boot under UEFI from NVMe?

I am curious if booting with NVMe works under Legacy and UEFI, just insert image.rom in the CSMCORE UEFI module?

Or maybe you need to extract the Legacy part and UEFI part from the image.rom file and insert them separately in the bios:

Legacy part as OptionROM to CSMCORE

and

UEFI part as DXE Driver (after make dxe driver - PE32 image)?

uefiromextract image.rom ext.rom
Found compressed EFI ROM start at 0x4634
Input size: 14284, Output size: 23816, Scratch size: 13360

and use FFS tools: FFS tools and adding UEFI driver to bios

Edited by reboot12
Link to comment
Share on other sites

@reboot12

Can you please tell me, which CPU and which Bios version you use on your ASUS B85M-E board?

I will buy via Ebay and make a try for nvme boot, also UEFI XP, Win10, win7,

looking if this is possible to full ONLY with the extracted ROM from the 950 Pro

Dietmar

Link to comment
Share on other sites

@reboot12

Did you ever had success with using Quibble for to boot XP on Uefi?

From last discussion about Quibble, see @George King

it seems to be possible. There has been a special version for Quibble for to boot XP SP3 on UEFI, but this file is gone on zippyshare.

Then, nvme boot of XP via UEFI would be much more easy, just using the UEFI nvme DXE file.

And with Bios driver for ntfs, it may be work also on ntfs partition, as long as Quibble sits on Fat32

Dietmar

Link to comment
Share on other sites

4 hours ago, Dietmar said:

@reboot12

Did you ever had success with using Quibble for to boot XP on Uefi?

From last discussion about Quibble, see @George King

it seems to be possible. There has been a special version for Quibble for to boot XP SP3 on UEFI, but this file is gone on zippyshare.

Then, nvme boot of XP via UEFI would be much more easy, just using the UEFI nvme DXE file.

And with Bios driver for ntfs, it may be work also on ntfs partition, as long as Quibble sits on Fat32

Dietmar

 

I have already prepared this boot method for XP2ESD, but it's not fully impelemented in automated mode yet. 3rd NTFS driver for Quibble never allowed me to boot. So it's needed to convert partition to BTRFS. In XP2ESD are compiled needed tools by @CaptainKirk1966

Let me know if you want them. Otherwise I think they can be compiled in Visual Studio, when using XP targeting, but I never tried it.

Link to comment
Share on other sites

12 hours ago, Dietmar said:

@George King

Hi, of course I want them!

What I understand from the git page is,

that only the Quibble has to sit on an Fat32 partition.

So, for the UEFI Bios files and then OS may be possible to use also NTFS,

have a nice day

Dietmar

 

 

As you already have XP2ESD, you can grab them from there. XP2ESD\apps\ntfs2btrfs contains ntfs2btrfs-xp.exe. In architecture dependent folders are standalone files that works inside Windows 7 WinPE.

Quibble is in XP2ESD\apps\Quibble, it's same as can be found on GitHub. BTRFS driver that have no missing exports under XP is v1.7.7, can be downloaded from GitHub.

 

I have already requested from @CaptainKirk1966 new compilation of BTRFS driver and NTFS2BTRFS. Let's see if he can do that again. Otherwise it can be probably done in VisualStudio 2019 with XP targeting, but I have never tried it. 

With current Quibble + BTRFS driver v1.7.7 + ntfs2btrfs from XP2ESD it could be done probably. Of course newer files should be better.

Link to comment
Share on other sites

@reboot12

Temperature is always about 61 degrees Celsius.

For tests I run the nvme device without heatsink,

but when you integrate it into your compi, it would be much better to get them a little bit more cold

Dietmar

PS: Tell me, if you have success with the Option Rom from the 950 Pro.

Maybe Quibble is an alternative.

Trim does not work under XP until now. When you use your nvme device or SSD intensive,

transfer rates go down to 20 Mb/s, much less than any harddrive. I have an win8.1 installation on harddisk,

which I nearly use only for trim. Today I make test for boottime of XP: Without trim 27 seconds, after trim 7 sec.

 

Link to comment
Share on other sites

@George King

I succeed to make an harddisk with XP SP3 on BTRFS filesystem. This harddisk with its content I can see from outstanding XP SP3, with installed btrfs.sys driver via its *.inf and reboot.

I think, with freeldr.sys from reactos, XP SP3 will boot on BTRFS.

But nothing happened via Quibble and my try for UEFI boot of XP SP3.

I also make a try with to rename quibble.efi to bootia32.efi, then I see a single white point on screen,

on a pure Fat32 partition but nothing more

Dietmar

 

EDIT: I also try with Reactos after this instructions:

https://reactos.org/wiki/User:Illen/UEFI_Boot

UEFI boot does not work at all on real hardware using Quibble.

 

 

Edited by Dietmar
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...