summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernardo Meurer <bernardo@meurer.org>2022-04-25 22:40:50 -0700
committerBernardo Meurer <bernardo@meurer.org>2022-04-25 22:41:05 -0700
commitefd37bed5b62162ec3377927a719ea5da073d205 (patch)
tree6a54b74769e9d8a52989972c3da81190150ee97f
parentubootRaspberryCM4_64bit: init (diff)
downloadnixpkgs-origin/rpi-cm4-support.tar.gz
ubootRaspberryCM4_64bit: enable USB and NVMEorigin/rpi-cm4-support
-rw-r--r--pkgs/misc/uboot/default.nix13
-rw-r--r--pkgs/misc/uboot/rpi-cm4/0003-rpi-add-NVMe-to-boot-order.patch44
-rw-r--r--pkgs/misc/uboot/rpi-cm4/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch33
3 files changed, 90 insertions, 0 deletions
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index 067d9bbbb5b1..0b7013f99dba 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -442,8 +442,21 @@ in {
extraMeta.platforms = ["aarch64-linux"];
filesToInstall = ["u-boot.bin"];
extraConfig = ''
+ CONFIG_CMD_NVME=y
+ CONFIG_NVME=y
+ CONFIG_NVME_PCI=y
+ CONFIG_USB_STORAGE=y
+ CONFIG_USB_FUNCTION_MASS_STORAGE=y
+ CONFIG_USB_EHCI_HCD=y
+ CONFIG_USB_EHCI_GENERIC=y
+ CONFIG_USB_OHCI_HCD=y
+
CONFIG_USB_XHCI_BRCM=y
'';
+ extraPatches = [
+ ./rpi-cm4/0003-rpi-add-NVMe-to-boot-order.patch
+ ./rpi-cm4/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch
+ ];
};
ubootRaspberryPiZero = buildUBoot {
diff --git a/pkgs/misc/uboot/rpi-cm4/0003-rpi-add-NVMe-to-boot-order.patch b/pkgs/misc/uboot/rpi-cm4/0003-rpi-add-NVMe-to-boot-order.patch
new file mode 100644
index 000000000000..f5e9462e89b5
--- /dev/null
+++ b/pkgs/misc/uboot/rpi-cm4/0003-rpi-add-NVMe-to-boot-order.patch
@@ -0,0 +1,44 @@
+From ae45864457182fcaa67911e1e3d8db242dff3646 Mon Sep 17 00:00:00 2001
+Message-Id: <ae45864457182fcaa67911e1e3d8db242dff3646.1645627172.git.stefan@agner.ch>
+In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
+References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
+From: Stefan Agner <stefan@agner.ch>
+Date: Tue, 29 Dec 2020 23:34:52 +0100
+Subject: [PATCH 3/5] rpi: add NVMe to boot order
+
+The Compute Module 4 I/O Board can support a NVMe. Add NVMe to the boot
+order.
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+---
+ include/configs/rpi.h | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/include/configs/rpi.h b/include/configs/rpi.h
+index 4c5c1ac31f..e24c94c7d2 100644
+--- a/include/configs/rpi.h
++++ b/include/configs/rpi.h
+@@ -143,6 +143,12 @@
+ #define BOOT_TARGET_MMC(func)
+ #endif
+
++#if CONFIG_IS_ENABLED(CMD_NVME)
++ #define BOOT_TARGET_NVME(func) func(NVME, nvme, 0)
++#else
++ #define BOOT_TARGET_NVME(func)
++#endif
++
+ #if CONFIG_IS_ENABLED(CMD_USB)
+ #define BOOT_TARGET_USB(func) func(USB, usb, 0)
+ #else
+@@ -163,6 +169,7 @@
+
+ #define BOOT_TARGET_DEVICES(func) \
+ BOOT_TARGET_MMC(func) \
++ BOOT_TARGET_NVME(func) \
+ BOOT_TARGET_USB(func) \
+ BOOT_TARGET_PXE(func) \
+ BOOT_TARGET_DHCP(func)
+--
+2.35.1
+
diff --git a/pkgs/misc/uboot/rpi-cm4/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch b/pkgs/misc/uboot/rpi-cm4/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch
new file mode 100644
index 000000000000..bf2d8475dc01
--- /dev/null
+++ b/pkgs/misc/uboot/rpi-cm4/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch
@@ -0,0 +1,33 @@
+From b00922ee48987ef91f0ca2aa3a66ad22c6c83d57 Mon Sep 17 00:00:00 2001
+Message-Id: <b00922ee48987ef91f0ca2aa3a66ad22c6c83d57.1645627172.git.stefan@agner.ch>
+In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
+References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch>
+From: Stefan Agner <stefan@agner.ch>
+Date: Thu, 7 Oct 2021 12:02:39 +0200
+Subject: [PATCH 5/5] usb: xhci-brcm: Make driver compatible with downstream
+ device tree
+
+The downstream device tree uses just "generic-xhci" as compatible
+string. Use this string to make U-Boot work with the downstream Kernel.
+
+Signed-off-by: Stefan Agner <stefan@agner.ch>
+---
+ drivers/usb/host/xhci-brcm.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c
+index fe17924028..0c6938187b 100644
+--- a/drivers/usb/host/xhci-brcm.c
++++ b/drivers/usb/host/xhci-brcm.c
+@@ -82,7 +82,7 @@ static int xhci_brcm_deregister(struct udevice *dev)
+ }
+
+ static const struct udevice_id xhci_brcm_ids[] = {
+- { .compatible = "brcm,generic-xhci" },
++ { .compatible = "generic-xhci" },
+ { }
+ };
+
+--
+2.35.1
+