From b0bbe70315ee6474637b6c4242c41909c9ec2db8 Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Thu, 24 Feb 2022 13:22:21 +0100 Subject: [PATCH] Bump U-Boot to 2022.01 (#1761) --- ...01-SPL-modify-load-address-of-U-Boot.patch | 14 +- ...mic-enable-LDO2-vcc33_mipi-at-bootup.patch | 10 +- ...001-HACK-mmc-meson-gx-limit-to-24MHz.patch | 6 +- ...FIG_OF_BOARD-instead-of-CONFIG_EMBED.patch | 28 +- ...usb-xhci-reset-endpoint-on-USB-stall.patch | 12 +- .../0003-rpi-add-NVMe-to-boot-order.patch | 18 +- ...ect-the-prps-per-page-calculation-me.patch | 14 +- ...prove-readability-of-nvme_setup_prps.patch | 51 ---- ...e-driver-compatible-with-downstream.patch} | 12 +- ...se-pointer-for-CPU-addressed-buffers.patch | 263 ------------------ ...irtual-addresses-into-the-bus-s-addr.patch | 201 ------------- ...date-correct-memory-range-after-read.patch | 57 ---- ...-Include-header-file-needed-for-dev_.patch | 32 --- ...clude-header-file-needed-for-dev_err.patch | 32 --- .../configs/khadas_vim3_defconfig | 2 +- .../configs/odroid_c2_defconfig | 2 +- .../configs/odroid_c4_defconfig | 2 +- .../configs/odroid_n2_defconfig | 2 +- .../configs/odroid_xu4_defconfig | 2 +- buildroot-external/configs/rpi2_defconfig | 2 +- buildroot-external/configs/rpi3_64_defconfig | 2 +- buildroot-external/configs/rpi3_defconfig | 2 +- buildroot-external/configs/rpi4_64_defconfig | 2 +- buildroot-external/configs/rpi4_defconfig | 2 +- buildroot-external/configs/tinker_defconfig | 2 +- buildroot-external/configs/yellow_defconfig | 2 +- ...01-CMD-read-string-from-fileinto-env.patch | 14 +- 27 files changed, 76 insertions(+), 712 deletions(-) delete mode 100644 buildroot-external/board/raspberrypi/patches/uboot/0005-nvme-improve-readability-of-nvme_setup_prps.patch rename buildroot-external/board/raspberrypi/patches/uboot/{0010-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch => 0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch} (69%) delete mode 100644 buildroot-external/board/raspberrypi/patches/uboot/0006-nvme-Use-pointer-for-CPU-addressed-buffers.patch delete mode 100644 buildroot-external/board/raspberrypi/patches/uboot/0007-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch delete mode 100644 buildroot-external/board/raspberrypi/patches/uboot/0008-nvme-invalidate-correct-memory-range-after-read.patch delete mode 100644 buildroot-external/board/raspberrypi/patches/uboot/0009-drivers-usb-host-Include-header-file-needed-for-dev_.patch delete mode 100644 buildroot-external/board/raspberrypi/patches/uboot/0009-usb-xhci-brcm-Include-header-file-needed-for-dev_err.patch diff --git a/buildroot-external/board/asus/tinker/patches/uboot/0001-SPL-modify-load-address-of-U-Boot.patch b/buildroot-external/board/asus/tinker/patches/uboot/0001-SPL-modify-load-address-of-U-Boot.patch index 51e6de45f..e4ac08701 100644 --- a/buildroot-external/board/asus/tinker/patches/uboot/0001-SPL-modify-load-address-of-U-Boot.patch +++ b/buildroot-external/board/asus/tinker/patches/uboot/0001-SPL-modify-load-address-of-U-Boot.patch @@ -1,5 +1,5 @@ -From e18419a214ba872d14462354886148f976312e3c Mon Sep 17 00:00:00 2001 -Message-Id: +From 966cd1782632bc8279667955ec315e93c89495e6 Mon Sep 17 00:00:00 2001 +Message-Id: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch> From: Pascal Vizeli Date: Fri, 24 Apr 2020 12:41:50 +0000 Subject: [PATCH 1/2] SPL: modify load address of U-Boot @@ -15,23 +15,23 @@ Signed-off-by: Stefan Agner 2 files changed, 2 insertions(+) diff --git a/configs/tinker-rk3288_defconfig b/configs/tinker-rk3288_defconfig -index 3ac314ab89..67ca98c383 100644 +index a9c9a122f6..b839fdb570 100644 --- a/configs/tinker-rk3288_defconfig +++ b/configs/tinker-rk3288_defconfig -@@ -88,3 +88,4 @@ CONFIG_VIDEO_ROCKCHIP=y +@@ -92,3 +92,4 @@ CONFIG_VIDEO_ROCKCHIP=y CONFIG_DISPLAY_ROCKCHIP_HDMI=y CONFIG_CMD_DHRYSTONE=y CONFIG_ERRNO_STR=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000 diff --git a/configs/tinker-s-rk3288_defconfig b/configs/tinker-s-rk3288_defconfig -index 35e84b7088..93cfe4f094 100644 +index f367c9370f..c52b0753ec 100644 --- a/configs/tinker-s-rk3288_defconfig +++ b/configs/tinker-s-rk3288_defconfig -@@ -90,3 +90,4 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y +@@ -94,3 +94,4 @@ CONFIG_DISPLAY_ROCKCHIP_HDMI=y CONFIG_CONSOLE_SCROLL_LINES=10 CONFIG_CMD_DHRYSTONE=y CONFIG_ERRNO_STR=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x2000 -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/asus/tinker/patches/uboot/0002-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch b/buildroot-external/board/asus/tinker/patches/uboot/0002-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch index eaf270df0..15afd5148 100644 --- a/buildroot-external/board/asus/tinker/patches/uboot/0002-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch +++ b/buildroot-external/board/asus/tinker/patches/uboot/0002-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch @@ -1,7 +1,7 @@ -From 4c09e7741c219ef28be912e97a986b6402290c9b Mon Sep 17 00:00:00 2001 -Message-Id: <4c09e7741c219ef28be912e97a986b6402290c9b.1632758899.git.stefan@agner.ch> -In-Reply-To: -References: +From 98674c65a6595e7ac554f7ec9d6f0228556756f6 Mon Sep 17 00:00:00 2001 +Message-Id: <98674c65a6595e7ac554f7ec9d6f0228556756f6.1645627366.git.stefan@agner.ch> +In-Reply-To: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch> +References: <966cd1782632bc8279667955ec315e93c89495e6.1645627366.git.stefan@agner.ch> From: Pascal Vizeli Date: Fri, 24 Apr 2020 11:37:55 +0000 Subject: [PATCH 2/2] pmic: enable LDO2 vcc33_mipi at bootup @@ -64,5 +64,5 @@ index f85209c649..6fa1bb0c66 100644 +} +#endif -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/hardkernel/patches/uboot/0001-HACK-mmc-meson-gx-limit-to-24MHz.patch b/buildroot-external/board/hardkernel/patches/uboot/0001-HACK-mmc-meson-gx-limit-to-24MHz.patch index a0bdf25a1..97fb51736 100644 --- a/buildroot-external/board/hardkernel/patches/uboot/0001-HACK-mmc-meson-gx-limit-to-24MHz.patch +++ b/buildroot-external/board/hardkernel/patches/uboot/0001-HACK-mmc-meson-gx-limit-to-24MHz.patch @@ -1,5 +1,5 @@ -From ff82d04354784cd982ab1a912c08d3eb22f82d13 Mon Sep 17 00:00:00 2001 -Message-Id: +From 5d2feca5947f84259bae41730ce54231578b37be Mon Sep 17 00:00:00 2001 +Message-Id: <5d2feca5947f84259bae41730ce54231578b37be.1645627508.git.stefan@agner.ch> From: Neil Armstrong Date: Mon, 2 Sep 2019 15:42:04 +0200 Subject: [PATCH] HACK: mmc: meson-gx: limit to 24MHz @@ -23,5 +23,5 @@ index fcf4f03d1e..6ded4b619b 100644 cfg->name = dev->name; -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0001-rpi-Use-CONFIG_OF_BOARD-instead-of-CONFIG_EMBED.patch b/buildroot-external/board/raspberrypi/patches/uboot/0001-rpi-Use-CONFIG_OF_BOARD-instead-of-CONFIG_EMBED.patch index 47900c816..981f7a0fb 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/0001-rpi-Use-CONFIG_OF_BOARD-instead-of-CONFIG_EMBED.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0001-rpi-Use-CONFIG_OF_BOARD-instead-of-CONFIG_EMBED.patch @@ -1,8 +1,8 @@ -From d7ec084799b394cc02395829dc97019c8834e944 Mon Sep 17 00:00:00 2001 -Message-Id: +From 24b77460dbfa2497ceb7a1611bf28b6eb88a1d74 Mon Sep 17 00:00:00 2001 +Message-Id: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch> From: Pascal Vizeli Date: Tue, 10 Dec 2019 09:48:46 +0000 -Subject: [PATCH 01/10] rpi: Use CONFIG_OF_BOARD instead of CONFIG_EMBED +Subject: [PATCH 1/5] rpi: Use CONFIG_OF_BOARD instead of CONFIG_EMBED Signed-off-by: Pascal Vizeli --- @@ -14,10 +14,10 @@ Signed-off-by: Pascal Vizeli 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig -index d17e102052..e5cd7d4913 100644 +index 6d76d12910..ebc2be002f 100644 --- a/configs/rpi_0_w_defconfig +++ b/configs/rpi_0_w_defconfig -@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y +@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_MMC=y CONFIG_CMD_USB=y CONFIG_CMD_FS_UUID=y @@ -27,10 +27,10 @@ index d17e102052..e5cd7d4913 100644 CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig -index 8b8affb777..8bda6e6aa9 100644 +index 1931607132..164562cd57 100644 --- a/configs/rpi_2_defconfig +++ b/configs/rpi_2_defconfig -@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y +@@ -19,7 +19,7 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_MMC=y CONFIG_CMD_USB=y CONFIG_CMD_FS_UUID=y @@ -40,10 +40,10 @@ index 8b8affb777..8bda6e6aa9 100644 CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y diff --git a/configs/rpi_3_32b_defconfig b/configs/rpi_3_32b_defconfig -index b867b7fa7b..370495c9e4 100644 +index 060fd36da5..78448bbbfe 100644 --- a/configs/rpi_3_32b_defconfig +++ b/configs/rpi_3_32b_defconfig -@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y +@@ -20,7 +20,7 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_MMC=y CONFIG_CMD_USB=y CONFIG_CMD_FS_UUID=y @@ -53,10 +53,10 @@ index b867b7fa7b..370495c9e4 100644 CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y diff --git a/configs/rpi_3_defconfig b/configs/rpi_3_defconfig -index 3cebd657da..bb0a7ebcd5 100644 +index 8016fe1d55..b49dd9af98 100644 --- a/configs/rpi_3_defconfig +++ b/configs/rpi_3_defconfig -@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y +@@ -19,7 +19,7 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_MMC=y CONFIG_CMD_USB=y CONFIG_CMD_FS_UUID=y @@ -66,10 +66,10 @@ index 3cebd657da..bb0a7ebcd5 100644 CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y diff --git a/configs/rpi_defconfig b/configs/rpi_defconfig -index af2189b8fe..f6517eb52a 100644 +index 8acf04d0e4..5d5e700224 100644 --- a/configs/rpi_defconfig +++ b/configs/rpi_defconfig -@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y +@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y CONFIG_CMD_MMC=y CONFIG_CMD_USB=y CONFIG_CMD_FS_UUID=y @@ -79,5 +79,5 @@ index af2189b8fe..f6517eb52a 100644 CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0002-usb-xhci-reset-endpoint-on-USB-stall.patch b/buildroot-external/board/raspberrypi/patches/uboot/0002-usb-xhci-reset-endpoint-on-USB-stall.patch index 34de970c8..52124de7d 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/0002-usb-xhci-reset-endpoint-on-USB-stall.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0002-usb-xhci-reset-endpoint-on-USB-stall.patch @@ -1,10 +1,10 @@ -From 3d471d3be58ccd899d29bf57ad669e7a51d0b47d Mon Sep 17 00:00:00 2001 -Message-Id: <3d471d3be58ccd899d29bf57ad669e7a51d0b47d.1633601057.git.stefan@agner.ch> -In-Reply-To: -References: +From c942eb452c1c31fe6259178b6e9fea5456d7fb9c 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: Mon, 27 Sep 2021 12:28:04 +0200 -Subject: [PATCH 02/10] usb: xhci: reset endpoint on USB stall +Subject: [PATCH 2/5] usb: xhci: reset endpoint on USB stall There are devices which cause a USB stall when trying to read strings. Specifically Arduino Mega R3 stalls when trying to read the product @@ -83,5 +83,5 @@ index 35bd5cd29e..430823cb9d 100644 /* Invalidate buffer to make it available to usb-core */ if (length > 0) -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0003-rpi-add-NVMe-to-boot-order.patch b/buildroot-external/board/raspberrypi/patches/uboot/0003-rpi-add-NVMe-to-boot-order.patch index df940c9e4..f5e9462e8 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/0003-rpi-add-NVMe-to-boot-order.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0003-rpi-add-NVMe-to-boot-order.patch @@ -1,10 +1,10 @@ -From 698fc7c39fb3265ccb9cc7f3bb08432b76f3cdf5 Mon Sep 17 00:00:00 2001 -Message-Id: <698fc7c39fb3265ccb9cc7f3bb08432b76f3cdf5.1633601057.git.stefan@agner.ch> -In-Reply-To: -References: +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 03/10] rpi: add NVMe to boot order +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. @@ -15,10 +15,10 @@ Signed-off-by: Stefan Agner 1 file changed, 7 insertions(+) diff --git a/include/configs/rpi.h b/include/configs/rpi.h -index 522b41c02d..9b46203b5b 100644 +index 4c5c1ac31f..e24c94c7d2 100644 --- a/include/configs/rpi.h +++ b/include/configs/rpi.h -@@ -169,6 +169,12 @@ +@@ -143,6 +143,12 @@ #define BOOT_TARGET_MMC(func) #endif @@ -31,7 +31,7 @@ index 522b41c02d..9b46203b5b 100644 #if CONFIG_IS_ENABLED(CMD_USB) #define BOOT_TARGET_USB(func) func(USB, usb, 0) #else -@@ -189,6 +195,7 @@ +@@ -163,6 +169,7 @@ #define BOOT_TARGET_DEVICES(func) \ BOOT_TARGET_MMC(func) \ @@ -40,5 +40,5 @@ index 522b41c02d..9b46203b5b 100644 BOOT_TARGET_PXE(func) \ BOOT_TARGET_DHCP(func) -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0004-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch b/buildroot-external/board/raspberrypi/patches/uboot/0004-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch index cff0b5aa7..2bd7d9e86 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/0004-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0004-Revert-nvme-Correct-the-prps-per-page-calculation-me.patch @@ -1,10 +1,10 @@ -From fdacde2c24e052938cbb54d15dabc541304d8f40 Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: -References: +From 3a13ff4eb509e8e80a52ae45c9a5573e745803c3 Mon Sep 17 00:00:00 2001 +Message-Id: <3a13ff4eb509e8e80a52ae45c9a5573e745803c3.1645627172.git.stefan@agner.ch> +In-Reply-To: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch> +References: <24b77460dbfa2497ceb7a1611bf28b6eb88a1d74.1645627172.git.stefan@agner.ch> From: Stefan Agner Date: Thu, 23 Sep 2021 23:43:31 +0200 -Subject: [PATCH 04/10] Revert "nvme: Correct the prps per page calculation +Subject: [PATCH 4/5] Revert "nvme: Correct the prps per page calculation method" This reverts commit 859b33c948945f7904f60a2c12a3792d356d51ad. @@ -27,7 +27,7 @@ Cc: Wesley Sheng 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index f6465ea7f4..1ae3001a90 100644 +index 3c529a2fce..3bda491e12 100644 --- a/drivers/nvme/nvme.c +++ b/drivers/nvme/nvme.c @@ -81,7 +81,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, @@ -40,5 +40,5 @@ index f6465ea7f4..1ae3001a90 100644 length -= (page_size - offset); -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0005-nvme-improve-readability-of-nvme_setup_prps.patch b/buildroot-external/board/raspberrypi/patches/uboot/0005-nvme-improve-readability-of-nvme_setup_prps.patch deleted file mode 100644 index 151541e4e..000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/0005-nvme-improve-readability-of-nvme_setup_prps.patch +++ /dev/null @@ -1,51 +0,0 @@ -From d7a7036c90d0f65c8345b9f75ac1e817c48c998f Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: -References: -From: Stefan Agner -Date: Thu, 23 Sep 2021 23:52:44 +0200 -Subject: [PATCH 05/10] nvme: improve readability of nvme_setup_prps() - -Improve readability by introducing consts, reuse consts where -appropriate and adding variables with discriptive name. - -Signed-off-by: Stefan Agner ---- - drivers/nvme/nvme.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 1ae3001a90..677e66b1bb 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -76,12 +76,12 @@ static int nvme_wait_ready(struct nvme_dev *dev, bool enabled) - static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - int total_len, u64 dma_addr) - { -- u32 page_size = dev->page_size; -+ const u32 page_size = dev->page_size; -+ const u32 prps_per_page = (page_size >> 3) - 1; - int offset = dma_addr & (page_size - 1); - u64 *prp_pool; - int length = total_len; - int i, nprps; -- u32 prps_per_page = (page_size >> 3) - 1; - u32 num_pages; - - length -= (page_size - offset); -@@ -119,9 +119,9 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - prp_pool = dev->prp_pool; - i = 0; - while (nprps) { -- if (i == ((page_size >> 3) - 1)) { -- *(prp_pool + i) = cpu_to_le64((ulong)prp_pool + -- page_size); -+ if (i == prps_per_page) { -+ u64 next_prp_list = (u64)prp_pool + page_size; -+ *(prp_pool + i) = cpu_to_le64(next_prp_list); - i = 0; - prp_pool += page_size; - } --- -2.33.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0010-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch b/buildroot-external/board/raspberrypi/patches/uboot/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch similarity index 69% rename from buildroot-external/board/raspberrypi/patches/uboot/0010-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch rename to buildroot-external/board/raspberrypi/patches/uboot/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch index bf1489fe3..bf2d8475d 100644 --- a/buildroot-external/board/raspberrypi/patches/uboot/0010-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch +++ b/buildroot-external/board/raspberrypi/patches/uboot/0005-usb-xhci-brcm-Make-driver-compatible-with-downstream.patch @@ -1,10 +1,10 @@ -From 2b09a341c0e7e508565926c1b6f383bdd5259d8b Mon Sep 17 00:00:00 2001 -Message-Id: <2b09a341c0e7e508565926c1b6f383bdd5259d8b.1633601057.git.stefan@agner.ch> -In-Reply-To: -References: +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 10/10] usb: xhci-brcm: Make driver compatible with downstream +Subject: [PATCH 5/5] usb: xhci-brcm: Make driver compatible with downstream device tree The downstream device tree uses just "generic-xhci" as compatible @@ -29,5 +29,5 @@ index fe17924028..0c6938187b 100644 }; -- -2.33.0 +2.35.1 diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0006-nvme-Use-pointer-for-CPU-addressed-buffers.patch b/buildroot-external/board/raspberrypi/patches/uboot/0006-nvme-Use-pointer-for-CPU-addressed-buffers.patch deleted file mode 100644 index ff528f6cc..000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/0006-nvme-Use-pointer-for-CPU-addressed-buffers.patch +++ /dev/null @@ -1,263 +0,0 @@ -From 27a4d59876323a0e13807ac3614b01700b8cfe83 Mon Sep 17 00:00:00 2001 -Message-Id: <27a4d59876323a0e13807ac3614b01700b8cfe83.1633601057.git.stefan@agner.ch> -In-Reply-To: -References: -From: Stefan Agner -Date: Thu, 23 Sep 2021 23:58:35 +0200 -Subject: [PATCH 06/10] nvme: Use pointer for CPU addressed buffers - -Pass buffers which use CPU addressing as void pointers. This aligns with -DMA APIs which use void pointers as argument. It will avoid unnecessary -type casts when adding support bus address translations. - -Signed-off-by: Stefan Agner ---- - drivers/nvme/nvme.c | 50 ++++++++++++++++++++-------------------- - drivers/nvme/nvme_show.c | 4 ++-- - include/nvme.h | 12 +++++----- - 3 files changed, 33 insertions(+), 33 deletions(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 677e66b1bb..4c4dc7cc4d 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -74,11 +74,11 @@ static int nvme_wait_ready(struct nvme_dev *dev, bool enabled) - } - - static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, -- int total_len, u64 dma_addr) -+ int total_len, void *buffer) - { - const u32 page_size = dev->page_size; - const u32 prps_per_page = (page_size >> 3) - 1; -- int offset = dma_addr & (page_size - 1); -+ int offset = (uintptr_t)buffer & (page_size - 1); - u64 *prp_pool; - int length = total_len; - int i, nprps; -@@ -92,10 +92,10 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - } - - if (length) -- dma_addr += (page_size - offset); -+ buffer += (page_size - offset); - - if (length <= page_size) { -- *prp2 = dma_addr; -+ *prp2 = (u64)buffer; - return 0; - } - -@@ -125,11 +125,11 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - i = 0; - prp_pool += page_size; - } -- *(prp_pool + i++) = cpu_to_le64(dma_addr); -- dma_addr += page_size; -+ *(prp_pool + i++) = cpu_to_le64((u64)buffer); -+ buffer += page_size; - nprps--; - } -- *prp2 = (ulong)dev->prp_pool; -+ *prp2 = (u64)dev->prp_pool; - - flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool + - dev->prp_entry_num * sizeof(u64)); -@@ -450,42 +450,42 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid, - } - - int nvme_identify(struct nvme_dev *dev, unsigned nsid, -- unsigned cns, dma_addr_t dma_addr) -+ unsigned int cns, void *buffer) - { - struct nvme_command c; - u32 page_size = dev->page_size; -- int offset = dma_addr & (page_size - 1); -+ int offset = (uintptr_t)buffer & (page_size - 1); - int length = sizeof(struct nvme_id_ctrl); - int ret; - - memset(&c, 0, sizeof(c)); - c.identify.opcode = nvme_admin_identify; - c.identify.nsid = cpu_to_le32(nsid); -- c.identify.prp1 = cpu_to_le64(dma_addr); -+ c.identify.prp1 = cpu_to_le64((u64)buffer); - - length -= (page_size - offset); - if (length <= 0) { - c.identify.prp2 = 0; - } else { -- dma_addr += (page_size - offset); -- c.identify.prp2 = cpu_to_le64(dma_addr); -+ buffer += (page_size - offset); -+ c.identify.prp2 = cpu_to_le64((u64)buffer); - } - - c.identify.cns = cpu_to_le32(cns); - -- invalidate_dcache_range(dma_addr, -- dma_addr + sizeof(struct nvme_id_ctrl)); -+ invalidate_dcache_range((uintptr_t)buffer, -+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl)); - - ret = nvme_submit_admin_cmd(dev, &c, NULL); - if (!ret) -- invalidate_dcache_range(dma_addr, -- dma_addr + sizeof(struct nvme_id_ctrl)); -+ invalidate_dcache_range((uintptr_t)buffer, -+ (uintptr_t)buffer + sizeof(struct nvme_id_ctrl)); - - return ret; - } - - int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, -- dma_addr_t dma_addr, u32 *result) -+ void *buffer, u32 *result) - { - struct nvme_command c; - int ret; -@@ -493,7 +493,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_get_features; - c.features.nsid = cpu_to_le32(nsid); -- c.features.prp1 = cpu_to_le64(dma_addr); -+ c.features.prp1 = cpu_to_le64((u64)buffer); - c.features.fid = cpu_to_le32(fid); - - ret = nvme_submit_admin_cmd(dev, &c, result); -@@ -513,13 +513,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - } - - int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, -- dma_addr_t dma_addr, u32 *result) -+ void *buffer, u32 *result) - { - struct nvme_command c; - - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_set_features; -- c.features.prp1 = cpu_to_le64(dma_addr); -+ c.features.prp1 = cpu_to_le64((u64)buffer); - c.features.fid = cpu_to_le32(fid); - c.features.dword11 = cpu_to_le32(dword11); - -@@ -570,7 +570,7 @@ static int nvme_set_queue_count(struct nvme_dev *dev, int count) - u32 q_count = (count - 1) | ((count - 1) << 16); - - status = nvme_set_features(dev, NVME_FEAT_NUM_QUEUES, -- q_count, 0, &result); -+ q_count, NULL, &result); - - if (status < 0) - return status; -@@ -622,7 +622,7 @@ static int nvme_get_info_from_identify(struct nvme_dev *dev) - if (!ctrl) - return -ENOMEM; - -- ret = nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl); -+ ret = nvme_identify(dev, 0, 1, ctrl); - if (ret) { - free(ctrl); - return -EIO; -@@ -708,7 +708,7 @@ static int nvme_blk_probe(struct udevice *udev) - ns->dev = ndev; - /* extract the namespace id from the block device name */ - ns->ns_id = trailing_strtol(udev->name); -- if (nvme_identify(ndev, ns->ns_id, 0, (dma_addr_t)(long)id)) { -+ if (nvme_identify(ndev, ns->ns_id, 0, id)) { - free(id); - return -EIO; - } -@@ -770,7 +770,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr, - } - - if (nvme_setup_prps(dev, &prp2, -- lbas << ns->lba_shift, (ulong)buffer)) -+ lbas << ns->lba_shift, buffer)) - return -EIO; - c.rw.slba = cpu_to_le64(slba); - slba += lbas; -@@ -889,7 +889,7 @@ static int nvme_probe(struct udevice *udev) - char name[20]; - - memset(id, 0, sizeof(*id)); -- if (nvme_identify(ndev, i, 0, (dma_addr_t)(long)id)) { -+ if (nvme_identify(ndev, i, 0, id)) { - ret = -EIO; - goto free_id; - } -diff --git a/drivers/nvme/nvme_show.c b/drivers/nvme/nvme_show.c -index 15e459da1a..c30adfada5 100644 ---- a/drivers/nvme/nvme_show.c -+++ b/drivers/nvme/nvme_show.c -@@ -111,14 +111,14 @@ int nvme_print_info(struct udevice *udev) - ALLOC_CACHE_ALIGN_BUFFER(char, buf_ctrl, sizeof(struct nvme_id_ctrl)); - struct nvme_id_ctrl *ctrl = (struct nvme_id_ctrl *)buf_ctrl; - -- if (nvme_identify(dev, 0, 1, (dma_addr_t)(long)ctrl)) -+ if (nvme_identify(dev, 0, 1, ctrl)) - return -EIO; - - print_optional_admin_cmd(le16_to_cpu(ctrl->oacs), ns->devnum); - print_optional_nvm_cmd(le16_to_cpu(ctrl->oncs), ns->devnum); - print_format_nvme_attributes(ctrl->fna, ns->devnum); - -- if (nvme_identify(dev, ns->ns_id, 0, (dma_addr_t)(long)id)) -+ if (nvme_identify(dev, ns->ns_id, 0, id)) - return -EIO; - - print_formats(id, ns); -diff --git a/include/nvme.h b/include/nvme.h -index 2cdf8ce320..8ff823cd81 100644 ---- a/include/nvme.h -+++ b/include/nvme.h -@@ -18,12 +18,12 @@ struct nvme_dev; - * @dev: NVMe controller device - * @nsid: 0 for controller, namespace id for namespace to identify - * @cns: 1 for controller, 0 for namespace -- * @dma_addr: dma buffer address to store the identify result -+ * @buffer: dma buffer address to store the identify result - * @return: 0 on success, -ETIMEDOUT on command execution timeout, - * -EIO on command execution fails - */ - int nvme_identify(struct nvme_dev *dev, unsigned nsid, -- unsigned cns, dma_addr_t dma_addr); -+ unsigned int cns, void *buffer); - - /** - * nvme_get_features - retrieve the attributes of the feature specified -@@ -33,13 +33,13 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid, - * @dev: NVMe controller device - * @fid: feature id to provide data - * @nsid: namespace id the command applies to -- * @dma_addr: data structure used as part of the specified feature -+ * @buffer: data structure used as part of the specified feature - * @result: command-specific result in the completion queue entry - * @return: 0 on success, -ETIMEDOUT on command execution timeout, - * -EIO on command execution fails - */ - int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, -- dma_addr_t dma_addr, u32 *result); -+ void *buffer, u32 *result); - - /** - * nvme_set_features - specify the attributes of the feature indicated -@@ -49,13 +49,13 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - * @dev: NVMe controller device - * @fid: feature id to provide data - * @dword11: command-specific input parameter -- * @dma_addr: data structure used as part of the specified feature -+ * @buffer: data structure used as part of the specified feature - * @result: command-specific result in the completion queue entry - * @return: 0 on success, -ETIMEDOUT on command execution timeout, - * -EIO on command execution fails - */ - int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, -- dma_addr_t dma_addr, u32 *result); -+ void *buffer, u32 *result); - - /** - * nvme_scan_namespace - scan all namespaces attached to NVMe controllers --- -2.33.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0007-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch b/buildroot-external/board/raspberrypi/patches/uboot/0007-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch deleted file mode 100644 index 6cf023a8c..000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/0007-nvme-translate-virtual-addresses-into-the-bus-s-addr.patch +++ /dev/null @@ -1,201 +0,0 @@ -From bdaf8f67fd33ae1d38011a2b6f9da4884ec11dd2 Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: -References: -From: Stefan Agner -Date: Fri, 24 Sep 2021 00:27:39 +0200 -Subject: [PATCH 07/10] nvme: translate virtual addresses into the bus's - address space - -So far we've been content with passing physical/CPU addresses when -configuring memory addresses into NVMe controllers, but not all -platforms have buses with transparent mappings. Specifically the -Raspberry Pi 4 might introduce an offset to memory accesses incoming -from its PCIe port. - -Introduce nvme_virt_to_bus() and nvme_bus_to_virt() to cater with these -limitations, and make sure we don't break non DM users. -For devices where PCIe's view of host memory doesn't match the memory -as seen by the CPU. - -A similar change has been introduced for XHCI controller with -commit 1a474559d90a ("xhci: translate virtual addresses into the bus's -address space"). - -Signed-off-by: Stefan Agner -Series-to: bmeng.cn@gmail.com -Series-cc: u-boot@lists.denx.de, nsaenz@kernel.org, m.szyprowski@samsung.com, mbrugger@suse.com, s.nawrocki@samsung.com -Series-prefix: RFC ---- - drivers/nvme/nvme.c | 32 ++++++++++++++++++-------------- - drivers/nvme/nvme.h | 15 +++++++++++++++ - 2 files changed, 33 insertions(+), 14 deletions(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 4c4dc7cc4d..0b7082d71b 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -95,7 +95,7 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - buffer += (page_size - offset); - - if (length <= page_size) { -- *prp2 = (u64)buffer; -+ *prp2 = nvme_virt_to_bus(dev, buffer); - return 0; - } - -@@ -120,16 +120,16 @@ static int nvme_setup_prps(struct nvme_dev *dev, u64 *prp2, - i = 0; - while (nprps) { - if (i == prps_per_page) { -- u64 next_prp_list = (u64)prp_pool + page_size; -- *(prp_pool + i) = cpu_to_le64(next_prp_list); -+ u64 next = nvme_virt_to_bus(dev, prp_pool + page_size); -+ *(prp_pool + i) = cpu_to_le64(next); - i = 0; - prp_pool += page_size; - } -- *(prp_pool + i++) = cpu_to_le64((u64)buffer); -+ *(prp_pool + i++) = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - buffer += page_size; - nprps--; - } -- *prp2 = (u64)dev->prp_pool; -+ *prp2 = nvme_virt_to_bus(dev, dev->prp_pool); - - flush_dcache_range((ulong)dev->prp_pool, (ulong)dev->prp_pool + - dev->prp_entry_num * sizeof(u64)); -@@ -356,6 +356,7 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev) - int result; - u32 aqa; - u64 cap = dev->cap; -+ u64 dma_addr; - struct nvme_queue *nvmeq; - /* most architectures use 4KB as the page size */ - unsigned page_shift = 12; -@@ -396,8 +397,10 @@ static int nvme_configure_admin_queue(struct nvme_dev *dev) - dev->ctrl_config |= NVME_CC_IOSQES | NVME_CC_IOCQES; - - writel(aqa, &dev->bar->aqa); -- nvme_writeq((ulong)nvmeq->sq_cmds, &dev->bar->asq); -- nvme_writeq((ulong)nvmeq->cqes, &dev->bar->acq); -+ dma_addr = nvme_virt_to_bus(dev, nvmeq->sq_cmds); -+ nvme_writeq(dma_addr, &dev->bar->asq); -+ dma_addr = nvme_virt_to_bus(dev, nvmeq->cqes); -+ nvme_writeq(dma_addr, &dev->bar->acq); - - result = nvme_enable_ctrl(dev); - if (result) -@@ -423,7 +426,7 @@ static int nvme_alloc_cq(struct nvme_dev *dev, u16 qid, - - memset(&c, 0, sizeof(c)); - c.create_cq.opcode = nvme_admin_create_cq; -- c.create_cq.prp1 = cpu_to_le64((ulong)nvmeq->cqes); -+ c.create_cq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->cqes)); - c.create_cq.cqid = cpu_to_le16(qid); - c.create_cq.qsize = cpu_to_le16(nvmeq->q_depth - 1); - c.create_cq.cq_flags = cpu_to_le16(flags); -@@ -440,7 +443,7 @@ static int nvme_alloc_sq(struct nvme_dev *dev, u16 qid, - - memset(&c, 0, sizeof(c)); - c.create_sq.opcode = nvme_admin_create_sq; -- c.create_sq.prp1 = cpu_to_le64((ulong)nvmeq->sq_cmds); -+ c.create_sq.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, nvmeq->sq_cmds)); - c.create_sq.sqid = cpu_to_le16(qid); - c.create_sq.qsize = cpu_to_le16(nvmeq->q_depth - 1); - c.create_sq.sq_flags = cpu_to_le16(flags); -@@ -461,14 +464,14 @@ int nvme_identify(struct nvme_dev *dev, unsigned nsid, - memset(&c, 0, sizeof(c)); - c.identify.opcode = nvme_admin_identify; - c.identify.nsid = cpu_to_le32(nsid); -- c.identify.prp1 = cpu_to_le64((u64)buffer); -+ c.identify.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - - length -= (page_size - offset); - if (length <= 0) { - c.identify.prp2 = 0; - } else { - buffer += (page_size - offset); -- c.identify.prp2 = cpu_to_le64((u64)buffer); -+ c.identify.prp2 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - } - - c.identify.cns = cpu_to_le32(cns); -@@ -493,7 +496,7 @@ int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_get_features; - c.features.nsid = cpu_to_le32(nsid); -- c.features.prp1 = cpu_to_le64((u64)buffer); -+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - c.features.fid = cpu_to_le32(fid); - - ret = nvme_submit_admin_cmd(dev, &c, result); -@@ -519,7 +522,7 @@ int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, - - memset(&c, 0, sizeof(c)); - c.features.opcode = nvme_admin_set_features; -- c.features.prp1 = cpu_to_le64((u64)buffer); -+ c.features.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - c.features.fid = cpu_to_le32(fid); - c.features.dword11 = cpu_to_le32(dword11); - -@@ -775,7 +778,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr, - c.rw.slba = cpu_to_le64(slba); - slba += lbas; - c.rw.length = cpu_to_le16(lbas - 1); -- c.rw.prp1 = cpu_to_le64((ulong)buffer); -+ c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); - c.rw.prp2 = cpu_to_le64(prp2); - status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q], - &c, NULL, IO_TIMEOUT); -@@ -834,6 +837,7 @@ static int nvme_probe(struct udevice *udev) - struct nvme_id_ns *id; - - ndev->instance = trailing_strtol(udev->name); -+ ndev->dev = udev->parent; - - INIT_LIST_HEAD(&ndev->namespaces); - ndev->bar = dm_pci_map_bar(udev, PCI_BASE_ADDRESS_0, -diff --git a/drivers/nvme/nvme.h b/drivers/nvme/nvme.h -index c6aae4da5d..31e6899bca 100644 ---- a/drivers/nvme/nvme.h -+++ b/drivers/nvme/nvme.h -@@ -7,8 +7,15 @@ - #ifndef __DRIVER_NVME_H__ - #define __DRIVER_NVME_H__ - -+#include - #include - -+#if CONFIG_IS_ENABLED(DM_USB) -+#define nvme_to_dev(_dev) _dev->dev -+#else -+#define nvme_to_dev(_dev) NULL -+#endif -+ - struct nvme_id_power_state { - __le16 max_power; /* centiwatts */ - __u8 rsvd2; -@@ -596,6 +603,9 @@ enum { - - /* Represents an NVM Express device. Each nvme_dev is a PCI function. */ - struct nvme_dev { -+#if CONFIG_IS_ENABLED(DM_USB) -+ struct udevice *dev; -+#endif - struct list_head node; - struct nvme_queue **queues; - u32 __iomem *dbs; -@@ -635,4 +645,9 @@ struct nvme_ns { - u8 flbas; - }; - -+static inline dma_addr_t nvme_virt_to_bus(struct nvme_dev *dev, void *addr) -+{ -+ return dev_phys_to_bus(nvme_to_dev(dev), virt_to_phys(addr)); -+} -+ - #endif /* __DRIVER_NVME_H__ */ --- -2.33.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0008-nvme-invalidate-correct-memory-range-after-read.patch b/buildroot-external/board/raspberrypi/patches/uboot/0008-nvme-invalidate-correct-memory-range-after-read.patch deleted file mode 100644 index c5b7781db..000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/0008-nvme-invalidate-correct-memory-range-after-read.patch +++ /dev/null @@ -1,57 +0,0 @@ -From e55ccb4af869726b9579596ad37f3e7f33b5332d Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: -References: -From: Stefan Agner -Date: Tue, 28 Sep 2021 00:52:51 +0200 -Subject: [PATCH 08/10] nvme: invalidate correct memory range after read - -The current code invalidates the range after the read buffer since the -buffer pointer gets incremented in the read loop. Use a temporary -pointer to make sure we have a pristine pointer to invalidate the -correct memory range after read. - -Fixes: 704e040a51d2 ("nvme: Apply cache operations on the DMA buffers") -Signed-off-by: Stefan Agner ---- - drivers/nvme/nvme.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/drivers/nvme/nvme.c b/drivers/nvme/nvme.c -index 0b7082d71b..dd190bd654 100644 ---- a/drivers/nvme/nvme.c -+++ b/drivers/nvme/nvme.c -@@ -746,6 +746,7 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr, - u64 prp2; - u64 total_len = blkcnt << desc->log2blksz; - u64 temp_len = total_len; -+ void *temp_buffer = buffer; - - u64 slba = blknr; - u16 lbas = 1 << (dev->max_transfer_shift - ns->lba_shift); -@@ -773,19 +774,19 @@ static ulong nvme_blk_rw(struct udevice *udev, lbaint_t blknr, - } - - if (nvme_setup_prps(dev, &prp2, -- lbas << ns->lba_shift, buffer)) -+ lbas << ns->lba_shift, temp_buffer)) - return -EIO; - c.rw.slba = cpu_to_le64(slba); - slba += lbas; - c.rw.length = cpu_to_le16(lbas - 1); -- c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, buffer)); -+ c.rw.prp1 = cpu_to_le64(nvme_virt_to_bus(dev, temp_buffer)); - c.rw.prp2 = cpu_to_le64(prp2); - status = nvme_submit_sync_cmd(dev->queues[NVME_IO_Q], - &c, NULL, IO_TIMEOUT); - if (status) - break; - temp_len -= (u32)lbas << ns->lba_shift; -- buffer += lbas << ns->lba_shift; -+ temp_buffer += lbas << ns->lba_shift; - } - - if (read) --- -2.33.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0009-drivers-usb-host-Include-header-file-needed-for-dev_.patch b/buildroot-external/board/raspberrypi/patches/uboot/0009-drivers-usb-host-Include-header-file-needed-for-dev_.patch deleted file mode 100644 index 3bb639753..000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/0009-drivers-usb-host-Include-header-file-needed-for-dev_.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 6fc60c237cedf06cb5a1db087e2408a528870e3f Mon Sep 17 00:00:00 2001 -Message-Id: <6fc60c237cedf06cb5a1db087e2408a528870e3f.1633447374.git.stefan@agner.ch> -In-Reply-To: -References: -From: Stefan Agner -Date: Tue, 5 Oct 2021 17:07:22 +0200 -Subject: [PATCH 9/9] drivers: usb: host: Include header file needed for - dev_err - -dev_err seems to be moved to different header file. Include -dm/device_compat.h file to compile properly. - -Signed-off-by: Stefan Agner ---- - drivers/usb/host/xhci-brcm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c -index 27c4bbfcba..ee3b55242e 100644 ---- a/drivers/usb/host/xhci-brcm.c -+++ b/drivers/usb/host/xhci-brcm.c -@@ -5,6 +5,7 @@ - - #include - #include -+#include - #include - #include - #include --- -2.33.0 - diff --git a/buildroot-external/board/raspberrypi/patches/uboot/0009-usb-xhci-brcm-Include-header-file-needed-for-dev_err.patch b/buildroot-external/board/raspberrypi/patches/uboot/0009-usb-xhci-brcm-Include-header-file-needed-for-dev_err.patch deleted file mode 100644 index 77e125cd4..000000000 --- a/buildroot-external/board/raspberrypi/patches/uboot/0009-usb-xhci-brcm-Include-header-file-needed-for-dev_err.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dedd65ecd36cee5610022bbab4a8bf92c2401df9 Mon Sep 17 00:00:00 2001 -Message-Id: -In-Reply-To: -References: -From: Stefan Agner -Date: Tue, 5 Oct 2021 17:07:22 +0200 -Subject: [PATCH 09/10] usb: xhci-brcm: Include header file needed for dev_err - -dev_err seems to be moved to different header file. Include -dm/device_compat.h file to compile properly. - -Fixes: 69dae8902b16 ("linux/compat.h: Remove redefinition of dev_xxx macros") -Signed-off-by: Stefan Agner ---- - drivers/usb/host/xhci-brcm.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/usb/host/xhci-brcm.c b/drivers/usb/host/xhci-brcm.c -index 27c4bbfcba..fe17924028 100644 ---- a/drivers/usb/host/xhci-brcm.c -+++ b/drivers/usb/host/xhci-brcm.c -@@ -8,6 +8,7 @@ - #include - #include - #include -+#include - #include - - #define DRD2U3H_XHC_REGS_AXIWRA 0xC08 --- -2.33.0 - diff --git a/buildroot-external/configs/khadas_vim3_defconfig b/buildroot-external/configs/khadas_vim3_defconfig index 7bc182624..753dbb3ea 100644 --- a/buildroot-external/configs/khadas_vim3_defconfig +++ b/buildroot-external/configs/khadas_vim3_defconfig @@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="khadas-vim3" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/khadas/vim3/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/odroid_c2_defconfig b/buildroot-external/configs/odroid_c2_defconfig index 6b60fa1f3..8cdb9f969 100644 --- a/buildroot-external/configs/odroid_c2_defconfig +++ b/buildroot-external/configs/odroid_c2_defconfig @@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c2/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/odroid_c4_defconfig b/buildroot-external/configs/odroid_c4_defconfig index 4ea2b8ab3..8847d0140 100644 --- a/buildroot-external/configs/odroid_c4_defconfig +++ b/buildroot-external/configs/odroid_c4_defconfig @@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-c4" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-c4/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/odroid_n2_defconfig b/buildroot-external/configs/odroid_n2_defconfig index 3ae74fc25..9a863a7b8 100644 --- a/buildroot-external/configs/odroid_n2_defconfig +++ b/buildroot-external/configs/odroid_n2_defconfig @@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-n2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/hardkernel/odroid-n2/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/odroid_xu4_defconfig b/buildroot-external/configs/odroid_xu4_defconfig index 46020c979..737eeb2ef 100644 --- a/buildroot-external/configs/odroid_xu4_defconfig +++ b/buildroot-external/configs/odroid_xu4_defconfig @@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="odroid-xu3" BR2_TARGET_UBOOT_NEEDS_DTC=y BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y diff --git a/buildroot-external/configs/rpi2_defconfig b/buildroot-external/configs/rpi2_defconfig index 77bbdf356..25b0c409a 100644 --- a/buildroot-external/configs/rpi2_defconfig +++ b/buildroot-external/configs/rpi2_defconfig @@ -94,7 +94,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_2" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/rpi3_64_defconfig b/buildroot-external/configs/rpi3_64_defconfig index f83589d72..3dbdfb094 100644 --- a/buildroot-external/configs/rpi3_64_defconfig +++ b/buildroot-external/configs/rpi3_64_defconfig @@ -95,7 +95,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/rpi3_defconfig b/buildroot-external/configs/rpi3_defconfig index 05e028cdd..f05e09692 100644 --- a/buildroot-external/configs/rpi3_defconfig +++ b/buildroot-external/configs/rpi3_defconfig @@ -95,7 +95,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_3_32b" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/rpi4_64_defconfig b/buildroot-external/configs/rpi4_64_defconfig index a3f97e522..750af723b 100644 --- a/buildroot-external/configs/rpi4_64_defconfig +++ b/buildroot-external/configs/rpi4_64_defconfig @@ -98,7 +98,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4-64/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/rpi4_defconfig b/buildroot-external/configs/rpi4_defconfig index d5825f383..f70139764 100644 --- a/buildroot-external/configs/rpi4_defconfig +++ b/buildroot-external/configs/rpi4_defconfig @@ -96,7 +96,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4_32b" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/rpi4/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/configs/tinker_defconfig b/buildroot-external/configs/tinker_defconfig index 0a4e2073f..092d1f765 100644 --- a/buildroot-external/configs/tinker_defconfig +++ b/buildroot-external/configs/tinker_defconfig @@ -96,7 +96,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="tinker-s-rk3288" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/asus/tinker/uboot.config" BR2_TARGET_UBOOT_FORMAT_DTB_BIN=y diff --git a/buildroot-external/configs/yellow_defconfig b/buildroot-external/configs/yellow_defconfig index e7dde28ee..507e2a335 100644 --- a/buildroot-external/configs/yellow_defconfig +++ b/buildroot-external/configs/yellow_defconfig @@ -99,7 +99,7 @@ BR2_TARGET_ROOTFS_SQUASHFS4_LZ4=y BR2_TARGET_UBOOT=y BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y BR2_TARGET_UBOOT_CUSTOM_VERSION=y -BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2021.10" +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" BR2_TARGET_UBOOT_BOARD_DEFCONFIG="rpi_4" BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="$(BR2_EXTERNAL_HASSOS_PATH)/bootloader/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/uboot.config $(BR2_EXTERNAL_HASSOS_PATH)/board/raspberrypi/yellow/uboot.config" BR2_PACKAGE_HOST_UBOOT_TOOLS=y diff --git a/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch b/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch index b3312e32b..d236d8bdd 100644 --- a/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch +++ b/buildroot-external/patches/uboot/0001-CMD-read-string-from-fileinto-env.patch @@ -1,5 +1,5 @@ -From d87c6d3bb3de5f574d472dc5390f3f162db81823 Mon Sep 17 00:00:00 2001 -Message-Id: +From c8df96af414e6c9b1e6ff8ac5a56b6d3cb365636 Mon Sep 17 00:00:00 2001 +Message-Id: From: Pascal Vizeli Date: Sun, 5 Aug 2018 20:43:03 +0000 Subject: [PATCH] CMD: read string from fileinto env @@ -13,10 +13,10 @@ Signed-off-by: Pascal Vizeli create mode 100644 cmd/fileenv.c diff --git a/cmd/Kconfig b/cmd/Kconfig -index 3a857b3f6e..9dc88988ac 100644 +index 02c298fdbe..959fff5b76 100644 --- a/cmd/Kconfig +++ b/cmd/Kconfig -@@ -1422,6 +1422,11 @@ config CMD_SETEXPR_FMT +@@ -1448,6 +1448,11 @@ config CMD_SETEXPR_FMT Evaluate format string expression and store result in an environment variable. @@ -29,10 +29,10 @@ index 3a857b3f6e..9dc88988ac 100644 menu "Android support commands" diff --git a/cmd/Makefile b/cmd/Makefile -index ed3669411e..a11b4b692e 100644 +index e31ac15ef7..eed8c7ebfe 100644 --- a/cmd/Makefile +++ b/cmd/Makefile -@@ -142,6 +142,7 @@ obj-$(CONFIG_CMD_SCSI) += scsi.o disk.o +@@ -143,6 +143,7 @@ obj-$(CONFIG_CMD_SCSI) += scsi.o disk.o obj-$(CONFIG_CMD_SHA1SUM) += sha1sum.o obj-$(CONFIG_CMD_SETEXPR) += setexpr.o obj-$(CONFIG_CMD_SETEXPR_FMT) += printf.o @@ -93,5 +93,5 @@ index 0000000000..9891cb05ab + " - Read file from fat32 and store it as env." +); -- -2.33.0 +2.35.1