Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NVME support for RPi Compute Board 4 #120

Open
CreeperKong opened this issue Dec 24, 2020 · 7 comments
Open

NVME support for RPi Compute Board 4 #120

CreeperKong opened this issue Dec 24, 2020 · 7 comments
Labels
fix-pending linux-enablement Upstream work to support Pi in ACPI mode pcie

Comments

@CreeperKong
Copy link

The CM4 provides a PCI Express x1 Slot extension on the IO Board.
Is it possible to give support for NVME on the platform?

@jlinton
Copy link
Member

jlinton commented Jan 4, 2021

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.

@rtreffer
Copy link

ACPI+devicetree works if the following patch is applied: rtreffer/edk2-platforms@126fdc0

@jlinton would you consider the missing ACPI only support a blocker against enabling this upstream?

@samerhaj samerhaj added the pcie label Jul 17, 2021
@jlinton
Copy link
Member

jlinton commented Aug 26, 2021

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

@samerhaj samerhaj added fix-pending linux-enablement Upstream work to support Pi in ACPI mode labels Aug 26, 2021
@jlinton
Copy link
Member

jlinton commented Sep 1, 2021

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.

@ElvishJerricco
Copy link

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.

@xvzf
Copy link

xvzf commented Dec 23, 2023

Hey folks

Any update on this?

@DanBiscotti
Copy link

Hey guys, also wondering if anything has changed regarding this? Have the patches been merged yet? I was trying to see how I can apply the patches myself but not really sure how

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix-pending linux-enablement Upstream work to support Pi in ACPI mode pcie
Projects
None yet
Development

No branches or pull requests

7 participants