CloverHackyColor / CloverBootloader

Bootloader for macOS, Windows and Linux in UEFI and in legacy mode
BSD 2-Clause "Simplified" License
4.51k stars 619 forks source link

Compatibiliy issue with nvme and p35 chipset #703

Open ovlx opened 3 months ago

ovlx commented 3 months ago

Self explanatory, The drive (kingston nv2 500gb ssd) is accessible by os, the pcie device can be seen with the efishell pci command , and is labeled as a "Mass Storage Controller - Non-volatile memory subsystem". but does not appear as a blk device or file system The nvme driver is loaded successfully, but no volume is detected according to the debug log The device is never accessed by clover, I can confirm this because adapter I have has an access light, the device is treated like a non-storage device.

this is occurring on a p35 lga775 board , tested with a netburst cpu (no ssse3) and a 45nm quad (with sse4.1) , and on 2 different p35 motherboards, and the result is the same,

using the same clover usb and nvme drive on a modern am4 motherboard, the drive is bootable in both bios(csm) and uefi mode.

I'm using the latest build of clover 5159, I did try an older build 5142 and had the same problem.

I can only speculate, but i'm assuming the issue is with the nvme driver? maybe it doesn't like pcie 1.0, I don't have a newer gen2 capable motherboard unfortunately, so i can't test that. 2024-06-30_18-54_CLOVERX64.EFI.log

If anybody could give me some pointers about where to look/what to do next I'd be happy to fix it myself

p5-vbnekit commented 2 weeks ago

It works for me!!!

Problem: Same

NVME device works in OS (Windows, Linux) but invisible in legacy BIOS (dmidecode, etc). Device is visible in Clover as pci non-volatile mass storage device (via pci command in efi shell), driver loaded but not assigned to this device.

Colver Release: 5160.
CPU: Intel Core 2 Quad Q9650.
Motherboard: ASUS P5Q Premium.
Storage device: Samsung NVMe M.2 SSD 980 PRO 1TB, installed via `PCIE` adapter.
Legacy clover boot entry point program: `boot7`.

Steps to avoid

  1. Select EFI Shell in Clover menu.
  2. In efi shell you can find loaded driver nvmexpressdxe.efi via command drivers but no one device attached (type connect without arguments to check it).
  3. Type command reconnect -r and you will see new attachment (nvme driver for nvme device, i hope).
  4. Type command map -r and your nvme partitions should be mapped.
  5. Next type map without arguments and you will see your nvme blkX: partitions (fs0: with nvme efi fat32 gpt partition in my case).
  6. Next you can chainload some next efi bootloader: fs0:\EFI\Boot\bootx64.efi for example - default removable windows 11 bootloader in my case.

I guess if it can be done manually this way, it should work automatically too. I hope this will help developers find and fix bugs. As temporary workaround i will try to create startup.nsh file to run my target os bootloader.


PCIE adapter: DEXP APCIEM2

PCIE adapter DEXP APCIEM2