From 65c7a7d8314df7c5965c90ecc6077e8ea49a4bb890174d63199e5f618d532511 Mon Sep 17 00:00:00 2001 From: Guillaume GARDET Date: Tue, 6 Apr 2021 08:44:03 +0000 Subject: [PATCH] Accepting request 883207 from hardware:boot:staging - mx53loco now uses u-boot-dtb.imx instead of u-boot.imx - Update to 2021.04 OBS-URL: https://build.opensuse.org/request/show/883207 OBS-URL: https://build.opensuse.org/package/show/hardware:boot/u-boot?expand=0&rev=137 --- ...-XXX-openSUSE-XXX-Prepend-partition-.patch | 8 +- ...-Revert-Revert-omap3-Use-raw-SPL-by-.patch | 6 +- ...-rpi-Use-firmware-provided-device-tr.patch | 12 +- ...-Temp-workaround-for-Chromebook-snow.patch | 6 +- ...-tools-zynqmpbif-Add-support-for-loa.patch | 2 +- ...006-Kconfig-add-btrfs-to-distro-boot.patch | 4 +- ...-boo-1123170-Remove-ubifs-support-fr.patch | 44 --- ...-boo-1144161-Remove-nand-mtd-spi-dfu.patch | 89 ----- ...-configs-Re-sync-with-CONFIG_DISTRO_.patch | 8 +- ...-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch | 2 +- ...-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch | 2 +- 0010-configs-am335x_evm-disable-BTRFS.patch | 22 -- ...-sunxi-Enable-SPI-support-on-Orange-.patch | 2 +- ...-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch | 6 +- ...-smbios-Fix-table-when-no-string-is-.patch | 33 ++ ...-rpi-Add-identifier-for-the-new-RPi4.patch | 32 -- 0016-rpi-Add-identifier-for-the-new-CM4.patch | 36 -- ...-pci-pcie-brcmstb-Fix-inbound-window.patch | 54 --- 0018-dm-Introduce-xxx_get_dma_range.patch | 357 ------------------ ...-dm-test-Add-test-case-for-dev_get_d.patch | 113 ------ ...-dm-Introduce-DMA-constraints-into-t.patch | 140 ------- ...-dm-test-Add-test-case-for-dev-dma_o.patch | 120 ------ ...-dm-Introduce-dev_phys_to_bus-dev_bu.patch | 47 --- ...-dm-test-Add-test-case-for-dev_phys_.patch | 73 ---- ...-xhci-translate-virtual-addresses-in.patch | 319 ---------------- ...-mmc-Introduce-mmc_phys_to_bus-mmc_b.patch | 82 ---- ...-configs-rpi4-Enable-DM_DMA-across-a.patch | 53 --- ...-video-arm-rpi-Add-brcm-bcm2711-hdmi.patch | 28 -- ...-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch | 27 -- ...-pci-brcmstb-Cleanup-controller-stat.patch | 55 --- 0030-fs-btrfs-Select-SHA256-in-Kconfig.patch | 31 -- ...-efi_loader-Avoid-emitting-efi_var_b.patch | 148 -------- ...-configs-BPI-R2-Disable-EFI-Grub-wor.patch | 23 -- ...-configs-RPi2-Disable-EFI-Grub-worka.patch | 23 -- ...-smbios-Fix-table-whit-no-string-is-.patch | 28 -- u-boot-2021.01.tar.bz2 | 3 - u-boot-2021.01.tar.bz2.sig | Bin 458 -> 0 bytes u-boot-2021.04.tar.bz2 | 3 + u-boot-2021.04.tar.bz2.sig | Bin 0 -> 458 bytes u-boot.changes | 49 +++ u-boot.spec | 46 +-- update_git.sh | 4 +- 42 files changed, 126 insertions(+), 2014 deletions(-) rename 0008-Kconfig-add-btrfs-to-distro-boot.patch => 0006-Kconfig-add-btrfs-to-distro-boot.patch (87%) delete mode 100644 0006-boo-1123170-Remove-ubifs-support-fr.patch delete mode 100644 0007-boo-1144161-Remove-nand-mtd-spi-dfu.patch rename 0009-configs-Re-sync-with-CONFIG_DISTRO_.patch => 0007-configs-Re-sync-with-CONFIG_DISTRO_.patch (93%) rename 0011-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch => 0008-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch (95%) rename 0012-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch => 0009-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch (93%) delete mode 100644 0010-configs-am335x_evm-disable-BTRFS.patch rename 0013-sunxi-Enable-SPI-support-on-Orange-.patch => 0010-sunxi-Enable-SPI-support-on-Orange-.patch (93%) rename 0014-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch => 0011-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch (82%) create mode 100644 0012-smbios-Fix-table-when-no-string-is-.patch delete mode 100644 0015-rpi-Add-identifier-for-the-new-RPi4.patch delete mode 100644 0016-rpi-Add-identifier-for-the-new-CM4.patch delete mode 100644 0017-pci-pcie-brcmstb-Fix-inbound-window.patch delete mode 100644 0018-dm-Introduce-xxx_get_dma_range.patch delete mode 100644 0019-dm-test-Add-test-case-for-dev_get_d.patch delete mode 100644 0020-dm-Introduce-DMA-constraints-into-t.patch delete mode 100644 0021-dm-test-Add-test-case-for-dev-dma_o.patch delete mode 100644 0022-dm-Introduce-dev_phys_to_bus-dev_bu.patch delete mode 100644 0023-dm-test-Add-test-case-for-dev_phys_.patch delete mode 100644 0024-xhci-translate-virtual-addresses-in.patch delete mode 100644 0025-mmc-Introduce-mmc_phys_to_bus-mmc_b.patch delete mode 100644 0026-configs-rpi4-Enable-DM_DMA-across-a.patch delete mode 100644 0027-video-arm-rpi-Add-brcm-bcm2711-hdmi.patch delete mode 100644 0028-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch delete mode 100644 0029-pci-brcmstb-Cleanup-controller-stat.patch delete mode 100644 0030-fs-btrfs-Select-SHA256-in-Kconfig.patch delete mode 100644 0031-efi_loader-Avoid-emitting-efi_var_b.patch delete mode 100644 0032-configs-BPI-R2-Disable-EFI-Grub-wor.patch delete mode 100644 0033-configs-RPi2-Disable-EFI-Grub-worka.patch delete mode 100644 0034-smbios-Fix-table-whit-no-string-is-.patch delete mode 100644 u-boot-2021.01.tar.bz2 delete mode 100644 u-boot-2021.01.tar.bz2.sig create mode 100644 u-boot-2021.04.tar.bz2 create mode 100644 u-boot-2021.04.tar.bz2.sig diff --git a/0001-XXX-openSUSE-XXX-Prepend-partition-.patch b/0001-XXX-openSUSE-XXX-Prepend-partition-.patch index b93bad5..2608db9 100644 --- a/0001-XXX-openSUSE-XXX-Prepend-partition-.patch +++ b/0001-XXX-openSUSE-XXX-Prepend-partition-.patch @@ -1,4 +1,4 @@ -From da36e129a526f1a7921c7971013d3f5918c504a3 Mon Sep 17 00:00:00 2001 +From 64c8c72d668be879002700dfcf917b06832632a5 Mon Sep 17 00:00:00 2001 From: Guillaume GARDET Date: Wed, 13 Apr 2016 13:44:29 +0200 Subject: [PATCH] XXX openSUSE XXX: Prepend partition 3 (and 4 for chromebook @@ -12,10 +12,10 @@ Subject: [PATCH] XXX openSUSE XXX: Prepend partition 3 (and 4 for chromebook 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/config_distro_bootcmd.h b/include/config_distro_bootcmd.h -index c9862260a3..39e3247d41 100644 +index 2627c2a6a5..7dccc083cf 100644 --- a/include/config_distro_bootcmd.h +++ b/include/config_distro_bootcmd.h -@@ -145,7 +145,7 @@ +@@ -151,7 +151,7 @@ "load ${devtype} ${devnum}:${distro_bootpart} " \ "${fdt_addr_r} ${prefix}${efi_fdtfile}\0" \ \ @@ -24,7 +24,7 @@ index c9862260a3..39e3247d41 100644 "scan_dev_for_efi=" \ "setenv efi_fdtfile ${fdtfile}; " \ BOOTENV_EFI_SET_FDTFILE_FALLBACK \ -@@ -472,7 +472,7 @@ +@@ -478,7 +478,7 @@ "scan_dev_for_boot_part=" \ "part list ${devtype} ${devnum} -bootable devplist; " \ "env exists devplist || setenv devplist 1; " \ diff --git a/0002-Revert-Revert-omap3-Use-raw-SPL-by-.patch b/0002-Revert-Revert-omap3-Use-raw-SPL-by-.patch index 49aac2a..9690a9c 100644 --- a/0002-Revert-Revert-omap3-Use-raw-SPL-by-.patch +++ b/0002-Revert-Revert-omap3-Use-raw-SPL-by-.patch @@ -1,4 +1,4 @@ -From 34515ca90618bb0545ce360abb91b6037b1546e3 Mon Sep 17 00:00:00 2001 +From 31b4bbb7ddadd1ee9109bc6087d998746db7b1dd Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Mon, 2 May 2016 23:25:07 +0200 Subject: [PATCH] Revert "Revert "omap3: Use raw SPL by default for mmc1"" @@ -9,10 +9,10 @@ This reverts commit 7fa75d0ac5502db813d109c1df7bd0da34688685. 1 file changed, 2 deletions(-) diff --git a/arch/arm/mach-omap2/boot-common.c b/arch/arm/mach-omap2/boot-common.c -index cb9d7fdb15..50dec906df 100644 +index 1268a32503..e564fad0e9 100644 --- a/arch/arm/mach-omap2/boot-common.c +++ b/arch/arm/mach-omap2/boot-common.c -@@ -133,8 +133,6 @@ void save_omap_boot_params(void) +@@ -134,8 +134,6 @@ void save_omap_boot_params(void) (boot_device <= MMC_BOOT_DEVICES_END)) { switch (boot_device) { case BOOT_DEVICE_MMC1: diff --git a/0003-rpi-Use-firmware-provided-device-tr.patch b/0003-rpi-Use-firmware-provided-device-tr.patch index 184a680..126b168 100644 --- a/0003-rpi-Use-firmware-provided-device-tr.patch +++ b/0003-rpi-Use-firmware-provided-device-tr.patch @@ -1,4 +1,4 @@ -From 2f2b5324682ebf078c78372e74ce759b3620e4bc Mon Sep 17 00:00:00 2001 +From faef6b729e84803c91ef6c61f6e167e4da40c98e Mon Sep 17 00:00:00 2001 From: Guillaume Gardet Date: Fri, 18 Sep 2020 15:27:37 +0200 Subject: [PATCH] rpi: Use firmware provided device tree @@ -28,7 +28,7 @@ Signed-off-by: Guillaume Gardet 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig -index 93d790aae6..cae50fa2ab 100644 +index 01565991f5..c0a9b6c788 100644 --- a/configs/rpi_0_w_defconfig +++ b/configs/rpi_0_w_defconfig @@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y @@ -41,7 +41,7 @@ index 93d790aae6..cae50fa2ab 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 33f27cf09f..e546c3e7be 100644 +index 1ad0626782..33e0ef6989 100644 --- a/configs/rpi_2_defconfig +++ b/configs/rpi_2_defconfig @@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y @@ -54,7 +54,7 @@ index 33f27cf09f..e546c3e7be 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 cdc67cb3ac..2256ad1fc1 100644 +index a14d7eefbc..15c62adc69 100644 --- a/configs/rpi_3_32b_defconfig +++ b/configs/rpi_3_32b_defconfig @@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y @@ -67,7 +67,7 @@ index cdc67cb3ac..2256ad1fc1 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 7075d39d10..4a34d35898 100644 +index 4aedfb17cd..daeb6d1b64 100644 --- a/configs/rpi_3_defconfig +++ b/configs/rpi_3_defconfig @@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y @@ -80,7 +80,7 @@ index 7075d39d10..4a34d35898 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 bba36ca7fc..98728fc8c0 100644 +index 78638105f7..06b390d907 100644 --- a/configs/rpi_defconfig +++ b/configs/rpi_defconfig @@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y diff --git a/0004-Temp-workaround-for-Chromebook-snow.patch b/0004-Temp-workaround-for-Chromebook-snow.patch index ede7d2c..bef7f46 100644 --- a/0004-Temp-workaround-for-Chromebook-snow.patch +++ b/0004-Temp-workaround-for-Chromebook-snow.patch @@ -1,4 +1,4 @@ -From ec7b043f9c2b0cb4e7ff2a9ae808456b310375c9 Mon Sep 17 00:00:00 2001 +From 612aefa5be3ff8074a17862ca5121b86da401e02 Mon Sep 17 00:00:00 2001 From: Guillaume GARDET Date: Mon, 9 Apr 2018 10:28:26 +0200 Subject: [PATCH] Temp workaround for Chromebook snow to avoid the 'unable to @@ -9,10 +9,10 @@ Subject: [PATCH] Temp workaround for Chromebook snow to avoid the 'unable to 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c -index 7702f4be3f..ff2cd946fc 100644 +index 7c8a312fa7..2865e9f964 100644 --- a/drivers/mmc/dw_mmc.c +++ b/drivers/mmc/dw_mmc.c -@@ -603,7 +603,8 @@ void dwmci_setup_cfg(struct mmc_config *cfg, struct dwmci_host *host, +@@ -608,7 +608,8 @@ void dwmci_setup_cfg(struct mmc_config *cfg, struct dwmci_host *host, cfg->host_caps |= MMC_MODE_4BIT; cfg->host_caps &= ~MMC_MODE_8BIT; } diff --git a/0005-tools-zynqmpbif-Add-support-for-loa.patch b/0005-tools-zynqmpbif-Add-support-for-loa.patch index 087a647..a20fc8f 100644 --- a/0005-tools-zynqmpbif-Add-support-for-loa.patch +++ b/0005-tools-zynqmpbif-Add-support-for-loa.patch @@ -1,4 +1,4 @@ -From 45f65400eede913d46a21868122678753305a294 Mon Sep 17 00:00:00 2001 +From c31a2d2fe0e9386ba98bfe64fa3b07cc8f09cc34 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Thu, 26 Apr 2018 13:30:32 +0200 Subject: [PATCH] tools: zynqmpbif: Add support for load=after diff --git a/0008-Kconfig-add-btrfs-to-distro-boot.patch b/0006-Kconfig-add-btrfs-to-distro-boot.patch similarity index 87% rename from 0008-Kconfig-add-btrfs-to-distro-boot.patch rename to 0006-Kconfig-add-btrfs-to-distro-boot.patch index 26b0e6d..5e51613 100644 --- a/0008-Kconfig-add-btrfs-to-distro-boot.patch +++ b/0006-Kconfig-add-btrfs-to-distro-boot.patch @@ -1,4 +1,4 @@ -From 5b3fe80ea3daebde777533fc40bd071c860438b0 Mon Sep 17 00:00:00 2001 +From 042795c3d5a9048c5dc1b3ddeb63f17c22f8374b Mon Sep 17 00:00:00 2001 From: Matthias Brugger Date: Fri, 17 Jan 2020 20:59:02 +0100 Subject: [PATCH] Kconfig: add btrfs to distro boot @@ -13,7 +13,7 @@ Signed-off-by: Matthias Brugger 1 file changed, 1 insertion(+) diff --git a/Kconfig b/Kconfig -index 6dc20ed25b..35e8dc7bad 100644 +index 86f0a39bb0..fea92305a3 100644 --- a/Kconfig +++ b/Kconfig @@ -143,6 +143,7 @@ config DISTRO_DEFAULTS diff --git a/0006-boo-1123170-Remove-ubifs-support-fr.patch b/0006-boo-1123170-Remove-ubifs-support-fr.patch deleted file mode 100644 index a2b46f2..0000000 --- a/0006-boo-1123170-Remove-ubifs-support-fr.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 6c0413e2528f4fc699c01f47e60fcf2d16b5fc75 Mon Sep 17 00:00:00 2001 -From: Guillaume Gardet -Date: Fri, 18 Sep 2020 15:28:41 +0200 -Subject: [PATCH] boo#1123170: Remove ubifs support from omap3_beagle to keep a - small u-boot.img - ---- - configs/omap3_beagle_defconfig | 3 ++- - include/configs/omap3_beagle.h | 1 - - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/configs/omap3_beagle_defconfig b/configs/omap3_beagle_defconfig -index 514bc01b1f..f232df0e41 100644 ---- a/configs/omap3_beagle_defconfig -+++ b/configs/omap3_beagle_defconfig -@@ -41,7 +41,6 @@ CONFIG_CMD_FS_UUID=y - CONFIG_CMD_MTDPARTS=y - CONFIG_MTDIDS_DEFAULT="nand0=omap2-nand.0" - CONFIG_MTDPARTS_DEFAULT="mtdparts=omap2-nand.0:512k(spl),1920k(u-boot),128k(u-boot-env),128k(dtb),6m(kernel),-(rootfs)" --CONFIG_CMD_UBI=y - # CONFIG_ISO_PARTITION is not set - # CONFIG_SPL_EFI_PARTITION is not set - CONFIG_SPL_PARTITION_UUIDS=y -@@ -77,6 +76,8 @@ CONFIG_SYS_NAND_BUSWIDTH_16BIT=y - CONFIG_SYS_NAND_U_BOOT_LOCATIONS=y - CONFIG_SYS_NAND_U_BOOT_OFFS=0x80000 - CONFIG_DM_ETH=y -+CONFIG_SPL_NAND_SIMPLE=y -+CONFIG_MTD_UBI=y - CONFIG_SPI=y - CONFIG_DM_SPI=y - CONFIG_OMAP3_SPI=y -diff --git a/include/configs/omap3_beagle.h b/include/configs/omap3_beagle.h -index 6563335f91..bc19317387 100644 ---- a/include/configs/omap3_beagle.h -+++ b/include/configs/omap3_beagle.h -@@ -81,7 +81,6 @@ - #define BOOT_TARGET_DEVICES(func) \ - func(MMC, mmc, 0) \ - func(LEGACY_MMC, legacy_mmc, 0) \ -- func(UBIFS, ubifs, 0) \ - func(NAND, nand, 0) - - #else /* !CONFIG_MTD_RAW_NAND */ diff --git a/0007-boo-1144161-Remove-nand-mtd-spi-dfu.patch b/0007-boo-1144161-Remove-nand-mtd-spi-dfu.patch deleted file mode 100644 index 3f97cf7..0000000 --- a/0007-boo-1144161-Remove-nand-mtd-spi-dfu.patch +++ /dev/null @@ -1,89 +0,0 @@ -From f9fb8e59d10feb1fd5866864f8dd9994b1d60306 Mon Sep 17 00:00:00 2001 -From: Guillaume Gardet -Date: Fri, 18 Sep 2020 15:29:27 +0200 -Subject: [PATCH] boo#1144161: Remove nand/mtd/spi/dfu/fastboot support from - am335x_evm to keep a small u-boot.img - ---- - configs/am335x_evm_defconfig | 31 ++----------------------------- - 1 file changed, 2 insertions(+), 29 deletions(-) - -diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig -index eb5a299bbc..c615c54b1c 100644 ---- a/configs/am335x_evm_defconfig -+++ b/configs/am335x_evm_defconfig -@@ -16,25 +16,16 @@ CONFIG_ARCH_MISC_INIT=y - CONFIG_SPL_FIT_IMAGE_TINY=y - CONFIG_SPL_ETH_SUPPORT=y - # CONFIG_SPL_FS_EXT4 is not set --CONFIG_SPL_MTD_SUPPORT=y - CONFIG_SPL_MUSB_NEW_SUPPORT=y --CONFIG_SPL_NAND_DRIVERS=y --CONFIG_SPL_NAND_ECC=y --CONFIG_SPL_NAND_BASE=y -+# CONFIG_SPL_NAND_SUPPORT is not set - CONFIG_SPL_NET_SUPPORT=y - CONFIG_SPL_NET_VCI_STRING="AM335x U-Boot SPL" - CONFIG_SPL_OS_BOOT=y - CONFIG_SPL_USB_GADGET=y - CONFIG_SPL_USB_ETHER=y - CONFIG_CMD_SPL=y --CONFIG_CMD_SPL_NAND_OFS=0x00080000 --# CONFIG_CMD_FLASH is not set --CONFIG_CMD_NAND=y -+# CONFIG_CMD_DM is not set - # CONFIG_CMD_SETEXPR is not set --CONFIG_BOOTP_DNS2=y --CONFIG_CMD_MTDPARTS=y --CONFIG_MTDIDS_DEFAULT="nand0=nand.0" --CONFIG_MTDPARTS_DEFAULT="mtdparts=nand.0:128k(NAND.SPL),128k(NAND.SPL.backup1),128k(NAND.SPL.backup2),128k(NAND.SPL.backup3),256k(NAND.u-boot-spl-os),1m(NAND.u-boot),128k(NAND.u-boot-env),128k(NAND.u-boot-env.backup1),8m(NAND.kernel),-(NAND.file-system)" - # CONFIG_SPL_EFI_PARTITION is not set - CONFIG_OF_CONTROL=y - CONFIG_OF_LIST="am335x-evm am335x-bone am335x-boneblack am335x-evmsk am335x-bonegreen am335x-icev2 am335x-pocketbeagle" -@@ -47,38 +38,21 @@ CONFIG_BOOTP_SEND_HOSTNAME=y - CONFIG_BOOTCOUNT_LIMIT=y - CONFIG_CLK=y - CONFIG_CLK_CDCE9XX=y --CONFIG_DFU_TFTP=y --CONFIG_DFU_MMC=y --CONFIG_DFU_NAND=y --CONFIG_DFU_RAM=y --CONFIG_USB_FUNCTION_FASTBOOT=y --CONFIG_FASTBOOT_FLASH=y --CONFIG_FASTBOOT_FLASH_MMC_DEV=1 --CONFIG_FASTBOOT_CMD_OEM_FORMAT=y - CONFIG_DM_I2C=y - CONFIG_MISC=y - CONFIG_DM_MMC=y - # CONFIG_MMC_HW_PARTITIONING is not set - CONFIG_MMC_OMAP_HS=y --CONFIG_MTD=y --CONFIG_MTD_RAW_NAND=y --CONFIG_DM_SPI_FLASH=y --CONFIG_SF_DEFAULT_SPEED=24000000 --CONFIG_SPI_FLASH_WINBOND=y - CONFIG_PHY_ATHEROS=y - CONFIG_PHY_SMSC=y - CONFIG_DM_ETH=y - CONFIG_MII=y - CONFIG_DRIVER_TI_CPSW=y --CONFIG_SPI=y --CONFIG_DM_SPI=y --CONFIG_OMAP3_SPI=y - CONFIG_TIMER=y - CONFIG_OMAP_TIMER=y - CONFIG_USB=y - CONFIG_DM_USB=y - CONFIG_DM_USB_GADGET=y --CONFIG_SPL_DM_USB_GADGET=y - CONFIG_USB_MUSB_HOST=y - CONFIG_USB_MUSB_GADGET=y - CONFIG_USB_MUSB_TI=y -@@ -86,7 +60,6 @@ CONFIG_USB_GADGET=y - CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments" - CONFIG_USB_GADGET_VENDOR_NUM=0x0451 - CONFIG_USB_GADGET_PRODUCT_NUM=0xd022 --CONFIG_USB_ETHER=y - CONFIG_WDT=y - # CONFIG_SPL_WDT is not set - CONFIG_DYNAMIC_CRC_TABLE=y diff --git a/0009-configs-Re-sync-with-CONFIG_DISTRO_.patch b/0007-configs-Re-sync-with-CONFIG_DISTRO_.patch similarity index 93% rename from 0009-configs-Re-sync-with-CONFIG_DISTRO_.patch rename to 0007-configs-Re-sync-with-CONFIG_DISTRO_.patch index 5f7e2cf..39f3da1 100644 --- a/0009-configs-Re-sync-with-CONFIG_DISTRO_.patch +++ b/0007-configs-Re-sync-with-CONFIG_DISTRO_.patch @@ -1,4 +1,4 @@ -From 0901a320eb56b18739af922493ef17916daa1d80 Mon Sep 17 00:00:00 2001 +From 4b2b7d1548bc36391f63cbc73626852335b90f33 Mon Sep 17 00:00:00 2001 From: Matthias Brugger Date: Wed, 29 Jan 2020 09:56:06 +0100 Subject: [PATCH] configs: Re-sync with CONFIG_DISTRO_DEFAULTS @@ -18,7 +18,7 @@ Signed-off-by: Matthias Brugger 5 files changed, 2 insertions(+), 4 deletions(-) diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig -index 5fbbfd7236..1afe9a4665 100644 +index cfda83474b..657c72b595 100644 --- a/configs/sandbox64_defconfig +++ b/configs/sandbox64_defconfig @@ -77,7 +77,6 @@ CONFIG_CMD_REGULATOR=y @@ -30,7 +30,7 @@ index 5fbbfd7236..1afe9a4665 100644 CONFIG_CMD_CRAMFS=y CONFIG_CMD_EXT4_WRITE=y diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig -index f1ec701a9f..5bc9186d6e 100644 +index 5bc90d09a8..a1f91a5870 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -90,7 +90,6 @@ CONFIG_CMD_REGULATOR=y @@ -52,7 +52,7 @@ index fdad9bd7b4..560ce858f2 100644 +# CONFIG_CMD_BTRFS is not set +# CONFIG_FS_BTRFS is not set diff --git a/configs/turris_mox_defconfig b/configs/turris_mox_defconfig -index 66dc2473d6..906d79a5c3 100644 +index f938fbb475..399941d4e1 100644 --- a/configs/turris_mox_defconfig +++ b/configs/turris_mox_defconfig @@ -36,7 +36,6 @@ CONFIG_CMD_TFTPPUT=y diff --git a/0011-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch b/0008-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch similarity index 95% rename from 0011-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch rename to 0008-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch index bd41f4b..6399b0f 100644 --- a/0011-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch +++ b/0008-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch @@ -1,4 +1,4 @@ -From 96d142c3738348da1ea98e39a8bbaf5c4a640692 Mon Sep 17 00:00:00 2001 +From 650c3bf0b238e402efbb462ee284a3413028a82d Mon Sep 17 00:00:00 2001 From: Michal Suchanek Date: Tue, 29 Sep 2020 10:13:33 +0200 Subject: [PATCH] sunxi: dts: OrangePi Zero: Add SPI aliases to make bus usable diff --git a/0012-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch b/0009-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch similarity index 93% rename from 0012-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch rename to 0009-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch index a6f2c37..e429d96 100644 --- a/0012-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch +++ b/0009-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch @@ -1,4 +1,4 @@ -From b1098dbd2cc344dd9c2df14d7dfab0eb0a107959 Mon Sep 17 00:00:00 2001 +From 779e02d702960aaa13facd1add368caefc35702e Mon Sep 17 00:00:00 2001 From: Michal Suchanek Date: Mon, 28 Sep 2020 23:02:01 +0200 Subject: [PATCH] sunxi: dts: OrangePi Zero: Enable SPI flash. diff --git a/0010-configs-am335x_evm-disable-BTRFS.patch b/0010-configs-am335x_evm-disable-BTRFS.patch deleted file mode 100644 index 266a7e0..0000000 --- a/0010-configs-am335x_evm-disable-BTRFS.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 880d8bd547bf71fd91216d2725455fc373dd981a Mon Sep 17 00:00:00 2001 -From: Matthias Brugger -Date: Wed, 29 Jan 2020 10:26:43 +0100 -Subject: [PATCH] configs: am335x_evm: disable BTRFS - -Disable BTRFS as otherwise the image get's too big. - -Signed-off-by: Matthias Brugger ---- - configs/am335x_evm_defconfig | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig -index c615c54b1c..62db21203d 100644 ---- a/configs/am335x_evm_defconfig -+++ b/configs/am335x_evm_defconfig -@@ -65,3 +65,5 @@ CONFIG_WDT=y - CONFIG_DYNAMIC_CRC_TABLE=y - CONFIG_RSA=y - CONFIG_LZO=y -+# CONFIG_CMD_BTRFS is not set -+# CONFIG_FS_BTRFS is not set diff --git a/0013-sunxi-Enable-SPI-support-on-Orange-.patch b/0010-sunxi-Enable-SPI-support-on-Orange-.patch similarity index 93% rename from 0013-sunxi-Enable-SPI-support-on-Orange-.patch rename to 0010-sunxi-Enable-SPI-support-on-Orange-.patch index de971db..d7f32a3 100644 --- a/0013-sunxi-Enable-SPI-support-on-Orange-.patch +++ b/0010-sunxi-Enable-SPI-support-on-Orange-.patch @@ -1,4 +1,4 @@ -From 415d7b01833b5c4271a9f7c209b82a5e9198ff21 Mon Sep 17 00:00:00 2001 +From 71eae7038a475626427e1aeaa3ba8251ea3fbfa4 Mon Sep 17 00:00:00 2001 From: Michal Suchanek Date: Mon, 28 Sep 2020 23:02:02 +0200 Subject: [PATCH] sunxi: Enable SPI support on Orange Pi Zero diff --git a/0014-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch b/0011-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch similarity index 82% rename from 0014-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch rename to 0011-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch index 0dd9cbe..2a2d767 100644 --- a/0014-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch +++ b/0011-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch @@ -1,4 +1,4 @@ -From 42719d4568f2aec214e5d096fe0e096ba2000265 Mon Sep 17 00:00:00 2001 +From dd35ffaf8b307852f994b7adab00d0313acd973c Mon Sep 17 00:00:00 2001 From: Guillaume Gardet Date: Wed, 18 Nov 2020 13:42:04 +0000 Subject: [PATCH] Disable CONFIG_CMD_BTRFS in xilinx_zynqmp_virt_defconfig to @@ -9,10 +9,10 @@ Subject: [PATCH] Disable CONFIG_CMD_BTRFS in xilinx_zynqmp_virt_defconfig to 1 file changed, 1 insertion(+) diff --git a/configs/xilinx_zynqmp_virt_defconfig b/configs/xilinx_zynqmp_virt_defconfig -index e400cd4702..a490f04de3 100644 +index 0bf4b7d692..6e6d14b7f3 100644 --- a/configs/xilinx_zynqmp_virt_defconfig +++ b/configs/xilinx_zynqmp_virt_defconfig -@@ -59,6 +59,7 @@ CONFIG_CMD_TIME=y +@@ -60,6 +60,7 @@ CONFIG_CMD_TIME=y CONFIG_CMD_TIMER=y CONFIG_CMD_TPM=y CONFIG_CMD_EXT4_WRITE=y diff --git a/0012-smbios-Fix-table-when-no-string-is-.patch b/0012-smbios-Fix-table-when-no-string-is-.patch new file mode 100644 index 0000000..8ac728a --- /dev/null +++ b/0012-smbios-Fix-table-when-no-string-is-.patch @@ -0,0 +1,33 @@ +From c6623753e7523061f0301ccce32785020a02832e Mon Sep 17 00:00:00 2001 +From: Matthias Brugger +Date: Wed, 17 Mar 2021 12:20:32 +0100 +Subject: [PATCH] smbios: Fix table when no string is present + +When no string is present in a table, next_ptr points to the same +location as eos. When calculating the string table length, we would only +reserve one \0. By spec a SMBIOS table has to end with two \0\0 when no +strings a present. + +Signed-off-by: Matthias Brugger + +Series-to: sjg@chromium.org +Series-cc: bmeng.cn@gmail.com +Series-cc: xypron.glpk@gmx.de +Series-cc: u-boot@lists.denx.de +--- + lib/smbios.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/smbios.c b/lib/smbios.c +index 7d463c84a9..d21d37cdac 100644 +--- a/lib/smbios.c ++++ b/lib/smbios.c +@@ -153,7 +153,7 @@ static int smbios_add_prop(struct smbios_ctx *ctx, const char *prop) + static void smbios_set_eos(struct smbios_ctx *ctx, char *eos) + { + ctx->eos = eos; +- ctx->next_ptr = eos; ++ ctx->next_ptr = eos + 1; + ctx->last_str = NULL; + } + diff --git a/0015-rpi-Add-identifier-for-the-new-RPi4.patch b/0015-rpi-Add-identifier-for-the-new-RPi4.patch deleted file mode 100644 index ec4d093..0000000 --- a/0015-rpi-Add-identifier-for-the-new-RPi4.patch +++ /dev/null @@ -1,32 +0,0 @@ -From e9db4aca83892ceba98c7712b91e31ada2ae2010 Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:19 +0100 -Subject: [PATCH] rpi: Add identifier for the new RPi400 - -The Raspberry Pi Foundation released the new RPi400 which we want to -detect, so we can enable Ethernet on it and know the correct device tree -file name. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Peter Robinson -Tested-by: Peter Robinson ---- - board/raspberrypi/rpi/rpi.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c -index 6b1fa5fc14..b66698e4a9 100644 ---- a/board/raspberrypi/rpi/rpi.c -+++ b/board/raspberrypi/rpi/rpi.c -@@ -157,6 +157,11 @@ static const struct rpi_model rpi_models_new_scheme[] = { - DTB_DIR "bcm2711-rpi-4-b.dtb", - true, - }, -+ [0x13] = { -+ "400", -+ DTB_DIR "bcm2711-rpi-400.dtb", -+ true, -+ }, - }; - - static const struct rpi_model rpi_models_old_scheme[] = { diff --git a/0016-rpi-Add-identifier-for-the-new-CM4.patch b/0016-rpi-Add-identifier-for-the-new-CM4.patch deleted file mode 100644 index aa2e7fd..0000000 --- a/0016-rpi-Add-identifier-for-the-new-CM4.patch +++ /dev/null @@ -1,36 +0,0 @@ -From b47e23c6f7a461ff3943d17ff7b6f23af27d5130 Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:20 +0100 -Subject: [PATCH] rpi: Add identifier for the new CM4 - -The Raspberry Pi Foundation released the new Compute Module 4 which we -want to detect, so we can enable Ethernet on it and know the correct -device tree file name. - -Note that this sets the Ethernet option to true since the official CM4 -IO board has an Ethernet port. But that might not be the case when using -custom ones. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Peter Robinson -Tested-by: Peter Robinson ---- - board/raspberrypi/rpi/rpi.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c -index b66698e4a9..abcf41a5a8 100644 ---- a/board/raspberrypi/rpi/rpi.c -+++ b/board/raspberrypi/rpi/rpi.c -@@ -162,6 +162,11 @@ static const struct rpi_model rpi_models_new_scheme[] = { - DTB_DIR "bcm2711-rpi-400.dtb", - true, - }, -+ [0x14] = { -+ "Compute Module 4", -+ DTB_DIR "bcm2711-rpi-cm4.dtb", -+ true, -+ }, - }; - - static const struct rpi_model rpi_models_old_scheme[] = { diff --git a/0017-pci-pcie-brcmstb-Fix-inbound-window.patch b/0017-pci-pcie-brcmstb-Fix-inbound-window.patch deleted file mode 100644 index ed84608..0000000 --- a/0017-pci-pcie-brcmstb-Fix-inbound-window.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ce6a449a4b8721a295915187e5fa9fab0b686b3b Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:21 +0100 -Subject: [PATCH] pci: pcie-brcmstb: Fix inbound window configurations - -So far we've assumed a fixed configuration for inbound windows as we had -a single user for this controller. But the controller's DMA constraints -were improved starting with BCM2711's B1 revision of the SoC, notably -available in CM4 and Pi400. They allow for wider inbound windows. We can -now cover the whole address space, whereas before we where limited to -the lower 3GB. - -This information is passed to us through DT's 'dma-ranges' property and -it's specially important for us to honor it since some interactions with -the board's co-processor assume we're doing so (specifically the XHCI -firmware load operation, which is handled by the co-processor after -u-boot has correctly configured the PCIe controller). - -Signed-off-by: Nicolas Saenz Julienne -Tested-by: Peter Robinson ---- - drivers/pci/pcie_brcmstb.c | 12 +++++------- - 1 file changed, 5 insertions(+), 7 deletions(-) - -diff --git a/drivers/pci/pcie_brcmstb.c b/drivers/pci/pcie_brcmstb.c -index dade79e9c8..f6e8ad0d0a 100644 ---- a/drivers/pci/pcie_brcmstb.c -+++ b/drivers/pci/pcie_brcmstb.c -@@ -432,6 +432,7 @@ static int brcm_pcie_probe(struct udevice *dev) - struct pci_controller *hose = dev_get_uclass_priv(ctlr); - struct brcm_pcie *pcie = dev_get_priv(dev); - void __iomem *base = pcie->base; -+ struct pci_region region; - bool ssc_good = false; - int num_out_wins = 0; - u64 rc_bar2_offset, rc_bar2_size; -@@ -468,13 +469,10 @@ static int brcm_pcie_probe(struct udevice *dev) - MISC_CTRL_SCB_ACCESS_EN_MASK | - MISC_CTRL_CFG_READ_UR_MODE_MASK | - MISC_CTRL_MAX_BURST_SIZE_128); -- /* -- * TODO: When support for other SoCs than BCM2711 is added we may -- * need to use the base address and size(s) provided in the dma-ranges -- * property. -- */ -- rc_bar2_offset = 0; -- rc_bar2_size = 0xc0000000; -+ -+ pci_get_dma_regions(dev, ®ion, 0); -+ rc_bar2_offset = region.bus_start - region.phys_start; -+ rc_bar2_size = 1ULL << fls64(region.size - 1); - - tmp = lower_32_bits(rc_bar2_offset); - u32p_replace_bits(&tmp, brcm_pcie_encode_ibar_size(rc_bar2_size), diff --git a/0018-dm-Introduce-xxx_get_dma_range.patch b/0018-dm-Introduce-xxx_get_dma_range.patch deleted file mode 100644 index 0e5089b..0000000 --- a/0018-dm-Introduce-xxx_get_dma_range.patch +++ /dev/null @@ -1,357 +0,0 @@ -From c655ed2fd2cfa3a70783402a4cab78bbd0277858 Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:22 +0100 -Subject: [PATCH] dm: Introduce xxx_get_dma_range() - -Add the following functions to get a specific device's DMA ranges: - - dev_get_dma_range() - - ofnode_get_dma_range() - - of_get_dma_range() - - fdt_get_dma_range() -They are specially useful in oder to be able validate a physical address -space range into a bus's and to convert addresses from and to address -spaces. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Tested-by: Peter Robinson ---- - common/fdt_support.c | 73 +++++++++++++++++++++++++++++++++++++++ - drivers/core/of_addr.c | 78 ++++++++++++++++++++++++++++++++++++++++++ - drivers/core/ofnode.c | 9 +++++ - drivers/core/read.c | 6 ++++ - include/dm/of_addr.h | 17 +++++++++ - include/dm/ofnode.h | 16 +++++++++ - include/dm/read.h | 21 ++++++++++++ - include/fdt_support.h | 14 ++++++++ - 8 files changed, 234 insertions(+) - -diff --git a/common/fdt_support.c b/common/fdt_support.c -index 5ae75df3c6..bf855d26c8 100644 ---- a/common/fdt_support.c -+++ b/common/fdt_support.c -@@ -1342,6 +1342,79 @@ u64 fdt_translate_dma_address(const void *blob, int node_offset, - return __of_translate_address(blob, node_offset, in_addr, "dma-ranges"); - } - -+int fdt_get_dma_range(const void *blob, int node, phys_addr_t *cpu, -+ dma_addr_t *bus, u64 *size) -+{ -+ bool found_dma_ranges = false; -+ struct of_bus *bus_node; -+ const fdt32_t *ranges; -+ int na, ns, pna, pns; -+ int parent = node; -+ int ret = 0; -+ int len; -+ -+ /* Find the closest dma-ranges property */ -+ while (parent >= 0) { -+ ranges = fdt_getprop(blob, parent, "dma-ranges", &len); -+ -+ /* Ignore empty ranges, they imply no translation required */ -+ if (ranges && len > 0) -+ break; -+ -+ /* Once we find 'dma-ranges', then a missing one is an error */ -+ if (found_dma_ranges && !ranges) { -+ ret = -EINVAL; -+ goto out; -+ } -+ -+ if (ranges) -+ found_dma_ranges = true; -+ -+ parent = fdt_parent_offset(blob, parent); -+ } -+ -+ if (!ranges || parent < 0) { -+ debug("no dma-ranges found for node %s\n", -+ fdt_get_name(blob, node, NULL)); -+ ret = -ENOENT; -+ goto out; -+ } -+ -+ /* switch to that node */ -+ node = parent; -+ parent = fdt_parent_offset(blob, node); -+ if (parent < 0) { -+ printf("Found dma-ranges in root node, shoudln't happen\n"); -+ ret = -EINVAL; -+ goto out; -+ } -+ -+ /* Get the address sizes both for the bus and its parent */ -+ bus_node = of_match_bus(blob, node); -+ bus_node->count_cells(blob, node, &na, &ns); -+ if (!OF_CHECK_COUNTS(na, ns)) { -+ printf("%s: Bad cell count for %s\n", __FUNCTION__, -+ fdt_get_name(blob, node, NULL)); -+ return -EINVAL; -+ goto out; -+ } -+ -+ bus_node = of_match_bus(blob, parent); -+ bus_node->count_cells(blob, parent, &pna, &pns); -+ if (!OF_CHECK_COUNTS(pna, pns)) { -+ printf("%s: Bad cell count for %s\n", __FUNCTION__, -+ fdt_get_name(blob, parent, NULL)); -+ return -EINVAL; -+ goto out; -+ } -+ -+ *bus = fdt_read_number(ranges, na); -+ *cpu = fdt_translate_dma_address(blob, node, ranges + na); -+ *size = fdt_read_number(ranges + na + pna, ns); -+out: -+ return ret; -+} -+ - /** - * fdt_node_offset_by_compat_reg: Find a node that matches compatiable and - * who's reg property matches a physical cpu address -diff --git a/drivers/core/of_addr.c b/drivers/core/of_addr.c -index ca34d84922..703bc3e3f5 100644 ---- a/drivers/core/of_addr.c -+++ b/drivers/core/of_addr.c -@@ -325,6 +325,84 @@ u64 of_translate_dma_address(const struct device_node *dev, const __be32 *in_add - return __of_translate_address(dev, in_addr, "dma-ranges"); - } - -+int of_get_dma_range(const struct device_node *dev, phys_addr_t *cpu, -+ dma_addr_t *bus, u64 *size) -+{ -+ bool found_dma_ranges = false; -+ struct device_node *parent; -+ struct of_bus *bus_node; -+ int na, ns, pna, pns; -+ const __be32 *ranges; -+ int ret = 0; -+ int len; -+ -+ /* Find the closest dma-ranges property */ -+ dev = of_node_get(dev); -+ while (dev) { -+ ranges = of_get_property(dev, "dma-ranges", &len); -+ -+ /* Ignore empty ranges, they imply no translation required */ -+ if (ranges && len > 0) -+ break; -+ -+ /* Once we find 'dma-ranges', then a missing one is an error */ -+ if (found_dma_ranges && !ranges) { -+ ret = -EINVAL; -+ goto out; -+ } -+ -+ if (ranges) -+ found_dma_ranges = true; -+ -+ parent = of_get_parent(dev); -+ of_node_put(dev); -+ dev = parent; -+ } -+ -+ if (!dev || !ranges) { -+ debug("no dma-ranges found for node %s\n", -+ of_node_full_name(dev)); -+ ret = -ENOENT; -+ goto out; -+ } -+ -+ /* switch to that node */ -+ parent = of_get_parent(dev); -+ if (!parent) { -+ printf("Found dma-ranges in root node, shoudln't happen\n"); -+ ret = -EINVAL; -+ goto out; -+ } -+ -+ /* Get the address sizes both for the bus and its parent */ -+ bus_node = of_match_bus((struct device_node*)dev); -+ bus_node->count_cells(dev, &na, &ns); -+ if (!OF_CHECK_COUNTS(na, ns)) { -+ printf("Bad cell count for %s\n", of_node_full_name(dev)); -+ return -EINVAL; -+ goto out_parent; -+ } -+ -+ bus_node = of_match_bus(parent); -+ bus_node->count_cells(parent, &pna, &pns); -+ if (!OF_CHECK_COUNTS(pna, pns)) { -+ printf("Bad cell count for %s\n", of_node_full_name(parent)); -+ return -EINVAL; -+ goto out_parent; -+ } -+ -+ *bus = of_read_number(ranges, na); -+ *cpu = of_translate_dma_address(dev, ranges + na); -+ *size = of_read_number(ranges + na + pna, ns); -+ -+out_parent: -+ of_node_put(parent); -+out: -+ of_node_put(dev); -+ return ret; -+} -+ -+ - static int __of_address_to_resource(const struct device_node *dev, - const __be32 *addrp, u64 size, unsigned int flags, - const char *name, struct resource *r) -diff --git a/drivers/core/ofnode.c b/drivers/core/ofnode.c -index a68076bf35..15470d4875 100644 ---- a/drivers/core/ofnode.c -+++ b/drivers/core/ofnode.c -@@ -911,6 +911,15 @@ u64 ofnode_translate_dma_address(ofnode node, const fdt32_t *in_addr) - return fdt_translate_dma_address(gd->fdt_blob, ofnode_to_offset(node), in_addr); - } - -+int ofnode_get_dma_range(ofnode node, phys_addr_t *cpu, dma_addr_t *bus, u64 *size) -+{ -+ if (ofnode_is_np(node)) -+ return of_get_dma_range(ofnode_to_np(node), cpu, bus, size); -+ else -+ return fdt_get_dma_range(gd->fdt_blob, ofnode_to_offset(node), -+ cpu, bus, size); -+} -+ - int ofnode_device_is_compatible(ofnode node, const char *compat) - { - if (ofnode_is_np(node)) -diff --git a/drivers/core/read.c b/drivers/core/read.c -index 076125824c..0994fbd979 100644 ---- a/drivers/core/read.c -+++ b/drivers/core/read.c -@@ -338,6 +338,12 @@ u64 dev_translate_dma_address(const struct udevice *dev, const fdt32_t *in_addr) - return ofnode_translate_dma_address(dev_ofnode(dev), in_addr); - } - -+int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu, -+ dma_addr_t *bus, u64 *size) -+{ -+ return ofnode_get_dma_range(dev_ofnode(dev), cpu, bus, size); -+} -+ - int dev_read_alias_highest_id(const char *stem) - { - if (of_live_active()) -diff --git a/include/dm/of_addr.h b/include/dm/of_addr.h -index 3fa1ffce81..ee21d5cf4f 100644 ---- a/include/dm/of_addr.h -+++ b/include/dm/of_addr.h -@@ -44,6 +44,23 @@ u64 of_translate_address(const struct device_node *no, const __be32 *in_addr); - */ - u64 of_translate_dma_address(const struct device_node *no, const __be32 *in_addr); - -+ -+/** -+ * of_get_dma_range() - get dma-ranges for a specific DT node -+ * -+ * Get DMA ranges for a specifc node, this is useful to perform bus->cpu and -+ * cpu->bus address translations -+ * -+ * @param blob Pointer to device tree blob -+ * @param node_offset Node DT offset -+ * @param cpu Pointer to variable storing the range's cpu address -+ * @param bus Pointer to variable storing the range's bus address -+ * @param size Pointer to variable storing the range's size -+ * @return translated DMA address or OF_BAD_ADDR on error -+ */ -+int of_get_dma_range(const struct device_node *dev, phys_addr_t *cpu, -+ dma_addr_t *bus, u64 *size); -+ - /** - * of_get_address() - obtain an address from a node - * -diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h -index ced7f6ffb2..dc3dd84d9f 100644 ---- a/include/dm/ofnode.h -+++ b/include/dm/ofnode.h -@@ -939,6 +939,22 @@ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr); - */ - u64 ofnode_translate_dma_address(ofnode node, const fdt32_t *in_addr); - -+/** -+ * ofnode_get_dma_range() - get dma-ranges for a specific DT node -+ * -+ * Get DMA ranges for a specifc node, this is useful to perform bus->cpu and -+ * cpu->bus address translations -+ * -+ * @param blob Pointer to device tree blob -+ * @param node_offset Node DT offset -+ * @param cpu Pointer to variable storing the range's cpu address -+ * @param bus Pointer to variable storing the range's bus address -+ * @param size Pointer to variable storing the range's size -+ * @return translated DMA address or OF_BAD_ADDR on error -+ */ -+int ofnode_get_dma_range(ofnode node, phys_addr_t *cpu, dma_addr_t *bus, -+ u64 *size); -+ - /** - * ofnode_device_is_compatible() - check if the node is compatible with compat - * -diff --git a/include/dm/read.h b/include/dm/read.h -index 0585eb1228..46e902c57d 100644 ---- a/include/dm/read.h -+++ b/include/dm/read.h -@@ -664,6 +664,21 @@ u64 dev_translate_address(const struct udevice *dev, const fdt32_t *in_addr); - u64 dev_translate_dma_address(const struct udevice *dev, - const fdt32_t *in_addr); - -+/** -+ * dev_get_dma_range() - Get a device's DMA constraints -+ * -+ * Provide the address bases and size of the linear mapping between the CPU and -+ * a device's BUS address space. -+ * -+ * @dev: device giving the context in which to translate the DMA address -+ * @cpu: base address for CPU's view of memory -+ * @bus: base address for BUS's view of memory -+ * @size: size of the address space -+ * @return 0 if ok, negative on error -+ */ -+int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu, -+ dma_addr_t *bus, u64 *size); -+ - /** - * dev_read_alias_highest_id - Get highest alias id for the given stem - * @stem: Alias stem to be examined -@@ -1004,6 +1019,12 @@ static inline u64 dev_translate_dma_address(const struct udevice *dev, - return ofnode_translate_dma_address(dev_ofnode(dev), in_addr); - } - -+static inline int dev_get_dma_range(const struct udevice *dev, phys_addr_t *cpu, -+ dma_addr_t *bus, u64 *size) -+{ -+ return ofnode_get_dma_range(dev_ofnode(dev), cpu, bus, size); -+} -+ - static inline int dev_read_alias_highest_id(const char *stem) - { - if (!CONFIG_IS_ENABLED(OF_LIBFDT)) -diff --git a/include/fdt_support.h b/include/fdt_support.h -index dbbac0fb6a..46eb1dbbb2 100644 ---- a/include/fdt_support.h -+++ b/include/fdt_support.h -@@ -260,6 +260,20 @@ u64 fdt_translate_address(const void *blob, int node_offset, - u64 fdt_translate_dma_address(const void *blob, int node_offset, - const __be32 *in_addr); - -+/** -+ * Get DMA ranges for a specifc node, this is useful to perform bus->cpu and -+ * cpu->bus address translations -+ * -+ * @param blob Pointer to device tree blob -+ * @param node_offset Node DT offset -+ * @param cpu Pointer to variable storing the range's cpu address -+ * @param bus Pointer to variable storing the range's bus address -+ * @param size Pointer to variable storing the range's size -+ * @return translated DMA address or OF_BAD_ADDR on error -+ */ -+int fdt_get_dma_range(const void *blob, int node_offset, phys_addr_t *cpu, -+ dma_addr_t *bus, u64 *size); -+ - int fdt_node_offset_by_compat_reg(void *blob, const char *compat, - phys_addr_t compat_off); - int fdt_alloc_phandle(void *blob); diff --git a/0019-dm-test-Add-test-case-for-dev_get_d.patch b/0019-dm-test-Add-test-case-for-dev_get_d.patch deleted file mode 100644 index 7304f51..0000000 --- a/0019-dm-test-Add-test-case-for-dev_get_d.patch +++ /dev/null @@ -1,113 +0,0 @@ -From f0b29f058d70dee8b1173da0559a3e16da919950 Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:23 +0100 -Subject: [PATCH] dm: test: Add test case for dev_get_dma_ranges() - -Introduce some new nodes in sandbox's test device-tree and dm tests in -order to validate dev_get_dma_range(). - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Tested-by: Peter Robinson ---- - arch/sandbox/dts/test.dts | 17 ++++++++++++++ - test/dm/Makefile | 1 + - test/dm/read.c | 49 +++++++++++++++++++++++++++++++++++++++ - 3 files changed, 67 insertions(+) - create mode 100644 test/dm/read.c - -diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts -index f3b766271d..3a3b51f83b 100644 ---- a/arch/sandbox/dts/test.dts -+++ b/arch/sandbox/dts/test.dts -@@ -292,6 +292,23 @@ - test5-gpios = <&gpio_a 19>; - }; - -+ mmio-bus@0 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ compatible = "denx,u-boot-test-bus"; -+ dma-ranges = <0x10000000 0x00000000 0x00040000>; -+ -+ subnode@0 { -+ compatible = "denx,u-boot-fdt-test"; -+ }; -+ }; -+ -+ mmio-bus@1 { -+ #address-cells = <1>; -+ #size-cells = <1>; -+ compatible = "denx,u-boot-test-bus"; -+ }; -+ - acpi_test1: acpi-test { - compatible = "denx,u-boot-acpi-test"; - acpi-ssdt-test-data = "ab"; -diff --git a/test/dm/Makefile b/test/dm/Makefile -index 46e076ed09..5c52d8b6ea 100644 ---- a/test/dm/Makefile -+++ b/test/dm/Makefile -@@ -15,6 +15,7 @@ obj-$(CONFIG_UT_DM) += test-fdt.o - obj-$(CONFIG_UT_DM) += test-uclass.o - - obj-$(CONFIG_UT_DM) += core.o -+obj-$(CONFIG_UT_DM) += read.o - ifneq ($(CONFIG_SANDBOX),) - obj-$(CONFIG_ACPIGEN) += acpi.o - obj-$(CONFIG_ACPIGEN) += acpigen.o -diff --git a/test/dm/read.c b/test/dm/read.c -new file mode 100644 -index 0000000000..7768aa2968 ---- /dev/null -+++ b/test/dm/read.c -@@ -0,0 +1,49 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * Copyright (c) 2020 Nicolas Saenz Julienne -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int dm_test_dma_ranges(struct unit_test_state *uts) -+{ -+ struct udevice *dev; -+ phys_addr_t cpu; -+ dma_addr_t bus; -+ ofnode node; -+ u64 size; -+ -+ /* dma-ranges are on the device's node */ -+ node = ofnode_path("/mmio-bus@0"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); -+ ut_assertok(dev_get_dma_range(dev, &cpu, &bus, &size)); -+ ut_asserteq_64(0x40000, size); -+ ut_asserteq_64(0x0, cpu); -+ ut_asserteq_64(0x10000000, bus); -+ -+ /* dma-ranges are on the bus' node */ -+ node = ofnode_path("/mmio-bus@0/subnode@0"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); -+ ut_assertok(dev_get_dma_range(dev, &cpu, &bus, &size)); -+ ut_asserteq_64(0x40000, size); -+ ut_asserteq_64(0x0, cpu); -+ ut_asserteq_64(0x10000000, bus); -+ -+ /* No dma-ranges available */ -+ node = ofnode_path("/mmio-bus@1"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); -+ ut_asserteq(-ENOENT, dev_get_dma_range(dev, &cpu, &bus, &size)); -+ -+ return 0; -+} -+DM_TEST(dm_test_dma_ranges, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); diff --git a/0020-dm-Introduce-DMA-constraints-into-t.patch b/0020-dm-Introduce-DMA-constraints-into-t.patch deleted file mode 100644 index 7cf1254..0000000 --- a/0020-dm-Introduce-DMA-constraints-into-t.patch +++ /dev/null @@ -1,140 +0,0 @@ -From d327db89d06e0532645a2ec5151aaca7299939fd Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:24 +0100 -Subject: [PATCH] dm: Introduce DMA constraints into the core device model - -Calculating the DMA offset between a bus address space and CPU's every -time we call phys_to_bus() and bus_to_phys() isn't ideal performance -wise, as it implies traversing the device tree from the device's node up -to the root. Since this information is static and available before the -device's initialization, parse it before the probe call an provide the -DMA offset in 'struct udevice' for the address translation code to use -it. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Tested-by: Peter Robinson ---- - drivers/core/Kconfig | 10 ++++++++++ - drivers/core/device.c | 41 +++++++++++++++++++++++++++++++++++++++++ - include/dm/device.h | 13 +++++++++++++ - 3 files changed, 64 insertions(+) - -diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig -index ffae6f9795..295cf2dd00 100644 ---- a/drivers/core/Kconfig -+++ b/drivers/core/Kconfig -@@ -113,6 +113,16 @@ config SPL_DM_SEQ_ALIAS - numbered devices (e.g. serial0 = &serial0). This feature can be - disabled if it is not required, to save code space in SPL. - -+config DM_DMA -+ bool "Support per-device DMA constraints" -+ depends on DM -+ default n -+ help -+ Enable this to extract per-device DMA constraints, only supported on -+ device-tree systems for now. This is needed in order translate -+ addresses on systems where different buses have different views of -+ the physical address space. -+ - config REGMAP - bool "Support register maps" - depends on DM -diff --git a/drivers/core/device.c b/drivers/core/device.c -index 4b3dcb3b37..788ce6046a 100644 ---- a/drivers/core/device.c -+++ b/drivers/core/device.c -@@ -421,6 +421,43 @@ fail: - return ret; - } - -+/** -+ * device_get_dma_constraints() - Populate device's DMA constraints -+ * -+ * Gets a device's DMA constraints from firmware. This information is later -+ * used by drivers to translate physcal addresses to the device's bus address -+ * space. For now only device-tree is supported. -+ * -+ * @dev: Pointer to target device -+ * Return: 0 if OK or if no DMA constraints were found, error otherwise -+ */ -+static int device_get_dma_constraints(struct udevice *dev) -+{ -+ struct udevice *parent = dev->parent; -+ phys_addr_t cpu = 0; -+ dma_addr_t bus = 0; -+ u64 size = 0; -+ int ret; -+ -+ if (!CONFIG_IS_ENABLED(DM_DMA) || !parent || !dev_has_of_node(parent)) -+ return 0; -+ -+ /* -+ * We start parsing for dma-ranges from the device's bus node. This is -+ * specially important on nested buses. -+ */ -+ ret = dev_get_dma_range(parent, &cpu, &bus, &size); -+ /* Don't return an error if no 'dma-ranges' were found */ -+ if (ret && ret != -ENOENT) { -+ dm_warn("%s: failed to get DMA range, %d\n", dev->name, ret); -+ return ret; -+ } -+ -+ dev_set_dma_offset(dev, cpu - bus); -+ -+ return 0; -+} -+ - int device_probe(struct udevice *dev) - { - const struct driver *drv; -@@ -482,6 +519,10 @@ int device_probe(struct udevice *dev) - goto fail; - } - -+ ret = device_get_dma_constraints(dev); -+ if (ret) -+ goto fail; -+ - ret = uclass_pre_probe_device(dev); - if (ret) - goto fail; -diff --git a/include/dm/device.h b/include/dm/device.h -index 5bef484247..b27889af01 100644 ---- a/include/dm/device.h -+++ b/include/dm/device.h -@@ -138,6 +138,8 @@ enum { - * When CONFIG_DEVRES is enabled, devm_kmalloc() and friends will - * add to this list. Memory so-allocated will be freed - * automatically when the device is removed / unbound -+ * @dma_offset: Offset between the physical address space (CPU's) and the -+ * device's bus address space - */ - struct udevice { - const struct driver *driver; -@@ -161,6 +163,9 @@ struct udevice { - #ifdef CONFIG_DEVRES - struct list_head devres_head; - #endif -+#if CONFIG_IS_ENABLED(DM_DMA) -+ ulong dma_offset; -+#endif - }; - - /* Maximum sequence number supported */ -@@ -172,6 +177,14 @@ struct udevice { - /* Returns non-zero if the device is active (probed and not removed) */ - #define device_active(dev) ((dev)->flags & DM_FLAG_ACTIVATED) - -+#if CONFIG_IS_ENABLED(DM_DMA) -+#define dev_set_dma_offset(_dev, _offset) _dev->dma_offset = _offset -+#define dev_get_dma_offset(_dev) _dev->dma_offset -+#else -+#define dev_set_dma_offset(_dev, _offset) -+#define dev_get_dma_offset(_dev) 0 -+#endif -+ - static inline int dev_of_offset(const struct udevice *dev) - { - return ofnode_to_offset(dev->node); diff --git a/0021-dm-test-Add-test-case-for-dev-dma_o.patch b/0021-dm-test-Add-test-case-for-dev-dma_o.patch deleted file mode 100644 index 3a8e0dc..0000000 --- a/0021-dm-test-Add-test-case-for-dev-dma_o.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 763aa398ef98782c2801611b9918ea84375b2b79 Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:25 +0100 -Subject: [PATCH] dm: test: Add test case for dev->dma_offset - -Add test to validate dev->dma_offset is properly set on devices. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Tested-by: Peter Robinson ---- - arch/sandbox/dts/test.dts | 4 ++++ - configs/sandbox64_defconfig | 1 + - configs/sandbox_defconfig | 1 + - configs/sandbox_flattree_defconfig | 1 + - configs/sandbox_spl_defconfig | 1 + - test/dm/core.c | 30 ++++++++++++++++++++++++++++++ - 6 files changed, 38 insertions(+) - -diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts -index 3a3b51f83b..78f0100282 100644 ---- a/arch/sandbox/dts/test.dts -+++ b/arch/sandbox/dts/test.dts -@@ -307,6 +307,10 @@ - #address-cells = <1>; - #size-cells = <1>; - compatible = "denx,u-boot-test-bus"; -+ -+ subnode@0 { -+ compatible = "denx,u-boot-fdt-test"; -+ }; - }; - - acpi_test1: acpi-test { -diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig -index 1afe9a4665..f250723827 100644 ---- a/configs/sandbox64_defconfig -+++ b/configs/sandbox64_defconfig -@@ -93,6 +93,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0" - CONFIG_BOOTP_SEND_HOSTNAME=y - CONFIG_NETCONSOLE=y - CONFIG_IP_DEFRAG=y -+CONFIG_DM_DMA=y - CONFIG_REGMAP=y - CONFIG_SYSCON=y - CONFIG_DEVRES=y -diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig -index 5bc9186d6e..e40f619e75 100644 ---- a/configs/sandbox_defconfig -+++ b/configs/sandbox_defconfig -@@ -107,6 +107,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0" - CONFIG_BOOTP_SEND_HOSTNAME=y - CONFIG_NETCONSOLE=y - CONFIG_IP_DEFRAG=y -+CONFIG_DM_DMA=y - CONFIG_REGMAP=y - CONFIG_SYSCON=y - CONFIG_DEVRES=y -diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig -index edca7f1808..f5923bf713 100644 ---- a/configs/sandbox_flattree_defconfig -+++ b/configs/sandbox_flattree_defconfig -@@ -75,6 +75,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0" - CONFIG_BOOTP_SEND_HOSTNAME=y - CONFIG_NETCONSOLE=y - CONFIG_IP_DEFRAG=y -+CONFIG_DM_DMA=y - CONFIG_REGMAP=y - CONFIG_SYSCON=y - CONFIG_DEVRES=y -diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig -index 479f0226e3..0a4815770c 100644 ---- a/configs/sandbox_spl_defconfig -+++ b/configs/sandbox_spl_defconfig -@@ -94,6 +94,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y - CONFIG_NETCONSOLE=y - CONFIG_IP_DEFRAG=y - CONFIG_SPL_DM=y -+CONFIG_DM_DMA=y - CONFIG_REGMAP=y - CONFIG_SPL_REGMAP=y - CONFIG_SYSCON=y -diff --git a/test/dm/core.c b/test/dm/core.c -index 6f380a574c..8ca49d09ee 100644 ---- a/test/dm/core.c -+++ b/test/dm/core.c -@@ -1066,3 +1066,33 @@ static int dm_test_inactive_child(struct unit_test_state *uts) - return 0; - } - DM_TEST(dm_test_inactive_child, UT_TESTF_SCAN_PDATA); -+ -+static int dm_test_dma_offset(struct unit_test_state *uts) -+{ -+ struct udevice *dev; -+ ofnode node; -+ -+ /* Make sure the bus's dma-ranges aren't taken into account here */ -+ node = ofnode_path("/mmio-bus@0"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); -+ ut_asserteq_64(0, dev->dma_offset); -+ -+ /* Device behind a bus with dma-ranges */ -+ node = ofnode_path("/mmio-bus@0/subnode@0"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); -+ ut_asserteq_64(-0x10000000ULL, dev->dma_offset); -+ -+ /* This one has no dma-ranges */ -+ node = ofnode_path("/mmio-bus@1"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); -+ node = ofnode_path("/mmio-bus@1/subnode@0"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); -+ ut_asserteq_64(0, dev->dma_offset); -+ -+ return 0; -+} -+DM_TEST(dm_test_dma_offset, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); diff --git a/0022-dm-Introduce-dev_phys_to_bus-dev_bu.patch b/0022-dm-Introduce-dev_phys_to_bus-dev_bu.patch deleted file mode 100644 index 7022b8a..0000000 --- a/0022-dm-Introduce-dev_phys_to_bus-dev_bu.patch +++ /dev/null @@ -1,47 +0,0 @@ -From c9ac0a0da12755016d1fbfe2a31bab0ddcdddfda Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:26 +0100 -Subject: [PATCH] dm: Introduce dev_phys_to_bus()/dev_bus_to_phys() - -These functions, instead of relying on hard-coded platform-specific -address translations, make use of the DMA constraints provided by the DM -core. This allows for per-device translations. - -We can't yet get rid of the legacy phys_to_bus()/bus_to_phys() -implementations as some of its users are not integrated into the -device model. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Reviewed-by: Stefan Roese -Tested-by: Peter Robinson ---- - include/phys2bus.h | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/include/phys2bus.h b/include/phys2bus.h -index dc9b8e5a25..866b8b51a8 100644 ---- a/include/phys2bus.h -+++ b/include/phys2bus.h -@@ -21,4 +21,21 @@ static inline unsigned long bus_to_phys(unsigned long bus) - } - #endif - -+#if CONFIG_IS_ENABLED(DM) -+#include -+ -+static inline dma_addr_t dev_phys_to_bus(struct udevice *dev, phys_addr_t phys) -+{ -+ return phys - dev_get_dma_offset(dev); -+} -+ -+static inline phys_addr_t dev_bus_to_phys(struct udevice *dev, dma_addr_t bus) -+{ -+ return bus + dev_get_dma_offset(dev); -+} -+#else -+#define dev_phys_to_bus(_, _addr) _addr -+#define dev_bus_to_phys(_, _addr) _addr -+#endif -+ - #endif diff --git a/0023-dm-test-Add-test-case-for-dev_phys_.patch b/0023-dm-test-Add-test-case-for-dev_phys_.patch deleted file mode 100644 index 8235682..0000000 --- a/0023-dm-test-Add-test-case-for-dev_phys_.patch +++ /dev/null @@ -1,73 +0,0 @@ -From f169928dad5b95413fefc3749e54a39bf481c401 Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:27 +0100 -Subject: [PATCH] dm: test: Add test case for - dev_phys_to_bus()/dev_bus_to_phys() - -By reusing DT nodes already available in sandbox's test DT introduce a -test to validate dev_phys_to_bus()/dev_bus_to_phys(). - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Tested-by: Peter Robinson ---- - test/dm/Makefile | 1 + - test/dm/phys2bus.c | 37 +++++++++++++++++++++++++++++++++++++ - 2 files changed, 38 insertions(+) - create mode 100644 test/dm/phys2bus.c - -diff --git a/test/dm/Makefile b/test/dm/Makefile -index 5c52d8b6ea..ac86abaa88 100644 ---- a/test/dm/Makefile -+++ b/test/dm/Makefile -@@ -16,6 +16,7 @@ obj-$(CONFIG_UT_DM) += test-uclass.o - - obj-$(CONFIG_UT_DM) += core.o - obj-$(CONFIG_UT_DM) += read.o -+obj-$(CONFIG_UT_DM) += phys2bus.o - ifneq ($(CONFIG_SANDBOX),) - obj-$(CONFIG_ACPIGEN) += acpi.o - obj-$(CONFIG_ACPIGEN) += acpigen.o -diff --git a/test/dm/phys2bus.c b/test/dm/phys2bus.c -new file mode 100644 -index 0000000000..342f2fa8eb ---- /dev/null -+++ b/test/dm/phys2bus.c -@@ -0,0 +1,37 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * Copyright (c) 2020 Nicolas Saenz Julienne -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static int dm_test_phys_to_bus(struct unit_test_state *uts) -+{ -+ struct udevice *dev; -+ ofnode node; -+ -+ node = ofnode_path("/mmio-bus@0"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_BUS, node, &dev)); -+ /* In this case it should be transparent, no dma-ranges in parent bus */ -+ ut_asserteq_addr((void*)0xfffffULL, (void*)dev_phys_to_bus(dev, 0xfffff)); -+ ut_asserteq_addr((void*)0xfffffULL, (void*)(ulong)dev_bus_to_phys(dev, 0xfffff)); -+ -+ node = ofnode_path("/mmio-bus@0/subnode@0"); -+ ut_assert(ofnode_valid(node)); -+ ut_assertok(uclass_get_device_by_ofnode(UCLASS_TEST_FDT, node, &dev)); -+ ut_asserteq_addr((void*)0x100fffffULL, (void*)dev_phys_to_bus(dev, 0xfffff)); -+ ut_asserteq_addr((void*)0xfffffULL, (void*)(ulong)dev_bus_to_phys(dev, 0x100fffff)); -+ -+ return 0; -+} -+DM_TEST(dm_test_phys_to_bus, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); diff --git a/0024-xhci-translate-virtual-addresses-in.patch b/0024-xhci-translate-virtual-addresses-in.patch deleted file mode 100644 index 80146e9..0000000 --- a/0024-xhci-translate-virtual-addresses-in.patch +++ /dev/null @@ -1,319 +0,0 @@ -From bc8e6db54d2f5a51b2e74af47a79a0a366f3c611 Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:28 +0100 -Subject: [PATCH] xhci: translate virtual addresses into the bus's address - space - -So far we've been content with passing physical addresses when -configuring memory addresses into XHCI 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 xhci_virt_to_bus() and xhci_bus_to_virt() to cater with these -limitations, and make sure we don't break non DM users. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Reviewed-by: Stefan Roese -Tested-by: Peter Robinson ---- - drivers/usb/host/xhci-mem.c | 45 +++++++++++++++++++----------------- - drivers/usb/host/xhci-ring.c | 13 +++++++---- - drivers/usb/host/xhci.c | 4 ++-- - include/usb/xhci.h | 20 +++++++++++++++- - 4 files changed, 53 insertions(+), 29 deletions(-) - -diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c -index b002d6f166..83147d51b5 100644 ---- a/drivers/usb/host/xhci-mem.c -+++ b/drivers/usb/host/xhci-mem.c -@@ -110,7 +110,7 @@ static void xhci_scratchpad_free(struct xhci_ctrl *ctrl) - - ctrl->dcbaa->dev_context_ptrs[0] = 0; - -- free((void *)(uintptr_t)le64_to_cpu(ctrl->scratchpad->sp_array[0])); -+ free(xhci_bus_to_virt(ctrl, le64_to_cpu(ctrl->scratchpad->sp_array[0]))); - free(ctrl->scratchpad->sp_array); - free(ctrl->scratchpad); - ctrl->scratchpad = NULL; -@@ -216,8 +216,8 @@ static void *xhci_malloc(unsigned int size) - * @param link_trbs flag to indicate whether to link the trbs or NOT - * @return none - */ --static void xhci_link_segments(struct xhci_segment *prev, -- struct xhci_segment *next, bool link_trbs) -+static void xhci_link_segments(struct xhci_ctrl *ctrl, struct xhci_segment *prev, -+ struct xhci_segment *next, bool link_trbs) - { - u32 val; - u64 val_64 = 0; -@@ -226,7 +226,7 @@ static void xhci_link_segments(struct xhci_segment *prev, - return; - prev->next = next; - if (link_trbs) { -- val_64 = virt_to_phys(next->trbs); -+ val_64 = xhci_virt_to_bus(ctrl, next->trbs); - prev->trbs[TRBS_PER_SEGMENT-1].link.segment_ptr = - cpu_to_le64(val_64); - -@@ -304,7 +304,8 @@ static struct xhci_segment *xhci_segment_alloc(void) - * @param link_trbs flag to indicate whether to link the trbs or NOT - * @return pointer to the newly created RING - */ --struct xhci_ring *xhci_ring_alloc(unsigned int num_segs, bool link_trbs) -+struct xhci_ring *xhci_ring_alloc(struct xhci_ctrl *ctrl, unsigned int num_segs, -+ bool link_trbs) - { - struct xhci_ring *ring; - struct xhci_segment *prev; -@@ -327,12 +328,12 @@ struct xhci_ring *xhci_ring_alloc(unsigned int num_segs, bool link_trbs) - next = xhci_segment_alloc(); - BUG_ON(!next); - -- xhci_link_segments(prev, next, link_trbs); -+ xhci_link_segments(ctrl, prev, next, link_trbs); - - prev = next; - num_segs--; - } -- xhci_link_segments(prev, ring->first_seg, link_trbs); -+ xhci_link_segments(ctrl, prev, ring->first_seg, link_trbs); - if (link_trbs) { - /* See section 4.9.2.1 and 6.4.4.1 */ - prev->trbs[TRBS_PER_SEGMENT-1].link.control |= -@@ -354,6 +355,7 @@ static int xhci_scratchpad_alloc(struct xhci_ctrl *ctrl) - struct xhci_hccr *hccr = ctrl->hccr; - struct xhci_hcor *hcor = ctrl->hcor; - struct xhci_scratchpad *scratchpad; -+ uint64_t val_64; - int num_sp; - uint32_t page_size; - void *buf; -@@ -371,8 +373,9 @@ static int xhci_scratchpad_alloc(struct xhci_ctrl *ctrl) - scratchpad->sp_array = xhci_malloc(num_sp * sizeof(u64)); - if (!scratchpad->sp_array) - goto fail_sp2; -- ctrl->dcbaa->dev_context_ptrs[0] = -- cpu_to_le64((uintptr_t)scratchpad->sp_array); -+ -+ val_64 = xhci_virt_to_bus(ctrl, scratchpad->sp_array); -+ ctrl->dcbaa->dev_context_ptrs[0] = cpu_to_le64(val_64); - - xhci_flush_cache((uintptr_t)&ctrl->dcbaa->dev_context_ptrs[0], - sizeof(ctrl->dcbaa->dev_context_ptrs[0])); -@@ -393,8 +396,8 @@ static int xhci_scratchpad_alloc(struct xhci_ctrl *ctrl) - xhci_flush_cache((uintptr_t)buf, num_sp * page_size); - - for (i = 0; i < num_sp; i++) { -- uintptr_t ptr = (uintptr_t)buf + i * page_size; -- scratchpad->sp_array[i] = cpu_to_le64(ptr); -+ val_64 = xhci_virt_to_bus(ctrl, buf + i * page_size); -+ scratchpad->sp_array[i] = cpu_to_le64(val_64); - } - - xhci_flush_cache((uintptr_t)scratchpad->sp_array, -@@ -484,9 +487,9 @@ int xhci_alloc_virt_device(struct xhci_ctrl *ctrl, unsigned int slot_id) - } - - /* Allocate endpoint 0 ring */ -- virt_dev->eps[0].ring = xhci_ring_alloc(1, true); -+ virt_dev->eps[0].ring = xhci_ring_alloc(ctrl, 1, true); - -- byte_64 = virt_to_phys(virt_dev->out_ctx->bytes); -+ byte_64 = xhci_virt_to_bus(ctrl, virt_dev->out_ctx->bytes); - - /* Point to output device context in dcbaa. */ - ctrl->dcbaa->dev_context_ptrs[slot_id] = cpu_to_le64(byte_64); -@@ -522,15 +525,15 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr, - return -ENOMEM; - } - -- val_64 = virt_to_phys(ctrl->dcbaa); -+ val_64 = xhci_virt_to_bus(ctrl, ctrl->dcbaa); - /* Set the pointer in DCBAA register */ - xhci_writeq(&hcor->or_dcbaap, val_64); - - /* Command ring control pointer register initialization */ -- ctrl->cmd_ring = xhci_ring_alloc(1, true); -+ ctrl->cmd_ring = xhci_ring_alloc(ctrl, 1, true); - - /* Set the address in the Command Ring Control register */ -- trb_64 = virt_to_phys(ctrl->cmd_ring->first_seg->trbs); -+ trb_64 = xhci_virt_to_bus(ctrl, ctrl->cmd_ring->first_seg->trbs); - val_64 = xhci_readq(&hcor->or_crcr); - val_64 = (val_64 & (u64) CMD_RING_RSVD_BITS) | - (trb_64 & (u64) ~CMD_RING_RSVD_BITS) | -@@ -551,7 +554,7 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr, - ctrl->ir_set = &ctrl->run_regs->ir_set[0]; - - /* Event ring does not maintain link TRB */ -- ctrl->event_ring = xhci_ring_alloc(ERST_NUM_SEGS, false); -+ ctrl->event_ring = xhci_ring_alloc(ctrl, ERST_NUM_SEGS, false); - ctrl->erst.entries = xhci_malloc(sizeof(struct xhci_erst_entry) * - ERST_NUM_SEGS); - -@@ -560,8 +563,8 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr, - for (val = 0, seg = ctrl->event_ring->first_seg; - val < ERST_NUM_SEGS; - val++) { -- trb_64 = virt_to_phys(seg->trbs); - struct xhci_erst_entry *entry = &ctrl->erst.entries[val]; -+ trb_64 = xhci_virt_to_bus(ctrl, seg->trbs); - entry->seg_addr = cpu_to_le64(trb_64); - entry->seg_size = cpu_to_le32(TRBS_PER_SEGMENT); - entry->rsvd = 0; -@@ -570,7 +573,7 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr, - xhci_flush_cache((uintptr_t)ctrl->erst.entries, - ERST_NUM_SEGS * sizeof(struct xhci_erst_entry)); - -- deq = virt_to_phys(ctrl->event_ring->dequeue); -+ deq = xhci_virt_to_bus(ctrl, ctrl->event_ring->dequeue); - - /* Update HC event ring dequeue pointer */ - xhci_writeq(&ctrl->ir_set->erst_dequeue, -@@ -585,7 +588,7 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr, - /* this is the event ring segment table pointer */ - val_64 = xhci_readq(&ctrl->ir_set->erst_base); - val_64 &= ERST_PTR_MASK; -- val_64 |= virt_to_phys(ctrl->erst.entries) & ~ERST_PTR_MASK; -+ val_64 |= xhci_virt_to_bus(ctrl, ctrl->erst.entries) & ~ERST_PTR_MASK; - - xhci_writeq(&ctrl->ir_set->erst_base, val_64); - -@@ -848,7 +851,7 @@ void xhci_setup_addressable_virt_dev(struct xhci_ctrl *ctrl, - /* EP 0 can handle "burst" sizes of 1, so Max Burst Size field is 0 */ - ep0_ctx->ep_info2 |= cpu_to_le32(MAX_BURST(0) | ERROR_COUNT(3)); - -- trb_64 = virt_to_phys(virt_dev->eps[0].ring->first_seg->trbs); -+ trb_64 = xhci_virt_to_bus(ctrl, virt_dev->eps[0].ring->first_seg->trbs); - ep0_ctx->deq = cpu_to_le64(trb_64 | virt_dev->eps[0].ring->cycle_state); - - /* -diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c -index d708fc928b..6b31ad4398 100644 ---- a/drivers/usb/host/xhci-ring.c -+++ b/drivers/usb/host/xhci-ring.c -@@ -275,10 +275,13 @@ void xhci_queue_command(struct xhci_ctrl *ctrl, u8 *ptr, u32 slot_id, - u32 ep_index, trb_type cmd) - { - u32 fields[4]; -- u64 val_64 = virt_to_phys(ptr); -+ u64 val_64 = 0; - - BUG_ON(prepare_ring(ctrl, ctrl->cmd_ring, EP_STATE_RUNNING)); - -+ if (ptr) -+ val_64 = xhci_virt_to_bus(ctrl, ptr); -+ - fields[0] = lower_32_bits(val_64); - fields[1] = upper_32_bits(val_64); - fields[2] = 0; -@@ -401,7 +404,7 @@ void xhci_acknowledge_event(struct xhci_ctrl *ctrl) - - /* Inform the hardware */ - xhci_writeq(&ctrl->ir_set->erst_dequeue, -- virt_to_phys(ctrl->event_ring->dequeue) | ERST_EHB); -+ xhci_virt_to_bus(ctrl, ctrl->event_ring->dequeue) | ERST_EHB); - } - - /** -@@ -579,7 +582,7 @@ int xhci_bulk_tx(struct usb_device *udev, unsigned long pipe, - u64 addr; - int ret; - u32 trb_fields[4]; -- u64 val_64 = virt_to_phys(buffer); -+ u64 val_64 = xhci_virt_to_bus(ctrl, buffer); - void *last_transfer_trb_addr; - int available_length; - -@@ -723,7 +726,7 @@ again: - return -ETIMEDOUT; - } - -- if ((uintptr_t)(le64_to_cpu(event->trans_event.buffer)) -+ if ((uintptr_t)(le64_to_cpu(xhci_bus_to_virt(ctrl, event->trans_event.buffer))) - != (uintptr_t)last_transfer_trb_addr) { - available_length -= - (int)EVENT_TRB_LEN(le32_to_cpu(event->trans_event.transfer_len)); -@@ -884,7 +887,7 @@ int xhci_ctrl_tx(struct usb_device *udev, unsigned long pipe, - if (length > 0) { - if (req->requesttype & USB_DIR_IN) - field |= TRB_DIR_IN; -- buf_64 = virt_to_phys(buffer); -+ buf_64 = xhci_virt_to_bus(ctrl, buffer); - - trb_fields[0] = lower_32_bits(buf_64); - trb_fields[1] = upper_32_bits(buf_64); -diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c -index 7080f8fabe..d27ac01c83 100644 ---- a/drivers/usb/host/xhci.c -+++ b/drivers/usb/host/xhci.c -@@ -604,7 +604,7 @@ static int xhci_set_configuration(struct usb_device *udev) - ep_ctx[ep_index] = xhci_get_ep_ctx(ctrl, in_ctx, ep_index); - - /* Allocate the ep rings */ -- virt_dev->eps[ep_index].ring = xhci_ring_alloc(1, true); -+ virt_dev->eps[ep_index].ring = xhci_ring_alloc(ctrl, 1, true); - if (!virt_dev->eps[ep_index].ring) - return -ENOMEM; - -@@ -628,7 +628,7 @@ static int xhci_set_configuration(struct usb_device *udev) - cpu_to_le32(MAX_BURST(max_burst) | - ERROR_COUNT(err_count)); - -- trb_64 = virt_to_phys(virt_dev->eps[ep_index].ring->enqueue); -+ trb_64 = xhci_virt_to_bus(ctrl, virt_dev->eps[ep_index].ring->enqueue); - ep_ctx[ep_index]->deq = cpu_to_le64(trb_64 | - virt_dev->eps[ep_index].ring->cycle_state); - -diff --git a/include/usb/xhci.h b/include/usb/xhci.h -index e1d382369a..8d95e213b0 100644 ---- a/include/usb/xhci.h -+++ b/include/usb/xhci.h -@@ -16,6 +16,7 @@ - #ifndef HOST_XHCI_H_ - #define HOST_XHCI_H_ - -+#include - #include - #include - #include -@@ -1221,6 +1222,12 @@ struct xhci_ctrl { - #define XHCI_MTK_HOST BIT(0) - }; - -+#if CONFIG_IS_ENABLED(DM_USB) -+#define xhci_to_dev(_ctrl) _ctrl->dev -+#else -+#define xhci_to_dev(_ctrl) NULL -+#endif -+ - unsigned long trb_addr(struct xhci_segment *seg, union xhci_trb *trb); - struct xhci_input_control_ctx - *xhci_get_input_control_ctx(struct xhci_container_ctx *ctx); -@@ -1250,7 +1257,8 @@ int xhci_check_maxpacket(struct usb_device *udev); - void xhci_flush_cache(uintptr_t addr, u32 type_len); - void xhci_inval_cache(uintptr_t addr, u32 type_len); - void xhci_cleanup(struct xhci_ctrl *ctrl); --struct xhci_ring *xhci_ring_alloc(unsigned int num_segs, bool link_trbs); -+struct xhci_ring *xhci_ring_alloc(struct xhci_ctrl *ctrl, unsigned int num_segs, -+ bool link_trbs); - int xhci_alloc_virt_device(struct xhci_ctrl *ctrl, unsigned int slot_id); - int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr, - struct xhci_hcor *hcor); -@@ -1278,4 +1286,14 @@ extern struct dm_usb_ops xhci_usb_ops; - - struct xhci_ctrl *xhci_get_ctrl(struct usb_device *udev); - -+static inline dma_addr_t xhci_virt_to_bus(struct xhci_ctrl *ctrl, void *addr) -+{ -+ return dev_phys_to_bus(xhci_to_dev(ctrl), virt_to_phys(addr)); -+} -+ -+static inline void *xhci_bus_to_virt(struct xhci_ctrl *ctrl, dma_addr_t addr) -+{ -+ return phys_to_virt(dev_bus_to_phys(xhci_to_dev(ctrl), addr)); -+} -+ - #endif /* HOST_XHCI_H_ */ diff --git a/0025-mmc-Introduce-mmc_phys_to_bus-mmc_b.patch b/0025-mmc-Introduce-mmc_phys_to_bus-mmc_b.patch deleted file mode 100644 index 624b945..0000000 --- a/0025-mmc-Introduce-mmc_phys_to_bus-mmc_b.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 8c9cce2f60aa7ded50f42c7de363f7d6af91c66a Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:29 +0100 -Subject: [PATCH] mmc: Introduce mmc_phys_to_bus()/mmc_bus_to_phys() - -This will allow us to use DM variants of phys_to_bus()/bus_to_phys() -when relevant. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Tested-by: Peter Robinson ---- - drivers/mmc/sdhci.c | 12 +++++++----- - include/mmc.h | 6 ++++++ - 2 files changed, 13 insertions(+), 5 deletions(-) - -diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c -index 0628934312..62e4f53b8b 100644 ---- a/drivers/mmc/sdhci.c -+++ b/drivers/mmc/sdhci.c -@@ -14,12 +14,12 @@ - #include - #include - #include -+#include - #include - #include - #include - #include - #include --#include - - static void sdhci_reset(struct sdhci_host *host, u8 mask) - { -@@ -73,6 +73,7 @@ static void sdhci_transfer_pio(struct sdhci_host *host, struct mmc_data *data) - static void sdhci_prepare_dma(struct sdhci_host *host, struct mmc_data *data, - int *is_aligned, int trans_bytes) - { -+ dma_addr_t dma_addr; - unsigned char ctrl; - void *buf; - -@@ -103,8 +104,8 @@ static void sdhci_prepare_dma(struct sdhci_host *host, struct mmc_data *data, - mmc_get_dma_dir(data)); - - if (host->flags & USE_SDMA) { -- sdhci_writel(host, phys_to_bus((ulong)host->start_addr), -- SDHCI_DMA_ADDRESS); -+ dma_addr = dev_phys_to_bus(mmc_to_dev(host->mmc), host->start_addr); -+ sdhci_writel(host, dma_addr, SDHCI_DMA_ADDRESS); - } - #if CONFIG_IS_ENABLED(MMC_SDHCI_ADMA) - else if (host->flags & (USE_ADMA | USE_ADMA64)) { -@@ -162,8 +163,9 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data) - start_addr &= - ~(SDHCI_DEFAULT_BOUNDARY_SIZE - 1); - start_addr += SDHCI_DEFAULT_BOUNDARY_SIZE; -- sdhci_writel(host, phys_to_bus((ulong)start_addr), -- SDHCI_DMA_ADDRESS); -+ start_addr = dev_phys_to_bus(mmc_to_dev(host->mmc), -+ start_addr); -+ sdhci_writel(host, start_addr, SDHCI_DMA_ADDRESS); - } - } - if (timeout-- > 0) -diff --git a/include/mmc.h b/include/mmc.h -index 1d377e0281..c12c7a0b5c 100644 ---- a/include/mmc.h -+++ b/include/mmc.h -@@ -736,6 +736,12 @@ struct mmc { - u8 hs400_tuning; - }; - -+#if CONFIG_IS_ENABLED(DM_MMC) -+#define mmc_to_dev(_mmc) _mmc->dev -+#else -+#define mmc_to_dev(_mmc) NULL -+#endif -+ - struct mmc_hwpart_conf { - struct { - uint enh_start; /* in 512-byte sectors */ diff --git a/0026-configs-rpi4-Enable-DM_DMA-across-a.patch b/0026-configs-rpi4-Enable-DM_DMA-across-a.patch deleted file mode 100644 index aeeedc6..0000000 --- a/0026-configs-rpi4-Enable-DM_DMA-across-a.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 27d0b40ed0c1f997635ee216cfe199081fb5112e Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:30 +0100 -Subject: [PATCH] configs: rpi4: Enable DM_DMA across all RPi4 configurations - -The DM_DMA option is needed in order to translate physical address into -bus addresses on a per-device basis. - -Signed-off-by: Nicolas Saenz Julienne -Reviewed-by: Simon Glass -Tested-by: Peter Robinson ---- - configs/rpi_4_32b_defconfig | 1 + - configs/rpi_4_defconfig | 1 + - configs/rpi_arm64_defconfig | 1 + - 3 files changed, 3 insertions(+) - -diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig -index 5ddd838fd5..0a5d3ff8cd 100644 ---- a/configs/rpi_4_32b_defconfig -+++ b/configs/rpi_4_32b_defconfig -@@ -22,6 +22,7 @@ CONFIG_OF_BOARD=y - CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" - CONFIG_SYS_RELOC_GD_ENV_ADDR=y - CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_DM_DMA=y - CONFIG_DFU_MMC=y - CONFIG_DM_KEYBOARD=y - CONFIG_DM_MMC=y -diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig -index 2590d0a696..b61cdc05f1 100644 ---- a/configs/rpi_4_defconfig -+++ b/configs/rpi_4_defconfig -@@ -22,6 +22,7 @@ CONFIG_OF_BOARD=y - CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" - CONFIG_SYS_RELOC_GD_ENV_ADDR=y - CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_DM_DMA=y - CONFIG_DFU_MMC=y - CONFIG_DM_KEYBOARD=y - CONFIG_DM_MMC=y -diff --git a/configs/rpi_arm64_defconfig b/configs/rpi_arm64_defconfig -index 2639219a1a..4125a1feba 100644 ---- a/configs/rpi_arm64_defconfig -+++ b/configs/rpi_arm64_defconfig -@@ -20,6 +20,7 @@ CONFIG_CMD_FS_UUID=y - CONFIG_OF_BOARD=y - CONFIG_ENV_FAT_DEVICE_AND_PART="0:1" - CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_DM_DMA=y - CONFIG_DM_KEYBOARD=y - CONFIG_DM_MMC=y - CONFIG_MMC_SDHCI=y diff --git a/0027-video-arm-rpi-Add-brcm-bcm2711-hdmi.patch b/0027-video-arm-rpi-Add-brcm-bcm2711-hdmi.patch deleted file mode 100644 index 85b86b2..0000000 --- a/0027-video-arm-rpi-Add-brcm-bcm2711-hdmi.patch +++ /dev/null @@ -1,28 +0,0 @@ -From c324f9b25039bb271365363f1c4959fcd245797d Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Tue, 12 Jan 2021 13:55:31 +0100 -Subject: [PATCH] video: arm: rpi: Add brcm,bcm2711-hdmi0 compatible - -The 'brcm,bcm2711-hdmi0' compatible string is used on RPi4 instead of -'brcm,bcm2835-hdmi' since the IP core was upgraded (now called VC6 -instead of VC4). This has no functional change as far as u-boot driver -is concerned. So simply add the compatible string. - -Signed-off-by: Nicolas Saenz Julienne -Tested-by: Peter Robinson ---- - drivers/video/bcm2835.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/video/bcm2835.c b/drivers/video/bcm2835.c -index 0888cb0019..51941c4f53 100644 ---- a/drivers/video/bcm2835.c -+++ b/drivers/video/bcm2835.c -@@ -52,6 +52,7 @@ static int bcm2835_video_probe(struct udevice *dev) - - static const struct udevice_id bcm2835_video_ids[] = { - { .compatible = "brcm,bcm2835-hdmi" }, -+ { .compatible = "brcm,bcm2711-hdmi0" }, - { .compatible = "brcm,bcm2708-fb" }, - { } - }; diff --git a/0028-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch b/0028-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch deleted file mode 100644 index 604e571..0000000 --- a/0028-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 38b6c858e17884d5f4ccfb1a65ce1d5f6819188e Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Thu, 14 Jan 2021 16:49:00 +0100 -Subject: [PATCH] usb: xhci-pci: Add DM_FLAG_OS_PREPARE flag - -The PCIe bus the controller is connected to might need to be removed -prior the handover. Make sure xhci-pci is also removed so as to avoid -unexpected timeouts or hangs. - -Signed-off-by: Nicolas Saenz Julienne ---- - drivers/usb/host/xhci-pci.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c -index 9fb6d2f763..19f8fb4458 100644 ---- a/drivers/usb/host/xhci-pci.c -+++ b/drivers/usb/host/xhci-pci.c -@@ -61,7 +61,7 @@ U_BOOT_DRIVER(xhci_pci) = { - .ops = &xhci_usb_ops, - .platdata_auto_alloc_size = sizeof(struct usb_platdata), - .priv_auto_alloc_size = sizeof(struct xhci_ctrl), -- .flags = DM_FLAG_ALLOC_PRIV_DMA, -+ .flags = DM_FLAG_OS_PREPARE | DM_FLAG_ALLOC_PRIV_DMA, - }; - - static struct pci_device_id xhci_pci_supported[] = { diff --git a/0029-pci-brcmstb-Cleanup-controller-stat.patch b/0029-pci-brcmstb-Cleanup-controller-stat.patch deleted file mode 100644 index 5b1193e..0000000 --- a/0029-pci-brcmstb-Cleanup-controller-stat.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 9b76a8d285bac34d64d8c544931625bcaa83dfaa Mon Sep 17 00:00:00 2001 -From: Nicolas Saenz Julienne -Date: Thu, 14 Jan 2021 16:49:01 +0100 -Subject: [PATCH] pci: brcmstb: Cleanup controller state before handover - -Make sure we handover the PCIe controller in a clean state. Some of the -devices hanging from the PCIe bus might need to be properly reset -through #PERST in order for Linux to be able to initialize them. - -This is specially important in order to properly initialize Raspberry Pi -4 B and 400's USB chip. - -Signed-off-by: Nicolas Saenz Julienne ---- - drivers/pci/pcie_brcmstb.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/drivers/pci/pcie_brcmstb.c b/drivers/pci/pcie_brcmstb.c -index f6e8ad0d0a..c87a5dce4d 100644 ---- a/drivers/pci/pcie_brcmstb.c -+++ b/drivers/pci/pcie_brcmstb.c -@@ -577,6 +577,24 @@ static int brcm_pcie_probe(struct udevice *dev) - return 0; - } - -+static int brcm_pcie_remove(struct udevice *dev) -+{ -+ struct brcm_pcie *pcie = dev_get_priv(dev); -+ void __iomem *base = pcie->base; -+ -+ /* Assert fundamental reset */ -+ setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_PERST_MASK); -+ -+ /* Turn off SerDes */ -+ setbits_le32(base + PCIE_MISC_HARD_PCIE_HARD_DEBUG, -+ PCIE_HARD_DEBUG_SERDES_IDDQ_MASK); -+ -+ /* Shutdown bridge */ -+ setbits_le32(base + PCIE_RGR1_SW_INIT_1, RGR1_SW_INIT_1_INIT_MASK); -+ -+ return 0; -+} -+ - static int brcm_pcie_ofdata_to_platdata(struct udevice *dev) - { - struct brcm_pcie *pcie = dev_get_priv(dev); -@@ -616,6 +634,8 @@ U_BOOT_DRIVER(pcie_brcm_base) = { - .ops = &brcm_pcie_ops, - .of_match = brcm_pcie_ids, - .probe = brcm_pcie_probe, -+ .remove = brcm_pcie_remove, - .ofdata_to_platdata = brcm_pcie_ofdata_to_platdata, - .priv_auto_alloc_size = sizeof(struct brcm_pcie), -+ .flags = DM_FLAG_OS_PREPARE, - }; diff --git a/0030-fs-btrfs-Select-SHA256-in-Kconfig.patch b/0030-fs-btrfs-Select-SHA256-in-Kconfig.patch deleted file mode 100644 index f65672f..0000000 --- a/0030-fs-btrfs-Select-SHA256-in-Kconfig.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f3d0d5e548431be08036b4671d750f73a1a258d4 Mon Sep 17 00:00:00 2001 -From: Matthias Brugger -Date: Wed, 27 Jan 2021 10:42:30 +0100 -Subject: [PATCH] fs: btrfs: Select SHA256 in Kconfig - -Since commit 565a4147d17a ("fs: btrfs: Add more checksum algorithms") -btrfs uses the sha256 checksum algorithm. But Kconfig lacks to select -it. This leads to compilation errors: -fs/built-in.o: In function `hash_sha256': -fs/btrfs/crypto/hash.c:25: undefined reference to `sha256_starts' -fs/btrfs/crypto/hash.c:26: undefined reference to `sha256_update' -fs/btrfs/crypto/hash.c:27: undefined reference to `sha256_finish' - -Signed-off-by: Matthias Brugger -Reviewed-by: Qu Wenruo ---- - fs/btrfs/Kconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/fs/btrfs/Kconfig b/fs/btrfs/Kconfig -index f302b1fbef..2a32f42ad1 100644 ---- a/fs/btrfs/Kconfig -+++ b/fs/btrfs/Kconfig -@@ -4,6 +4,7 @@ config FS_BTRFS - select LZO - select ZSTD - select RBTREE -+ select SHA256 - help - This provides a single-device read-only BTRFS support. BTRFS is a - next-generation Linux file system based on the copy-on-write diff --git a/0031-efi_loader-Avoid-emitting-efi_var_b.patch b/0031-efi_loader-Avoid-emitting-efi_var_b.patch deleted file mode 100644 index f3d4bfd..0000000 --- a/0031-efi_loader-Avoid-emitting-efi_var_b.patch +++ /dev/null @@ -1,148 +0,0 @@ -From 3ed82e218b5aabdc5956c5ad4a70d609034a6a2d Mon Sep 17 00:00:00 2001 -From: Ilias Apalodimas -Date: Sat, 16 Jan 2021 17:28:04 +0200 -Subject: [PATCH] efi_loader: Avoid emitting efi_var_buf to .GOT - -Atish reports that on RISC-V, accessing the EFI variables causes -a kernel panic. An objdump of the file verifies that, since the -global pointer for efi_var_buf ends up in .GOT section which is -not mapped in virtual address space for Linux. - - - -0000000000000084 : - 84: 715d addi sp,sp,-80 - -* objdump -dr -0000000000000086 <.LCFI2>: - 86: e0a2 sd s0,64(sp) - 88: fc26 sd s1,56(sp) - 8a: e486 sd ra,72(sp) - 8c: f84a sd s2,48(sp) - 8e: f44e sd s3,40(sp) - 90: f052 sd s4,32(sp) - 92: ec56 sd s5,24(sp) - 94: 00000497 auipc s1,0x0 - 94: R_RISCV_GOT_HI20 efi_var_buf - 98: 0004b483 ld s1,0(s1) # 94 <.LCFI2+0xe> - 98: R_RISCV_PCREL_LO12_I .L0 - 98: R_RISCV_RELAX *ABS* - -* objdump -t -0000000000000084 g F .text.efi_runtime 00000000000000b8 efi_var_mem_find - -With the patch applied: - -* objdump -dr -0000000000000086 <.LCFI2>: - 86: e0a2 sd s0,64(sp) - 88: fc26 sd s1,56(sp) - 8a: e486 sd ra,72(sp) - 8c: f84a sd s2,48(sp) - 8e: f44e sd s3,40(sp) - 90: f052 sd s4,32(sp) - 92: ec56 sd s5,24(sp) - 94: 00000497 auipc s1,0x0 - 94: R_RISCV_PCREL_HI20 .LANCHOR0 - 94: R_RISCV_RELAX *ABS* - 98: 00048493 mv s1,s1 - 98: R_RISCV_PCREL_LO12_I .L0 - 98: R_RISCV_RELAX *ABS* - -* objdump -t -0000000000000008 l O .data.efi_runtime 0000000000000008 efi_var_buf - -On arm64 this works, because there's no .GOT entries for this -and everything is converted to relative references. - -* objdump -dr (identical pre-post patch, only the new function shows up) -00000000000000b4 : - b4: aa0003ee mov x14, x0 - b8: 9000000a adrp x10, 0 - b8: R_AARCH64_ADR_PREL_PG_HI21 .data.efi_runtime - bc: 91000140 add x0, x10, #0x0 - bc: R_AARCH64_ADD_ABS_LO12_NC .data.efi_runtime - c0: aa0103ed mov x13, x1 - c4: 79400021 ldrh w1, [x1] - c8: aa0203eb mov x11, x2 - cc: f9400400 ldr x0, [x0, #8] - d0: b940100c ldr w12, [x0, #16] - d4: 8b0c000c add x12, x0, x12 - -So let's switch efi_var_buf to static and create a helper function for -anyone that needs to update it. - -Fixes: e01aed47d6a0 ("efi_loader: Enable run-time variable support for tee based variables") -Reported-by: Atish Patra -Tested-by: Atish Patra -Signed-off-by: Ilias Apalodimas -Reviewed-by: Heinrich Schuchardt -(cherry picked from commit 53e54bf50d285597c1553cdf2bd0e646fcd4dd60) -Signed-off-by: Matthias Brugger ---- - include/efi_variable.h | 11 +++++++++++ - lib/efi_loader/efi_var_mem.c | 13 ++++++++++++- - lib/efi_loader/efi_variable_tee.c | 2 +- - 3 files changed, 24 insertions(+), 2 deletions(-) - -diff --git a/include/efi_variable.h b/include/efi_variable.h -index bf5076233e..4623a64142 100644 ---- a/include/efi_variable.h -+++ b/include/efi_variable.h -@@ -306,4 +306,15 @@ efi_status_t __efi_runtime EFIAPI - efi_get_next_variable_name_runtime(efi_uintn_t *variable_name_size, - u16 *variable_name, efi_guid_t *guid); - -+/** -+ * efi_var_buf_update() - udpate memory buffer for variables -+ * -+ * @var_buf: source buffer -+ * -+ * This function copies to the memory buffer for UEFI variables. Call this -+ * function in ExitBootServices() if memory backed variables are only used -+ * at runtime to fill the buffer. -+ */ -+void efi_var_buf_update(struct efi_var_file *var_buf); -+ - #endif -diff --git a/lib/efi_loader/efi_var_mem.c b/lib/efi_loader/efi_var_mem.c -index d155f25f60..3d335a8274 100644 ---- a/lib/efi_loader/efi_var_mem.c -+++ b/lib/efi_loader/efi_var_mem.c -@@ -10,7 +10,13 @@ - #include - #include - --struct efi_var_file __efi_runtime_data *efi_var_buf; -+/* -+ * The variables efi_var_file and efi_var_entry must be static to avoid -+ * referencing them via the global offset table (section .got). The GOT -+ * is neither mapped as EfiRuntimeServicesData nor do we support its -+ * relocation during SetVirtualAddressMap(). -+ */ -+static struct efi_var_file __efi_runtime_data *efi_var_buf; - static struct efi_var_entry __efi_runtime_data *efi_current_var; - - /** -@@ -339,3 +345,8 @@ efi_get_next_variable_name_mem(efi_uintn_t *variable_name_size, - - return EFI_SUCCESS; - } -+ -+void efi_var_buf_update(struct efi_var_file *var_buf) -+{ -+ memcpy(efi_var_buf, var_buf, EFI_VAR_BUF_SIZE); -+} -diff --git a/lib/efi_loader/efi_variable_tee.c b/lib/efi_loader/efi_variable_tee.c -index b8808fdeca..51920bcb51 100644 ---- a/lib/efi_loader/efi_variable_tee.c -+++ b/lib/efi_loader/efi_variable_tee.c -@@ -702,7 +702,7 @@ void efi_variables_boot_exit_notify(void) - if (ret != EFI_SUCCESS) - log_err("Can't populate EFI variables. No runtime variables will be available\n"); - else -- memcpy(efi_var_buf, var_buf, len); -+ efi_var_buf_update(var_buf); - free(var_buf); - - /* Update runtime service table */ diff --git a/0032-configs-BPI-R2-Disable-EFI-Grub-wor.patch b/0032-configs-BPI-R2-Disable-EFI-Grub-wor.patch deleted file mode 100644 index fd45af9..0000000 --- a/0032-configs-BPI-R2-Disable-EFI-Grub-wor.patch +++ /dev/null @@ -1,23 +0,0 @@ -From b35caa4e303fa4ad75fe55e803c5f7414b301d78 Mon Sep 17 00:00:00 2001 -From: Matthias Brugger -Date: Tue, 16 Feb 2021 20:54:07 +0100 -Subject: [PATCH] configs: BPI-R2: Disable EFI Grub workaround - -The EFI Grub workaround on BananaPi R2 slows down the boot process to -the point, that the watchdog will trigger a reboot before the kernel can -reset it. Fix this by disabeling the workaround. - -Signed-off-by: Matthias Brugger ---- - configs/mt7623n_bpir2_defconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configs/mt7623n_bpir2_defconfig b/configs/mt7623n_bpir2_defconfig -index d36ff560cf..fb20cb1832 100644 ---- a/configs/mt7623n_bpir2_defconfig -+++ b/configs/mt7623n_bpir2_defconfig -@@ -53,3 +53,4 @@ CONFIG_TIMER=y - CONFIG_MTK_TIMER=y - CONFIG_WDT_MTK=y - CONFIG_LZMA=y -+# CONFIG_EFI_GRUB_ARM32_WORKAROUND is not set diff --git a/0033-configs-RPi2-Disable-EFI-Grub-worka.patch b/0033-configs-RPi2-Disable-EFI-Grub-worka.patch deleted file mode 100644 index 5ad5290..0000000 --- a/0033-configs-RPi2-Disable-EFI-Grub-worka.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 989046a0aac8e7cb3db18e3cbc8a1aac82b82079 Mon Sep 17 00:00:00 2001 -From: Matthias Brugger -Date: Tue, 16 Feb 2021 20:54:08 +0100 -Subject: [PATCH] configs: RPi2: Disable EFI Grub workaround - -The EFI Grub workaround isn't needed with Grub version 2.04 or higher. -This version was published over a year ago, so disable the workaround -to reduce boot time. - -Signed-off-by: Matthias Brugger ---- - configs/rpi_2_defconfig | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/configs/rpi_2_defconfig b/configs/rpi_2_defconfig -index e546c3e7be..219c61b1f5 100644 ---- a/configs/rpi_2_defconfig -+++ b/configs/rpi_2_defconfig -@@ -42,3 +42,4 @@ CONFIG_SYS_WHITE_ON_BLACK=y - CONFIG_CONSOLE_SCROLL_LINES=10 - CONFIG_PHYS_TO_BUS=y - CONFIG_OF_LIBFDT_OVERLAY=y -+# CONFIG_EFI_GRUB_ARM32_WORKAROUND is not set diff --git a/0034-smbios-Fix-table-whit-no-string-is-.patch b/0034-smbios-Fix-table-whit-no-string-is-.patch deleted file mode 100644 index 59609cd..0000000 --- a/0034-smbios-Fix-table-whit-no-string-is-.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 62b45b6d77924c396a59caac252169ccf7ef525a Mon Sep 17 00:00:00 2001 -From: Matthias Brugger -Date: Wed, 17 Mar 2021 12:43:03 +0100 -Subject: [PATCH] smbios: Fix table whit no string is present - -When no string is present a table has to end with two \0 bytes. -Take this into account. This is a downstream fix. - -Signed-off-by: Matthias Brugger ---- - lib/smbios.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/lib/smbios.c b/lib/smbios.c -index 485a812c77..c68d19e12b 100644 ---- a/lib/smbios.c -+++ b/lib/smbios.c -@@ -105,6 +105,10 @@ static int smbios_string_table_len(char *start) - len += i; - } - -+ /* A table without a string has to end with \0\0 */ -+ if (len == 0) -+ return 2; -+ - return len + 1; - } - diff --git a/u-boot-2021.01.tar.bz2 b/u-boot-2021.01.tar.bz2 deleted file mode 100644 index 8e16744..0000000 --- a/u-boot-2021.01.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b407e1510a74e863b8b5cb42a24625344f0e0c2fc7582d8c866bd899367d0454 -size 16375990 diff --git a/u-boot-2021.01.tar.bz2.sig b/u-boot-2021.01.tar.bz2.sig deleted file mode 100644 index fad817e67b87c99fcaabb264a9693d5a0afdfd74c7167c90941ba63f2fb8d4b6..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 458 zcmV;*0X6=K0mlRY0SW*y79j*0Jb!TDkE<64fSbP*d^!J?G`B1T0$==<2ooH1a%pa9 zKx=Pqb9HQMZ!TkRZ2$@h5EOhl|CThjEN9va|6tB=m)wm_D2OOZ9-RzCvy9y1IHh>C z=EGyhe3>6;pb&)Q%9drQhlu^uyqs^W+{L)2Yh?S&Qd9o1ANb5pGc8okkT40mnonY_ z`f$B-5;#E5Ed_CD^`6twa^PSwtUs*m?TU7p$wscllcmI^lg5LN)Yl0@>8O<(0v^AGMi~4wyhr3;O|f3k096tQL%`YhwHjJw)sVy1F|*>)p3QBF?ZBg?^2kWac2hs zJq<MGGuCp$9$iFMRuZ??J0BwX`lGQn+oqW2+pT}x zFG&ch7E?-wlelIWkIO*kNlY8LMB{^hoOL^^`0c?gWvb1gkZ$%62J&MruA9{qMV^rYkB^o%(l;8u;c=V@yE;HP=%FJ8 zI{~=7Hz25EQXVFvU?Bw%U8c>)H}Um&t*^5mdMSU$d(_Q~9+@K0AVY+iiR60wXSInv z5GKzTqr2g$9|dv7k-#|?n&U(*SaAWT43Zy8%YI4t_s(W@n??V0sXSkAqQpXr=lqk~ A?*IS* literal 0 HcmV?d00001 diff --git a/u-boot.changes b/u-boot.changes index cea6907..ce00d73 100644 --- a/u-boot.changes +++ b/u-boot.changes @@ -1,3 +1,52 @@ +------------------------------------------------------------------- +Tue Apr 6 08:00:08 UTC 2021 - Guillaume GARDET + +- mx53loco now uses u-boot-dtb.imx instead of u-boot.imx + +------------------------------------------------------------------- +Tue Apr 6 07:22:01 UTC 2021 - Guillaume GARDET + +- Update to 2021.04 +- Patch queue updated from https://github.com/openSUSE/u-boot.git tumbleweed-2021.04 +* Patches dropped: + 0006-boo-1123170-Remove-ubifs-support-fr.patch + 0007-boo-1144161-Remove-nand-mtd-spi-dfu.patch + 0008-Kconfig-add-btrfs-to-distro-boot.patch + 0009-configs-Re-sync-with-CONFIG_DISTRO_.patch + 0010-configs-am335x_evm-disable-BTRFS.patch + 0011-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch + 0012-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch + 0013-sunxi-Enable-SPI-support-on-Orange-.patch + 0014-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch + 0015-rpi-Add-identifier-for-the-new-RPi4.patch + 0016-rpi-Add-identifier-for-the-new-CM4.patch + 0017-pci-pcie-brcmstb-Fix-inbound-window.patch + 0018-dm-Introduce-xxx_get_dma_range.patch + 0019-dm-test-Add-test-case-for-dev_get_d.patch + 0020-dm-Introduce-DMA-constraints-into-t.patch + 0021-dm-test-Add-test-case-for-dev-dma_o.patch + 0022-dm-Introduce-dev_phys_to_bus-dev_bu.patch + 0023-dm-test-Add-test-case-for-dev_phys_.patch + 0024-xhci-translate-virtual-addresses-in.patch + 0025-mmc-Introduce-mmc_phys_to_bus-mmc_b.patch + 0026-configs-rpi4-Enable-DM_DMA-across-a.patch + 0027-video-arm-rpi-Add-brcm-bcm2711-hdmi.patch + 0028-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch + 0029-pci-brcmstb-Cleanup-controller-stat.patch + 0030-fs-btrfs-Select-SHA256-in-Kconfig.patch + 0031-efi_loader-Avoid-emitting-efi_var_b.patch + 0032-configs-BPI-R2-Disable-EFI-Grub-wor.patch + 0033-configs-RPi2-Disable-EFI-Grub-worka.patch + 0034-smbios-Fix-table-whit-no-string-is-.patch +* Patches added: + 0006-Kconfig-add-btrfs-to-distro-boot.patch + 0007-configs-Re-sync-with-CONFIG_DISTRO_.patch + 0008-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch + 0009-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch + 0010-sunxi-Enable-SPI-support-on-Orange-.patch + 0011-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch + 0012-smbios-Fix-table-when-no-string-is-.patch + ------------------------------------------------------------------- Wed Mar 17 11:46:02 UTC 2021 - Matthias Brugger diff --git a/u-boot.spec b/u-boot.spec index d89aaed..eae40b2 100644 --- a/u-boot.spec +++ b/u-boot.spec @@ -118,11 +118,7 @@ %define is_armv7 1 %define binext .img %endif -%if "%target" == "mx53loco" -%define is_armv7 1 -%define binext .imx -%endif -%if "%target" == "mx6qsabrelite" +%if "%target" == "mx53loco" || "%target" == "mx6qsabrelite" %define is_armv7 1 %define binext -dtb.imx %endif @@ -176,7 +172,7 @@ %define is_ppc 1 %endif # archive_version differs from version for RC version only -%define archive_version 2021.01 +%define archive_version 2021.04 %if "%{target}" == "" ExclusiveArch: do_not_build %else @@ -212,7 +208,7 @@ ExclusiveArch: do_not_build %else %bcond_with uboot_atf %endif -Version: 2021.01 +Version: 2021.04 Release: 0 Summary: The U-Boot firmware for the %target platform License: GPL-2.0-only @@ -229,35 +225,13 @@ Patch0002: 0002-Revert-Revert-omap3-Use-raw-SPL-by-.patch Patch0003: 0003-rpi-Use-firmware-provided-device-tr.patch Patch0004: 0004-Temp-workaround-for-Chromebook-snow.patch Patch0005: 0005-tools-zynqmpbif-Add-support-for-loa.patch -Patch0006: 0006-boo-1123170-Remove-ubifs-support-fr.patch -Patch0007: 0007-boo-1144161-Remove-nand-mtd-spi-dfu.patch -Patch0008: 0008-Kconfig-add-btrfs-to-distro-boot.patch -Patch0009: 0009-configs-Re-sync-with-CONFIG_DISTRO_.patch -Patch0010: 0010-configs-am335x_evm-disable-BTRFS.patch -Patch0011: 0011-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch -Patch0012: 0012-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch -Patch0013: 0013-sunxi-Enable-SPI-support-on-Orange-.patch -Patch0014: 0014-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch -Patch0015: 0015-rpi-Add-identifier-for-the-new-RPi4.patch -Patch0016: 0016-rpi-Add-identifier-for-the-new-CM4.patch -Patch0017: 0017-pci-pcie-brcmstb-Fix-inbound-window.patch -Patch0018: 0018-dm-Introduce-xxx_get_dma_range.patch -Patch0019: 0019-dm-test-Add-test-case-for-dev_get_d.patch -Patch0020: 0020-dm-Introduce-DMA-constraints-into-t.patch -Patch0021: 0021-dm-test-Add-test-case-for-dev-dma_o.patch -Patch0022: 0022-dm-Introduce-dev_phys_to_bus-dev_bu.patch -Patch0023: 0023-dm-test-Add-test-case-for-dev_phys_.patch -Patch0024: 0024-xhci-translate-virtual-addresses-in.patch -Patch0025: 0025-mmc-Introduce-mmc_phys_to_bus-mmc_b.patch -Patch0026: 0026-configs-rpi4-Enable-DM_DMA-across-a.patch -Patch0027: 0027-video-arm-rpi-Add-brcm-bcm2711-hdmi.patch -Patch0028: 0028-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch -Patch0029: 0029-pci-brcmstb-Cleanup-controller-stat.patch -Patch0030: 0030-fs-btrfs-Select-SHA256-in-Kconfig.patch -Patch0031: 0031-efi_loader-Avoid-emitting-efi_var_b.patch -Patch0032: 0032-configs-BPI-R2-Disable-EFI-Grub-wor.patch -Patch0033: 0033-configs-RPi2-Disable-EFI-Grub-worka.patch -Patch0034: 0034-smbios-Fix-table-whit-no-string-is-.patch +Patch0006: 0006-Kconfig-add-btrfs-to-distro-boot.patch +Patch0007: 0007-configs-Re-sync-with-CONFIG_DISTRO_.patch +Patch0008: 0008-sunxi-dts-OrangePi-Zero-Add-SPI-ali.patch +Patch0009: 0009-sunxi-dts-OrangePi-Zero-Enable-SPI-.patch +Patch0010: 0010-sunxi-Enable-SPI-support-on-Orange-.patch +Patch0011: 0011-Disable-CONFIG_CMD_BTRFS-in-xilinx_.patch +Patch0012: 0012-smbios-Fix-table-when-no-string-is-.patch # Patches: end BuildRequires: bc BuildRequires: bison diff --git a/update_git.sh b/update_git.sh index 448f8bd..7f836fe 100644 --- a/update_git.sh +++ b/update_git.sh @@ -13,8 +13,8 @@ set -e GIT_TREE=https://github.com/openSUSE/u-boot.git GIT_LOCAL_TREE=~/src/opensuse/u-boot -GIT_BRANCH=tumbleweed-2021.01 -GIT_UPSTREAM_TAG=v2021.01 +GIT_BRANCH=tumbleweed-2021.04 +GIT_UPSTREAM_TAG=v2021.04 GIT_DIR=`mktemp -d -p /dev/shm` CMP_DIR=`mktemp -d -p /dev/shm`