Hi!
Custom motherboard on Intel Atom C3338 with PCIe (x4) M.2 slot does not see NVME disks at SeaBIOS boot menu.
(SeaBIOS (version rel-1.13.0-1-g3ab38b1))
Does not load the operating system from these drives. If you boot from another media, then the NVME disk is seen in the system and works fine.
In the logs there is a warning at "void *pci_enable_membar" function in the "coreboot/payloads/external/SeaBIOS/seabios/src/hw/pcidevice.c" file line 186.
Warning message: WARNING - internal error detected at pci_enable_membar:186!
// Verify a memory bar and return it to the caller
void *
pci_enable_membar(struct pci_device *pci, u32 addr)
{
wait_preempt();
u32 bar = pci_config_readl(pci->bdf, addr);
if (bar & PCI_BASE_ADDRESS_SPACE_IO) {
warn_internalerror();
return NULL;
}
if (bar & PCI_BASE_ADDRESS_MEM_TYPE_64) {
u32 high = pci_config_readl(pci->bdf, addr+4);
if (high) {
dprintf(1, "Can not map memory bar over 4Gig\n");
return NULL;
}
}
bar &= PCI_BASE_ADDRESS_MEM_MASK;
if (bar + 4*1024*1024 < 20*1024*1024) {
// Bar doesn't look valid (it is in last 4M or first 16M)
warn_internalerror(); =========================================>WARNING!
return NULL;
}
pci_config_maskw(pci->bdf, PCI_COMMAND, 0, PCI_COMMAND_MEMORY);
pci->have_driver = 1;
return (void*)bar;
}
Some values: for Samsung NVME disk 0x144d:0xa804; bdf: 0x200
bar: 0x4 at (u32 bar = pci_config_readl(pci->bdf, addr))
bar: 0x0 at (bar &= PCI_BASE_ADDRESS_MEM_MASK)
have_driver = 0.
If you boot from another media, then the NVME disk is seen in the system and works fine.
lspci:
02:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM961/PM961
fdisk:
Disk /dev/nvme0n1: 232,9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x5107186e
Device Boot Start End Sectors Size Id Type
/dev/nvme0n1p1 * 2048 1126399 1124352 549M 7 HPFS/NTFS/exFAT
/dev/nvme0n1p2 1126400 488394751 487268352 232,4G 7 HPFS/NTFS/exFAT
Tried with different NVME drives with different controllers.
What could be the reason? Driver needed?
Best regards, Dmitry Ponamorev