[Guide] NVMe-boot for systems with legacy BIOS and UEFI board (DUET-REFIND)

@mujuli

The update log on the uPD720200 seems OK.

About the long loading time, it might be something easily fixed but unfortunately I have no clue to what look for.
Both newer DUET version implement some improvement.
The boot time might also be affected, try it out and let me know by keeping your working version on a separate USB or something.
Thanks for the feedback!

@vasyosuol_24

If the board is UEFI compatible use the REFIND option.

Booting the NVME drive from UEFI capable board - REFIND mass-storage without DUET - with USBSetup:


1) Connect a USB flash drive and start the USBSetup application

2) Select the USB flash drive letter from the drop-down combo box

    Warning.
    The following step will completely remove all information and partitions on the selected USB flash drive

3) Remove all information and partitions from the drive by clicking on: CLEAN

4) format the selected drive by clicking on: FORMAT

5) Copy the graphical boot manager REFIND by clicking on: REFIND

6) Connect the USB on the target system and set Boot from USB as the first option in your system BIOS Boot order





To use DUET the board must be set with the LEGACY boot option.

Booting the NVME drive from non-UEFI legacy board - DUET with optional REFIND - with USBSetup:


1) Connect a USB flash drive and start the USBSetup application

2) Select the USB flash drive letter from the drop-down combo box

    Warning.
    The following step will completely remove all information and partitions on the selected USB flash drive

3) Remove all information and partitions from the drive by clicking on: CLEAN

4) Format the selected drive by clicking on: FORMAT

5) Make the selected drive bootable by clicking on: BOOT

6) Copy the required DUET files by clicking on: DUET

7) Copy the optional graphical boot manager REFIND by clicking on: REFIND

8) Connect the USB on the target system and set Boot from USB as the first option in your system BIOS Boot order

@noInk

the load time issue is fixed now
i edit my last post until you anwsered.
I forgot to remove the old usb stick …

Thanks again, now is everything perfect.

