RPi4
RPi4 copied to clipboard
NVME support for RPi Compute Board 4
The CM4 provides a PCI Express x1 Slot extension on the IO Board. Is it possible to give support for NVME on the platform?
Yes, we are working in that direction. There are two parts, first the firmware needs an update to deal with the mapping changes the rpi foundation made to the pcie mapping between the original rpi4 and the CM4. At that point we could add the NVMe driver to the firmware, but the OS's will also need to directly support PCIe rather than the XHCI platform device we have in place for compatibility purposes. That is also progressing in the form of a generic ACPI/PCIe SMC conduit standard.
So I would expect that is possible in the near future.
ACPI+devicetree works if the following patch is applied: https://github.com/rtreffer/edk2-platforms/commit/126fdc009f215b3491760011ac08f8515e2b6bfd
@jlinton would you consider the missing ACPI only support a blocker against enabling this upstream?
The edk2 code was merged last week, so edk2 can boot from NVMe on this device. The kernel patches https://lkml.org/lkml/2021/8/26/73
The kernel patches look good (their Acks), I would hope they land in 5.16 at this point, which itself will be a couple of months out. This gives me time if they get merged to -next/etc in the near future, to fix the fact that I changed the _DSD that is now in the .30 firmware just built.
For now I would suggest use the .30 release, and merge the linked above patches with the third patch's line
if (strlen(soc) != ACPI_OEM_ID_SIZE)
changed to:
if (strlen(soc) < ACPI_OEM_ID_SIZE)
and "bc2711" changed to "bcm271" in the table.
I would hope they land in 5.16 at this point
If that's the case, will it still need these changes?
if (strlen(soc) != ACPI_OEM_ID_SIZE)
changed to:
if (strlen(soc) < ACPI_OEM_ID_SIZE)
and "bc2711" changed to "bcm271" in the table.
Hey folks
Any update on this?