From ca0c9279ab2471bd8bf67681fb57fe33adbccb27 Mon Sep 17 00:00:00 2001 From: Bernardo Meurer Date: Mon, 25 Apr 2022 22:40:50 -0700 Subject: [PATCH] ubootRaspberryCM4_64bit: enable USB and NVME --- pkgs/misc/uboot/default.nix | 13 ++++++ .../0003-rpi-add-NVMe-to-boot-order.patch | 44 +++++++++++++++++++ ...ke-driver-compatible-with-downstream.patch | 33 ++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 pkgs/misc/uboot/rpi-cm4/0003-rpi-add-NVMe-to-boot-order.patch create mode 100644 pkgs/misc/uboot/rpi-cm4/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix index 5e0a451f89e..70fb54d4078 100644 --- a/pkgs/misc/uboot/default.nix +++ b/pkgs/misc/uboot/default.nix @@ -419,8 +419,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 00000000000..f5e9462e89b --- /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: +In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch> +References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch> +From: Stefan Agner +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 +--- + 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 00000000000..bf2d8475dc0 --- /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: +In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch> +References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch> +From: Stefan Agner +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 +--- + 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 +