Just one last question.
Why had the disabled USB 3.0 controller in BIOS no effect on the load time ?
If i disable the device in the main bios, Duet can`t enable the device again.
Under this condition it should have no effect, but it has ?

I am confused, now.

@mujuli

Any changes made in the BIOS will be also reflected on the way DUET see the available hardware.
Probably now that you updated the uPD720200 firmware the PHY device is working correctly.

noInk


Not my choice. My motherboard (one of), for example: https://www.gigabyte.com/Motherboard/GA-…3H-B3-rev-10#ov
Explicitly not UEFI compatible, no questions asked. And others (MB), too.
Therefore, I used the 2nd option:


This had no effect, wrote about it in the first posts

@vasyosuol_24

I see 2 type of BIOS for the board you linked

U1D (UEFI BIOS)

F13 LEGACY BIOS

GIGABYTE (PHOENIX|AWARD) customization on legacy may be incompatible with EFI.
You need to find what need to be disabled or removed.
You can also opt to add the NVME DXE to the GIGABYTE EFI BIOS.

@noink

that makes sense.
Hm i have bad news.

I did two reboots with around 15 sec loadtime (red text to OS logo)

Then i made the post and now i made a reboot same problem again.
With the same usb, with the -1 setting.
just a reboot.
The time is now arround 55 Sec from red text to OS logo.

I checked the firmware again its still the same.
I tried the EDK 2020
I tried the UDK2015 (dont know exactly what’s different there )

But i checked the Windows systeminformation site and there is the SMBIOS Version listed

EDK 2020 is 2.5
UDK 2015 is 2.5
EDK 2015 is 2.5
only the version form march 2020 EDK2015 is 3.0 ? Do you know why ?

Does it make sense ?

@mujuli

SMBIOS has been recently reverted to that version for enabling older hardware the reporting of smaller table.
You can check your default SMBIOS version by booting the system without DUET.

About the boot time…
It could be normal for your board. Many factor are at play.

What happen by booting the board if you:
power down from the OS?
remove the power outlet\cord from the board after a power down from the OS?
reboot from the OS?

Does the board offer to ENABLE or DISABLE S4/S5?
might be shown as ErP|EuP ready or something, try to ENABLE that.

noInk
I have a F13 LEGACY BIOS, without UEFI
Mea Culpa - I did not see the appearance of a new BIOS with UEFI, and frankly, there is no desire to switch to UEFI. Just like communicating with UEFI in general. I would also not like to modify the BIOS by adding NVME DXE, since the BIOS is already modified by adding a SLIC-marker. In general, I see the most acceptable use of an external bootloader: Clover, Duet-Refind, perhaps Grub?
By the way, this is not the only motherboard on which Duet-Refind cannot be run, for example, there is one such:
GA-H67MA-USB3-B3, BIOS - F8
Symptoms of behavior are exactly the same - after the initial start, the process freezes.
There is another option: GA-EP45C-DS3, BIOS - F5
Symptoms of behavior - similarly.
Clover, by the way it was possible to start. And even install Windows 10 on the NVME drive from under it. But - only in UEFI mode, which is not very good for me. Well, there are a number of reasons why using Clover is at least difficult.

@vasyosuol_24

This DUET version enable a bare UEFI environment on some board with Intel X64 specification ( proper function must already exist on the hardware/chipset/ACPI table).
Unfortunately I cannot replicate the error “BStandart!”: the error doesn’t exist on the build in the first page.
The error anyway indicate a MBR boot failure.


It turns out that the old Gigabyte motherboards (without UEFI) do not have a certain function in the BIOS table of the chipset / ACPI, right?
How would I more accurately determine this?
Build from the first page, is it EDK2015? For me, she behaves in exactly the same way as others.
A colleague who advised contacting this forum wrote that after “BStandart!” memory testing should be done, is that so? I myself inscription "BStandart!" with difficulty recorded: everything happens very quickly, and there remains only a flashing red cursor; the computer does not respond to the keyboard buttons …

@vasyosuol_24

Download and unpack within the DUET_EDK2015_REFIND directory this archive.
Attach the USB you made for DUET.
Open an Admin command prompt and move to the DUET_EDK2015_REFIND directory and type or copy in the CMD the following command:

1
2
3
 

ReadBoot Drive_Letter: SECTOR
 
 


Locate the new DBR and MBR files and attach\post or PM the files.

@noink

to figure out the orignal SMBIOS i have to install a new Windows 10 because i delet the old running version a month ago.
So actually i have no chance to boot a normal OS, because the running system is on the M2 NVME.
At the weekend i can try it.

i tried all three variants:
reboot from the OS → no effect
cold start up (removed powerconnection) → no effect
shutdown and startup → no effect
i tried the reset too → no effect

:frowning:

The mainboard has too much settings
But i found an option with S4/S5 → i will try enable and disable

But one more thing i have an external SATA 6 Chipset because the X58 has no internal SATA 6 support so they added it via PCIe.

@mujuli

Knowing the SMBIOS base bios board version for me would be an unrequired info.
If you can replicate the 15sec boot time and the 55sec by changing some BIOS setting then let me know how you did.

noInk
I understand you correctly: do you suggest that you boot from USB-flash DUET_EDK2015_REFIND and execute the ReadBoot.bat file in that environment, which should save the DBR and MBR files?
If this is the case, then I am afraid that in my case this is an impossible task: the whole problem lies in the fact that when loading from USB-flash DUET_EDK2015_REFIND the process freezes. Accordingly, the execution of commands is out of the question - the only command is Reset

noInk
I launched under Windows 2008 R2, "ReadBoot.bat F: SECTOR", where - F: my flash drive with DUET (EDK2015).
The DBR.bin file (512 bytes) was created, and the MBR.bin file was of zero length.

@vasyosuol_24

Until the MBR is empty and the DBR malformed DUET won’t boot from that USB.
The application could also became incompatible or I could have made\uploaded a wrong archive.
Anyway attach the DBR chance are that right now the GenBootSector is failing to read the MBR duo the many changes Microsoft and Intel silently introduced in these past year, in both software and hardware.

noInk
I tried to start the process (ReadBoot.bat) in Windows 10 (LTSC 2019, Microsoft Windows [Version 10.0.17763.107]) - everything is the same, MBR.bin is empty. The CRC (MD5) files of DBR.bin are the same in both cases, 2008R2 & LTSC 2019.
https://www.upload.ee/files/11900543/MBR_DBR.rar.html
I tried to recreate the boot flash in Windows 10 - everything is the same as in Windows 2008R2.
What else can you try?

@vasyosuol_24

You need to use some hexadecimal utility to check the RAW data on the USB DISK and READ the MBR out, should be another 512 byte on start of the physical disk.
The DBR seems fine so, the MBR is probably right too.

noInk
Suppose incorrect / damaged boot flash drive? How can this be? They, flash drives are different, I used several different USB-flash drives. The OSs under which USB-flash drives were created are also different. And the computers themselves are different, damage to the USB-flash drive is eliminated. I see the problem so far for some reason that the bootable USB-flash DUET-REFIND on my hardware is not created correctly, but how will the RAW data check on the USB drive help me in this case? And what utility (example) can we talk about?
It seems that one could try a different way of generating DUET-REFIND USB-flash, for example, a backup of a known-working USB-flash (DUET-REFIND) by third-party programs. Say symantec ghost or any similar.
Is it possible to use a completely different bootable medium, such as a CD / DVD?