First off all – A very big thank you @İsmailTPC_Hastanesi for your work and findings.
I wanted to write this “novel” for weeks now Also to show my respect to you as well.
I must admit that I did not used one of your BIOSs for my
GA-EX58-EXTREME. I like to mod things for myself understanding what and why things happened. But I want to share my experiences and findings during my tests here. And as I have some experiences in CBROM and HEX modding I took the change to build my own BIOS from scratch (again…) .
Nevertheless – The/Your Idea to use the original Samsung 950 Pro OPROM (or better to say – a part of it) was the key to a long-lasting question to get NVMe (without legacy OPROM) bootable without nasty (in my opinion) Clover/Duet-Refind solutions.
There are some older discussions on WIN-RAID forum which you may know already. They are providing exactly this OPROM you are using as base as well. But no one tried to add it as PCI ROM as you did. And one just tried to simply adjusts the VEN/DEV code in HEX of OPROM. There was a try but this was only for some old UEFI BIOSs.
This is exactly the same uncompressed OPROM (only Legacy BIOS) you are using for 144D_A802.BIN (file SM950Pro.rar -> 950Pro.bin)
https://winraid.level1techs.com/t/experimental-nvme-option-rom/32528/82
And this maybe was the original source were a guy extracted the full 950 pro OPROM from using a Linux system – This contains both (as far as I see): The Legacy Part and the UEFI driver. If we compare HEX code with 144D_A802.BIN or 950Pro.bin with the image.rom this is quite obvious (file image.zip -> image.rom)
https://winraid.level1techs.com/t/samsung-nvme-legacy-boot-rom-present-on-950-pro/32347/11
Some users already reported here in your thread a main key to understand or/and get your trick to work: It’s to disable (if needed) some integrated peripherals – Better to say their OPROMs/ROMs! It looks like that those old boards cannot load that much OPROMs at the same time. Maybe simply the limit of Chipsets or general board designs. Maybe also the OPROM load ordered has an influence here – But this was not further tested. In addition, the PCIe lanes and their sharing design has an influence here…
I noticed that during my test as well. I have my Win10 on a Samsung 950 Pro (with the famous bootable OPROM) and two OEM Samsungs in addition: SM951 (144D_A802) and SM961 (144D_A804) – both without OPROM. I addition 6 HDDs/SSDs mounted at ICH10R SATA in AHCI-Mode. The 2x JMicron JMB322 on my board sucks – I deactivated them long time ago. They gave me high DPC Latency spikes all the time. For additional drives I moved to a Marvell 88SE9230 chipset driven Digitus DS-30104-1 card years ago.
For all my test I removed at first every drive except of my 950 Pro and SM951 or SM961. Here both are recognized by BIOS – But adding again one HDD (AHCI) to one SATA ICH10R port the SM951 or SM961 disappears in BIOS. So I guess the added OPROMs cross path with the AHCI module – But only if more than one NVMe are in the system. Removing my 950 Pro (having only SM951 or SM961 build in) all 6 drives (AHCI) and one NVMe are possible again.
BUT: Using the IDE mode for the 6x SATA ICH10R ports makes it possible to run both! The 950 Pro and SM951 or SM961 – And all 6x SATA devices are shown as well (IDE).
All in all – Playing with AHCI and IDE and/or the deactivation of other OPROMs/ROMs (aka integrated peripherals) could do the trick! But be aware of switching from IDE to ACHI if your system was installed originally in IDE Mode – this can brick your Win installation – But this is another story…
Base BIOS was F13U – The last available on old German jzelectronic forum (not fully available anymore in the meantime):
- Serial ATA AHCI BIOS, Version iSrc 1.20E (the available 2.00h does NOT work)
- Intel(R) RAID for SATA - v11.6.0.1702
- JMicron PCI Express to SATAII HOST Controller ROM v1.08.01
- Realtek PCIe GBE Family Controller Series v2.66 PXE+RPL
- Q-Flash Utility v2.24
- New Logo for Main & Backup BIOS
- BIOS Version Mod from F13u to F13x
- BIOS Date Mod to 11/11/2022
- MICROCODE re-edit/correction to latest available
- NVMe ROMs for Samsung 144D_A802, A804, A808, A809, A822
- SLIC 2.1 mod GIGABYTE via SSV3 + ACPITBL at End
To All – To mod your BIOS for yourself should only be done if you really know what you are doing. And maybe only if your board has a dual BIOS for fail save booting if main BIOS was messed up. Or you are able to program/flash your bios chip externally.
Some pictures for your pleasure – I tried to add them in a more or less logical order.