Accepting request 872955 from hardware👢staging

- Add qemu-riscv64spl
Patch queue updated from git://github.com/openSUSE/u-boot.git tumbleweed-2021.01
* Patches added:
  0031-efi_loader-Avoid-emitting-efi_var_b.patch
- Drop pcm051rev3 for Phytec Wega board 
- Fix binary extension for sunxi based boards
- Add Pinephone
- Fix documentation location 
Update to v2021.01.
Patch queue updated from git://github.com/openSUSE/u-boot.git tumbleweed-2021.01
* Patches dropped:
  0028-usb-xhci-xhci_bulk_tx-Don-t-BUG-whe.patch
  0029-Revert-Fix-data-abort-caused-by-mis.patch
  0030-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch
  0031-pci-brcmstb-Cleanup-controller-stat.patch
* Patches added:
  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

OBS-URL: https://build.opensuse.org/request/show/872955
OBS-URL: https://build.opensuse.org/package/show/hardware:boot/u-boot?expand=0&rev=127
This commit is contained in:
Guillaume GARDET 2021-02-17 07:37:34 +00:00 committed by Git OBS Bridge
parent e20de7d49a
commit 111c122751
41 changed files with 445 additions and 331 deletions

View File

@ -1,4 +1,4 @@
From ccd4f771c00d944160654731d27f3654ec5edcc0 Mon Sep 17 00:00:00 2001
From da36e129a526f1a7921c7971013d3f5918c504a3 Mon Sep 17 00:00:00 2001
From: Guillaume GARDET <guillaume.gardet@free.fr>
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 fc0935fa21..f9cda052e1 100644
index c9862260a3..39e3247d41 100644
--- a/include/config_distro_bootcmd.h
+++ b/include/config_distro_bootcmd.h
@@ -141,7 +141,7 @@
@@ -145,7 +145,7 @@
"load ${devtype} ${devnum}:${distro_bootpart} " \
"${fdt_addr_r} ${prefix}${efi_fdtfile}\0" \
\
@ -24,7 +24,7 @@ index fc0935fa21..f9cda052e1 100644
"scan_dev_for_efi=" \
"setenv efi_fdtfile ${fdtfile}; " \
BOOTENV_EFI_SET_FDTFILE_FALLBACK \
@@ -466,7 +466,7 @@
@@ -472,7 +472,7 @@
"scan_dev_for_boot_part=" \
"part list ${devtype} ${devnum} -bootable devplist; " \
"env exists devplist || setenv devplist 1; " \

View File

@ -1,4 +1,4 @@
From 0e5ee623eb68459199c41161e67bffe422e89096 Mon Sep 17 00:00:00 2001
From 34515ca90618bb0545ce360abb91b6037b1546e3 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Mon, 2 May 2016 23:25:07 +0200
Subject: [PATCH] Revert "Revert "omap3: Use raw SPL by default for mmc1""

View File

@ -1,4 +1,4 @@
From e3661467c146494f9a2bbdaa7ae25e9f07c6d24a Mon Sep 17 00:00:00 2001
From 2f2b5324682ebf078c78372e74ce759b3620e4bc Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <guillaume.gardet@arm.com>
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 <guillaume.gardet@free.fr>
5 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/configs/rpi_0_w_defconfig b/configs/rpi_0_w_defconfig
index bba5e12b12..0241f4c6d3 100644
index 93d790aae6..cae50fa2ab 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 bba5e12b12..0241f4c6d3 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 1c2bbb29ce..9573e475f4 100644
index 33f27cf09f..e546c3e7be 100644
--- a/configs/rpi_2_defconfig
+++ b/configs/rpi_2_defconfig
@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y
@ -54,7 +54,7 @@ index 1c2bbb29ce..9573e475f4 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 b8a3d17f43..252df994e6 100644
index cdc67cb3ac..2256ad1fc1 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 b8a3d17f43..252df994e6 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 9b281a4f15..1e9ee6122e 100644
index 7075d39d10..4a34d35898 100644
--- a/configs/rpi_3_defconfig
+++ b/configs/rpi_3_defconfig
@@ -18,7 +18,7 @@ CONFIG_CMD_GPIO=y
@ -80,7 +80,7 @@ index 9b281a4f15..1e9ee6122e 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 b5ad53c37b..223fc03275 100644
index bba36ca7fc..98728fc8c0 100644
--- a/configs/rpi_defconfig
+++ b/configs/rpi_defconfig
@@ -17,7 +17,7 @@ CONFIG_CMD_GPIO=y

View File

@ -1,4 +1,4 @@
From 19be21a06d5b85f6be87c1ccd2631aff79e0e416 Mon Sep 17 00:00:00 2001
From ec7b043f9c2b0cb4e7ff2a9ae808456b310375c9 Mon Sep 17 00:00:00 2001
From: Guillaume GARDET <guillaume.gardet@free.fr>
Date: Mon, 9 Apr 2018 10:28:26 +0200
Subject: [PATCH] Temp workaround for Chromebook snow to avoid the 'unable to

View File

@ -1,4 +1,4 @@
From c7f8d2ca5bf0464a9164f84b264dc39cd1e655ee Mon Sep 17 00:00:00 2001
From 45f65400eede913d46a21868122678753305a294 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@suse.de>
Date: Thu, 26 Apr 2018 13:30:32 +0200
Subject: [PATCH] tools: zynqmpbif: Add support for load=after

View File

@ -1,4 +1,4 @@
From 8731159e77b49b6d89cc4ae5364dfe10ffacc49e Mon Sep 17 00:00:00 2001
From 6c0413e2528f4fc699c01f47e60fcf2d16b5fc75 Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <guillaume.gardet@arm.com>
Date: Fri, 18 Sep 2020 15:28:41 +0200
Subject: [PATCH] boo#1123170: Remove ubifs support from omap3_beagle to keep a
@ -10,10 +10,10 @@ Subject: [PATCH] boo#1123170: Remove ubifs support from omap3_beagle to keep a
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/configs/omap3_beagle_defconfig b/configs/omap3_beagle_defconfig
index 1447dab344..86c2435b62 100644
index 514bc01b1f..f232df0e41 100644
--- a/configs/omap3_beagle_defconfig
+++ b/configs/omap3_beagle_defconfig
@@ -43,7 +43,6 @@ CONFIG_CMD_FS_UUID=y
@@ -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)"
@ -21,7 +21,7 @@ index 1447dab344..86c2435b62 100644
# CONFIG_ISO_PARTITION is not set
# CONFIG_SPL_EFI_PARTITION is not set
CONFIG_SPL_PARTITION_UUIDS=y
@@ -78,6 +77,8 @@ CONFIG_SYS_NAND_BUSWIDTH_16BIT=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

View File

@ -1,4 +1,4 @@
From cb0db60f92f6ac66898888dea5fbeef784b59354 Mon Sep 17 00:00:00 2001
From f9fb8e59d10feb1fd5866864f8dd9994b1d60306 Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <guillaume.gardet@arm.com>
Date: Fri, 18 Sep 2020 15:29:27 +0200
Subject: [PATCH] boo#1144161: Remove nand/mtd/spi/dfu/fastboot support from
@ -9,10 +9,10 @@ Subject: [PATCH] boo#1144161: Remove nand/mtd/spi/dfu/fastboot support from
1 file changed, 2 insertions(+), 29 deletions(-)
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index 0d814530d4..78202a55c7 100644
index eb5a299bbc..c615c54b1c 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -17,25 +17,16 @@ CONFIG_ARCH_MISC_INIT=y
@@ -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

View File

@ -1,4 +1,4 @@
From 063a11190ec974996e4e6b827974db15d9bc47d3 Mon Sep 17 00:00:00 2001
From 5b3fe80ea3daebde777533fc40bd071c860438b0 Mon Sep 17 00:00:00 2001
From: Matthias Brugger <mbrugger@suse.com>
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 <mbrugger@suse.com>
1 file changed, 1 insertion(+)
diff --git a/Kconfig b/Kconfig
index 883e3f71d0..bdfd7b7078 100644
index 6dc20ed25b..35e8dc7bad 100644
--- a/Kconfig
+++ b/Kconfig
@@ -143,6 +143,7 @@ config DISTRO_DEFAULTS

View File

@ -1,4 +1,4 @@
From 4738cf1c8ebce2343671591663eedc394813da43 Mon Sep 17 00:00:00 2001
From 0901a320eb56b18739af922493ef17916daa1d80 Mon Sep 17 00:00:00 2001
From: Matthias Brugger <mbrugger@suse.com>
Date: Wed, 29 Jan 2020 09:56:06 +0100
Subject: [PATCH] configs: Re-sync with CONFIG_DISTRO_DEFAULTS
@ -18,10 +18,10 @@ Signed-off-by: Matthias Brugger <mbrugger@suse.com>
5 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
index c3ca796d51..9c102948c0 100644
index 5fbbfd7236..1afe9a4665 100644
--- a/configs/sandbox64_defconfig
+++ b/configs/sandbox64_defconfig
@@ -75,7 +75,6 @@ CONFIG_CMD_REGULATOR=y
@@ -77,7 +77,6 @@ CONFIG_CMD_REGULATOR=y
CONFIG_CMD_AES=y
CONFIG_CMD_TPM=y
CONFIG_CMD_TPM_TEST=y
@ -30,10 +30,10 @@ index c3ca796d51..9c102948c0 100644
CONFIG_CMD_CRAMFS=y
CONFIG_CMD_EXT4_WRITE=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index 6e9f029cc9..92ffe48432 100644
index f1ec701a9f..5bc9186d6e 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -87,7 +87,6 @@ CONFIG_CMD_REGULATOR=y
@@ -90,7 +90,6 @@ CONFIG_CMD_REGULATOR=y
CONFIG_CMD_AES=y
CONFIG_CMD_TPM=y
CONFIG_CMD_TPM_TEST=y
@ -42,7 +42,7 @@ index 6e9f029cc9..92ffe48432 100644
CONFIG_CMD_CRAMFS=y
CONFIG_CMD_EXT4_WRITE=y
diff --git a/configs/socfpga_arria10_defconfig b/configs/socfpga_arria10_defconfig
index 8fdd21c0d3..61d8c3f7c4 100644
index fdad9bd7b4..560ce858f2 100644
--- a/configs/socfpga_arria10_defconfig
+++ b/configs/socfpga_arria10_defconfig
@@ -55,3 +55,5 @@ CONFIG_USB=y
@ -52,7 +52,7 @@ index 8fdd21c0d3..61d8c3f7c4 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 c63c9d24ed..934fccc533 100644
index 66dc2473d6..906d79a5c3 100644
--- a/configs/turris_mox_defconfig
+++ b/configs/turris_mox_defconfig
@@ -36,7 +36,6 @@ CONFIG_CMD_TFTPPUT=y
@ -64,7 +64,7 @@ index c63c9d24ed..934fccc533 100644
CONFIG_MAC_PARTITION=y
CONFIG_ENV_OVERWRITE=y
diff --git a/configs/turris_omnia_defconfig b/configs/turris_omnia_defconfig
index 536be77ca7..e834f92828 100644
index 4b8843d7be..7f021e7003 100644
--- a/configs/turris_omnia_defconfig
+++ b/configs/turris_omnia_defconfig
@@ -50,7 +50,6 @@ CONFIG_CMD_CACHE=y

View File

@ -1,4 +1,4 @@
From f6c178cc6540fc57888e06c36f1813910f5432ed Mon Sep 17 00:00:00 2001
From 880d8bd547bf71fd91216d2725455fc373dd981a Mon Sep 17 00:00:00 2001
From: Matthias Brugger <mbrugger@suse.com>
Date: Wed, 29 Jan 2020 10:26:43 +0100
Subject: [PATCH] configs: am335x_evm: disable BTRFS
@ -11,12 +11,12 @@ Signed-off-by: Matthias Brugger <mbrugger@suse.com>
1 file changed, 2 insertions(+)
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index 78202a55c7..1d32f9589a 100644
index c615c54b1c..62db21203d 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -66,3 +66,5 @@ CONFIG_DYNAMIC_CRC_TABLE=y
@@ -65,3 +65,5 @@ CONFIG_WDT=y
CONFIG_DYNAMIC_CRC_TABLE=y
CONFIG_RSA=y
CONFIG_LZO=y
# CONFIG_OF_LIBFDT_OVERLAY is not set
+# CONFIG_CMD_BTRFS is not set
+# CONFIG_FS_BTRFS is not set

View File

@ -1,4 +1,4 @@
From c47d520bbeedb976159c3f3fb2e4c490b1b56d83 Mon Sep 17 00:00:00 2001
From 96d142c3738348da1ea98e39a8bbaf5c4a640692 Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msuchanek@suse.de>
Date: Tue, 29 Sep 2020 10:13:33 +0200
Subject: [PATCH] sunxi: dts: OrangePi Zero: Add SPI aliases to make bus usable

View File

@ -1,4 +1,4 @@
From 6b1054580c7d2fce12c3aea4a4fe7874dad54684 Mon Sep 17 00:00:00 2001
From b1098dbd2cc344dd9c2df14d7dfab0eb0a107959 Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msuchanek@suse.de>
Date: Mon, 28 Sep 2020 23:02:01 +0200
Subject: [PATCH] sunxi: dts: OrangePi Zero: Enable SPI flash.

View File

@ -1,4 +1,4 @@
From cb19bc680c9353acb48d0f90f3e91292701ef1bb Mon Sep 17 00:00:00 2001
From 415d7b01833b5c4271a9f7c209b82a5e9198ff21 Mon Sep 17 00:00:00 2001
From: Michal Suchanek <msuchanek@suse.de>
Date: Mon, 28 Sep 2020 23:02:02 +0200
Subject: [PATCH] sunxi: Enable SPI support on Orange Pi Zero

View File

@ -1,4 +1,4 @@
From a8517eab022f355186354858721b54a4747b3a8a Mon Sep 17 00:00:00 2001
From 42719d4568f2aec214e5d096fe0e096ba2000265 Mon Sep 17 00:00:00 2001
From: Guillaume Gardet <guillaume.gardet@arm.com>
Date: Wed, 18 Nov 2020 13:42:04 +0000
Subject: [PATCH] Disable CONFIG_CMD_BTRFS in xilinx_zynqmp_virt_defconfig to
@ -9,12 +9,12 @@ 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 a0984c8045..ab1889ab13 100644
index e400cd4702..a490f04de3 100644
--- a/configs/xilinx_zynqmp_virt_defconfig
+++ b/configs/xilinx_zynqmp_virt_defconfig
@@ -52,6 +52,7 @@ CONFIG_CMD_TFTPPUT=y
CONFIG_CMD_TIME=y
@@ -59,6 +59,7 @@ CONFIG_CMD_TIME=y
CONFIG_CMD_TIMER=y
CONFIG_CMD_TPM=y
CONFIG_CMD_EXT4_WRITE=y
+# CONFIG_CMD_BTRFS is not set
CONFIG_CMD_MTDPARTS=y

View File

@ -1,6 +1,6 @@
From 2fc18b303627de11d9c397a9cc3f6c678dc063a8 Mon Sep 17 00:00:00 2001
From e9db4aca83892ceba98c7712b91e31ada2ae2010 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Mon, 16 Nov 2020 11:25:11 +0100
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
@ -8,12 +8,8 @@ detect, so we can enable Ethernet on it and know the correct device tree
file name.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
---
Changes since v1:
- The RPi Foundation introduced a RPi400 specific device tree, so use
that file name instead of the fallback (RPi4b).
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
board/raspberrypi/rpi/rpi.c | 5 +++++
1 file changed, 5 insertions(+)

View File

@ -1,6 +1,6 @@
From 16c55dcf5b5f757f7847204e010c1fbbde1c9875 Mon Sep 17 00:00:00 2001
From b47e23c6f7a461ff3943d17ff7b6f23af27d5130 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Wed, 18 Nov 2020 16:48:39 +0100
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
@ -12,6 +12,8 @@ IO board has an Ethernet port. But that might not be the case when using
custom ones.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Peter Robinson <pbrobinson@gmail.com>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
board/raspberrypi/rpi/rpi.c | 5 +++++
1 file changed, 5 insertions(+)

View File

@ -1,6 +1,6 @@
From 79de6d0785678f2f7c14566ee4e526ef180634a5 Mon Sep 17 00:00:00 2001
From ce6a449a4b8721a295915187e5fa9fab0b686b3b Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Tue, 17 Nov 2020 17:50:33 +0100
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
@ -17,6 +17,7 @@ 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 <nsaenzjulienne@suse.de>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
drivers/pci/pcie_brcmstb.c | 12 +++++-------
1 file changed, 5 insertions(+), 7 deletions(-)

View File

@ -1,6 +1,6 @@
From 7b53f3bae226443173c035d99c2fb67d994be285 Mon Sep 17 00:00:00 2001
From c655ed2fd2cfa3a70783402a4cab78bbd0277858 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Tue, 17 Nov 2020 17:49:54 +0100
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:
@ -14,17 +14,7 @@ spaces.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes since v2:
- Return ENOENT instead of ENODEV
- Refcount of nodes
Changes since v1:
- Fix wrong arguments in of_get_dma_range()'s call to of_translate_dma_address()
- Fix build in SPL/TPL and no LIBFDT supprt
- Add missing declaration in 'core/read.c'
- Address Matthias' comments
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
common/fdt_support.c | 73 +++++++++++++++++++++++++++++++++++++++
drivers/core/of_addr.c | 78 ++++++++++++++++++++++++++++++++++++++++++
@ -37,10 +27,10 @@ Changes since v1:
8 files changed, 234 insertions(+)
diff --git a/common/fdt_support.c b/common/fdt_support.c
index a565b470f8..023757bd0e 100644
index 5ae75df3c6..bf855d26c8 100644
--- a/common/fdt_support.c
+++ b/common/fdt_support.c
@@ -1347,6 +1347,79 @@ u64 fdt_translate_dma_address(const void *blob, int node_offset,
@@ -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");
}
@ -210,10 +200,10 @@ index ca34d84922..703bc3e3f5 100644
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 d02d8d33fe..d4e69b0074 100644
index a68076bf35..15470d4875 100644
--- a/drivers/core/ofnode.c
+++ b/drivers/core/ofnode.c
@@ -888,6 +888,15 @@ u64 ofnode_translate_dma_address(ofnode node, const fdt32_t *in_addr)
@@ -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);
}
@ -230,10 +220,10 @@ index d02d8d33fe..d4e69b0074 100644
{
if (ofnode_is_np(node))
diff --git a/drivers/core/read.c b/drivers/core/read.c
index 86f3f88170..333e011fef 100644
index 076125824c..0994fbd979 100644
--- a/drivers/core/read.c
+++ b/drivers/core/read.c
@@ -337,6 +337,12 @@ u64 dev_translate_dma_address(const struct udevice *dev, const fdt32_t *in_addr)
@@ -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);
}
@ -275,10 +265,10 @@ index 3fa1ffce81..ee21d5cf4f 100644
* of_get_address() - obtain an address from a node
*
diff --git a/include/dm/ofnode.h b/include/dm/ofnode.h
index 8df2facf99..d1be553b37 100644
index ced7f6ffb2..dc3dd84d9f 100644
--- a/include/dm/ofnode.h
+++ b/include/dm/ofnode.h
@@ -915,6 +915,22 @@ u64 ofnode_translate_address(ofnode node, const fdt32_t *in_addr);
@@ -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);
@ -302,10 +292,10 @@ index 8df2facf99..d1be553b37 100644
* 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 67db94adfc..6ee7099bd4 100644
index 0585eb1228..46e902c57d 100644
--- a/include/dm/read.h
+++ b/include/dm/read.h
@@ -662,6 +662,21 @@ u64 dev_translate_address(const struct udevice *dev, const fdt32_t *in_addr);
@@ -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);
@ -327,7 +317,7 @@ index 67db94adfc..6ee7099bd4 100644
/**
* dev_read_alias_highest_id - Get highest alias id for the given stem
* @stem: Alias stem to be examined
@@ -1002,6 +1017,12 @@ static inline u64 dev_translate_dma_address(const struct udevice *dev,
@@ -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);
}
@ -341,7 +331,7 @@ index 67db94adfc..6ee7099bd4 100644
{
if (!CONFIG_IS_ENABLED(OF_LIBFDT))
diff --git a/include/fdt_support.h b/include/fdt_support.h
index 9684cffe80..963c917445 100644
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,

View File

@ -1,6 +1,6 @@
From 8cc51dc21c710f48692ba6fa1b51f9da3f7de9ca Mon Sep 17 00:00:00 2001
From f0b29f058d70dee8b1173da0559a3e16da919950 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Tue, 15 Dec 2020 13:51:16 +0100
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
@ -8,10 +8,7 @@ order to validate dev_get_dma_range().
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes since v3:
- Use ut_assertok() instead of ut_assert(!func())
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
arch/sandbox/dts/test.dts | 17 ++++++++++++++
test/dm/Makefile | 1 +
@ -20,11 +17,11 @@ Changes since v3:
create mode 100644 test/dm/read.c
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index 9f45c48e4e..c0ac4a793c 100644
index f3b766271d..3a3b51f83b 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -270,6 +270,23 @@
compatible = "denx,u-boot-devres-test";
@@ -292,6 +292,23 @@
test5-gpios = <&gpio_a 19>;
};
+ mmio-bus@0 {
@ -48,12 +45,12 @@ index 9f45c48e4e..c0ac4a793c 100644
compatible = "denx,u-boot-acpi-test";
acpi-ssdt-test-data = "ab";
diff --git a/test/dm/Makefile b/test/dm/Makefile
index 864c8d0b4c..3cf5c0f2ca 100644
index 46e076ed09..5c52d8b6ea 100644
--- a/test/dm/Makefile
+++ b/test/dm/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_UT_DM) += test-uclass.o
# Tests for particular subsystems - when enabling driver model for a new
# subsystem you must add sandbox tests here.
@@ -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),)

View File

@ -1,6 +1,6 @@
From 8d35d23d658c1a50b591f67951a5c24890687fea Mon Sep 17 00:00:00 2001
From d327db89d06e0532645a2ec5151aaca7299939fd Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Thu, 19 Nov 2020 17:17:24 +0100
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
@ -13,23 +13,7 @@ it.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes since v4:
- Use macros to access dma_offset
Changes since v3:
- Comment functions and struct variables
- Correct typos
Changes since v2:
- Return/Fail on error
- Add config option
- use ulong instead for u64 for dev->dma_offset
Changes since v1:
- Update commit message so as to explain better the reasoning behind
this
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
drivers/core/Kconfig | 10 ++++++++++
drivers/core/device.c | 41 +++++++++++++++++++++++++++++++++++++++++
@ -37,10 +21,10 @@ Changes since v1:
3 files changed, 64 insertions(+)
diff --git a/drivers/core/Kconfig b/drivers/core/Kconfig
index 00d1d80dc3..ea90cecc86 100644
index ffae6f9795..295cf2dd00 100644
--- a/drivers/core/Kconfig
+++ b/drivers/core/Kconfig
@@ -99,6 +99,16 @@ config SPL_DM_SEQ_ALIAS
@@ -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.
@ -58,10 +42,10 @@ index 00d1d80dc3..ea90cecc86 100644
bool "Support register maps"
depends on DM
diff --git a/drivers/core/device.c b/drivers/core/device.c
index 355dbd147a..d41dab88da 100644
index 4b3dcb3b37..788ce6046a 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -402,6 +402,43 @@ fail:
@@ -421,6 +421,43 @@ fail:
return ret;
}
@ -83,7 +67,7 @@ index 355dbd147a..d41dab88da 100644
+ u64 size = 0;
+ int ret;
+
+ if (!CONFIG_IS_ENABLED(DM_DMA) || !parent || !dev_of_valid(parent))
+ if (!CONFIG_IS_ENABLED(DM_DMA) || !parent || !dev_has_of_node(parent))
+ return 0;
+
+ /*
@ -105,7 +89,7 @@ index 355dbd147a..d41dab88da 100644
int device_probe(struct udevice *dev)
{
const struct driver *drv;
@@ -463,6 +500,10 @@ int device_probe(struct udevice *dev)
@@ -482,6 +519,10 @@ int device_probe(struct udevice *dev)
goto fail;
}
@ -117,7 +101,7 @@ index 355dbd147a..d41dab88da 100644
if (ret)
goto fail;
diff --git a/include/dm/device.h b/include/dm/device.h
index 953706cf52..9d4670424b 100644
index 5bef484247..b27889af01 100644
--- a/include/dm/device.h
+++ b/include/dm/device.h
@@ -138,6 +138,8 @@ enum {

View File

@ -1,16 +1,13 @@
From 612c8faa01d20895eff45b9681c6406b6daf7035 Mon Sep 17 00:00:00 2001
From 763aa398ef98782c2801611b9918ea84375b2b79 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Mon, 14 Dec 2020 20:45:19 +0100
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 <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes since v3:
- Use ut_assertok() instead of ut_assert(!func())
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
arch/sandbox/dts/test.dts | 4 ++++
configs/sandbox64_defconfig | 1 +
@ -21,10 +18,10 @@ Changes since v3:
6 files changed, 38 insertions(+)
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
index c0ac4a793c..ff5d65a522 100644
index 3a3b51f83b..78f0100282 100644
--- a/arch/sandbox/dts/test.dts
+++ b/arch/sandbox/dts/test.dts
@@ -285,6 +285,10 @@
@@ -307,6 +307,10 @@
#address-cells = <1>;
#size-cells = <1>;
compatible = "denx,u-boot-test-bus";
@ -36,10 +33,10 @@ index c0ac4a793c..ff5d65a522 100644
acpi_test1: acpi-test {
diff --git a/configs/sandbox64_defconfig b/configs/sandbox64_defconfig
index 9c102948c0..6cd0c3b19e 100644
index 1afe9a4665..f250723827 100644
--- a/configs/sandbox64_defconfig
+++ b/configs/sandbox64_defconfig
@@ -91,6 +91,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0"
@@ -93,6 +93,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0"
CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y
@ -48,10 +45,10 @@ index 9c102948c0..6cd0c3b19e 100644
CONFIG_SYSCON=y
CONFIG_DEVRES=y
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
index 92ffe48432..10132088c6 100644
index 5bc9186d6e..e40f619e75 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
@@ -104,6 +104,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0"
@@ -107,6 +107,7 @@ CONFIG_ENV_EXT4_DEVICE_AND_PART="0:0"
CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y
@ -60,7 +57,7 @@ index 92ffe48432..10132088c6 100644
CONFIG_SYSCON=y
CONFIG_DEVRES=y
diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig
index dd93167e1b..528e6d4ff0 100644
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"
@ -72,10 +69,10 @@ index dd93167e1b..528e6d4ff0 100644
CONFIG_SYSCON=y
CONFIG_DEVRES=y
diff --git a/configs/sandbox_spl_defconfig b/configs/sandbox_spl_defconfig
index 6d8e827aeb..c8b62eba21 100644
index 479f0226e3..0a4815770c 100644
--- a/configs/sandbox_spl_defconfig
+++ b/configs/sandbox_spl_defconfig
@@ -93,6 +93,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
@@ -94,6 +94,7 @@ CONFIG_BOOTP_SEND_HOSTNAME=y
CONFIG_NETCONSOLE=y
CONFIG_IP_DEFRAG=y
CONFIG_SPL_DM=y
@ -84,10 +81,10 @@ index 6d8e827aeb..c8b62eba21 100644
CONFIG_SPL_REGMAP=y
CONFIG_SYSCON=y
diff --git a/test/dm/core.c b/test/dm/core.c
index 8ed5bf7370..c079655b4d 100644
index 6f380a574c..8ca49d09ee 100644
--- a/test/dm/core.c
+++ b/test/dm/core.c
@@ -906,3 +906,33 @@ static int dm_test_inactive_child(struct unit_test_state *uts)
@@ -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);

View File

@ -1,6 +1,6 @@
From 71105045bc57b3fa5a9970d98c59f56ab06cbf80 Mon Sep 17 00:00:00 2001
From c9ac0a0da12755016d1fbfe2a31bab0ddcdddfda Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Thu, 19 Nov 2020 17:15:31 +0100
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
@ -14,13 +14,7 @@ device model.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
---
Changes since v4:
- Introduce macros for !DM case to make API usage cleaner
Changes since v2:
- Use CONFIG_DM_DMA
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
include/phys2bus.h | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

View File

@ -1,6 +1,6 @@
From 1c7fb1ce2ac1c98d3a0747020751b6062530bfce Mon Sep 17 00:00:00 2001
From f169928dad5b95413fefc3749e54a39bf481c401 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Mon, 14 Dec 2020 21:04:04 +0100
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()
@ -9,11 +9,7 @@ test to validate dev_phys_to_bus()/dev_bus_to_phys().
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes since v3:
- Use ut_assertok() instead of ut_assert(!func())
- Use ut_assert_addr()
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
test/dm/Makefile | 1 +
test/dm/phys2bus.c | 37 +++++++++++++++++++++++++++++++++++++
@ -21,11 +17,11 @@ Changes since v3:
create mode 100644 test/dm/phys2bus.c
diff --git a/test/dm/Makefile b/test/dm/Makefile
index 3cf5c0f2ca..bc955ad291 100644
index 5c52d8b6ea..ac86abaa88 100644
--- a/test/dm/Makefile
+++ b/test/dm/Makefile
@@ -13,6 +13,7 @@ obj-$(CONFIG_UT_DM) += test-uclass.o
# subsystem you must add sandbox tests here.
@@ -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

View File

@ -1,6 +1,6 @@
From 16bb2e3d352e5be135ef9ec30c86042f18f2fb0f Mon Sep 17 00:00:00 2001
From bc8e6db54d2f5a51b2e74af47a79a0a366f3c611 Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Tue, 17 Nov 2020 17:52:02 +0100
Date: Tue, 12 Jan 2021 13:55:28 +0100
Subject: [PATCH] xhci: translate virtual addresses into the bus's address
space
@ -16,26 +16,16 @@ limitations, and make sure we don't break non DM users.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Stefan Roese <sr@denx.de>
---
Changes since v5:
- Fix bulk transfers
Changes since v4:
- Introduce macro to access ctrl->dev
- No need to make code conditional on DM_DMA with new macros
Changes since v3:
- Don't call phys_to_bus()/bus_to_phys(), we only support DM
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
drivers/usb/host/xhci-mem.c | 45 +++++++++++++++++++-----------------
drivers/usb/host/xhci-ring.c | 11 +++++----
drivers/usb/host/xhci-ring.c | 13 +++++++----
drivers/usb/host/xhci.c | 4 ++--
include/usb/xhci.h | 20 +++++++++++++++-
4 files changed, 52 insertions(+), 28 deletions(-)
4 files changed, 53 insertions(+), 29 deletions(-)
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index 1da0524aa0..e01b943f22 100644
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)
@ -67,7 +57,7 @@ index 1da0524aa0..e01b943f22 100644
prev->trbs[TRBS_PER_SEGMENT-1].link.segment_ptr =
cpu_to_le64(val_64);
@@ -305,7 +305,8 @@ static struct xhci_segment *xhci_segment_alloc(void)
@@ -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
*/
@ -77,7 +67,7 @@ index 1da0524aa0..e01b943f22 100644
{
struct xhci_ring *ring;
struct xhci_segment *prev;
@@ -328,12 +329,12 @@ struct xhci_ring *xhci_ring_alloc(unsigned int num_segs, bool link_trbs)
@@ -327,12 +328,12 @@ struct xhci_ring *xhci_ring_alloc(unsigned int num_segs, bool link_trbs)
next = xhci_segment_alloc();
BUG_ON(!next);
@ -92,7 +82,7 @@ index 1da0524aa0..e01b943f22 100644
if (link_trbs) {
/* See section 4.9.2.1 and 6.4.4.1 */
prev->trbs[TRBS_PER_SEGMENT-1].link.control |=
@@ -355,6 +356,7 @@ static int xhci_scratchpad_alloc(struct xhci_ctrl *ctrl)
@@ -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;
@ -100,7 +90,7 @@ index 1da0524aa0..e01b943f22 100644
int num_sp;
uint32_t page_size;
void *buf;
@@ -372,8 +374,9 @@ static int xhci_scratchpad_alloc(struct xhci_ctrl *ctrl)
@@ -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;
@ -112,7 +102,7 @@ index 1da0524aa0..e01b943f22 100644
xhci_flush_cache((uintptr_t)&ctrl->dcbaa->dev_context_ptrs[0],
sizeof(ctrl->dcbaa->dev_context_ptrs[0]));
@@ -394,8 +397,8 @@ static int xhci_scratchpad_alloc(struct xhci_ctrl *ctrl)
@@ -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++) {
@ -123,7 +113,7 @@ index 1da0524aa0..e01b943f22 100644
}
xhci_flush_cache((uintptr_t)scratchpad->sp_array,
@@ -487,9 +490,9 @@ int xhci_alloc_virt_device(struct xhci_ctrl *ctrl, unsigned int slot_id)
@@ -484,9 +487,9 @@ int xhci_alloc_virt_device(struct xhci_ctrl *ctrl, unsigned int slot_id)
}
/* Allocate endpoint 0 ring */
@ -135,7 +125,7 @@ index 1da0524aa0..e01b943f22 100644
/* Point to output device context in dcbaa. */
ctrl->dcbaa->dev_context_ptrs[slot_id] = cpu_to_le64(byte_64);
@@ -526,15 +529,15 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr,
@@ -522,15 +525,15 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr,
return -ENOMEM;
}
@ -154,16 +144,16 @@ index 1da0524aa0..e01b943f22 100644
val_64 = xhci_readq(&hcor->or_crcr);
val_64 = (val_64 & (u64) CMD_RING_RSVD_BITS) |
(trb_64 & (u64) ~CMD_RING_RSVD_BITS) |
@@ -555,7 +558,7 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr,
@@ -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 = (struct xhci_erst_entry *)
xhci_malloc(sizeof(struct xhci_erst_entry) * ERST_NUM_SEGS);
ctrl->erst.entries = xhci_malloc(sizeof(struct xhci_erst_entry) *
ERST_NUM_SEGS);
@@ -564,8 +567,8 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr,
@@ -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++) {
@ -173,7 +163,7 @@ index 1da0524aa0..e01b943f22 100644
entry->seg_addr = cpu_to_le64(trb_64);
entry->seg_size = cpu_to_le32(TRBS_PER_SEGMENT);
entry->rsvd = 0;
@@ -574,7 +577,7 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr,
@@ -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));
@ -182,7 +172,7 @@ index 1da0524aa0..e01b943f22 100644
/* Update HC event ring dequeue pointer */
xhci_writeq(&ctrl->ir_set->erst_dequeue,
@@ -589,7 +592,7 @@ int xhci_mem_init(struct xhci_ctrl *ctrl, struct xhci_hccr *hccr,
@@ -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;
@ -191,9 +181,9 @@ index 1da0524aa0..e01b943f22 100644
xhci_writeq(&ctrl->ir_set->erst_base, val_64);
@@ -857,7 +860,7 @@ void xhci_setup_addressable_virt_dev(struct xhci_ctrl *ctrl,
cpu_to_le32(((0 & MAX_BURST_MASK) << MAX_BURST_SHIFT) |
((3 & ERROR_COUNT_MASK) << ERROR_COUNT_SHIFT));
@@ -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);
@ -201,7 +191,7 @@ index 1da0524aa0..e01b943f22 100644
/*
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 092ed6eaf1..27e7a39571 100644
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,
@ -219,7 +209,7 @@ index 092ed6eaf1..27e7a39571 100644
fields[0] = lower_32_bits(val_64);
fields[1] = upper_32_bits(val_64);
fields[2] = 0;
@@ -399,7 +402,7 @@ void xhci_acknowledge_event(struct xhci_ctrl *ctrl)
@@ -401,7 +404,7 @@ void xhci_acknowledge_event(struct xhci_ctrl *ctrl)
/* Inform the hardware */
xhci_writeq(&ctrl->ir_set->erst_dequeue,
@ -228,16 +218,25 @@ index 092ed6eaf1..27e7a39571 100644
}
/**
@@ -577,7 +580,7 @@ int xhci_bulk_tx(struct usb_device *udev, unsigned long pipe,
@@ -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;
debug("dev=%p, pipe=%lx, buffer=%p, length=%d\n",
udev, pipe, buffer, length);
@@ -876,7 +879,7 @@ int xhci_ctrl_tx(struct usb_device *udev, unsigned long pipe,
@@ -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;
@ -247,10 +246,10 @@ index 092ed6eaf1..27e7a39571 100644
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 126dabc11b..6b4dce9bca 100644
index 7080f8fabe..d27ac01c83 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -606,7 +606,7 @@ static int xhci_set_configuration(struct usb_device *udev)
@@ -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 */
@ -259,7 +258,7 @@ index 126dabc11b..6b4dce9bca 100644
if (!virt_dev->eps[ep_index].ring)
return -ENOMEM;
@@ -631,7 +631,7 @@ static int xhci_set_configuration(struct usb_device *udev)
@@ -628,7 +628,7 @@ static int xhci_set_configuration(struct usb_device *udev)
cpu_to_le32(MAX_BURST(max_burst) |
ERROR_COUNT(err_count));
@ -269,7 +268,7 @@ index 126dabc11b..6b4dce9bca 100644
virt_dev->eps[ep_index].ring->cycle_state);
diff --git a/include/usb/xhci.h b/include/usb/xhci.h
index 7d34103fd5..048149fb11 100644
index e1d382369a..8d95e213b0 100644
--- a/include/usb/xhci.h
+++ b/include/usb/xhci.h
@@ -16,6 +16,7 @@
@ -280,8 +279,8 @@ index 7d34103fd5..048149fb11 100644
#include <reset.h>
#include <asm/types.h>
#include <asm/cache.h>
@@ -1229,6 +1230,12 @@ struct xhci_ctrl {
int rootdev;
@@ -1221,6 +1222,12 @@ struct xhci_ctrl {
#define XHCI_MTK_HOST BIT(0)
};
+#if CONFIG_IS_ENABLED(DM_USB)
@ -293,7 +292,7 @@ index 7d34103fd5..048149fb11 100644
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);
@@ -1258,7 +1265,8 @@ int xhci_check_maxpacket(struct usb_device *udev);
@@ -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);
@ -303,7 +302,7 @@ index 7d34103fd5..048149fb11 100644
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);
@@ -1286,4 +1294,14 @@ extern struct dm_usb_ops xhci_usb_ops;
@@ -1278,4 +1286,14 @@ extern struct dm_usb_ops xhci_usb_ops;
struct xhci_ctrl *xhci_get_ctrl(struct usb_device *udev);

View File

@ -1,6 +1,6 @@
From 9d5e73021a5778a29855140e50aa5309e7611618 Mon Sep 17 00:00:00 2001
From 8c9cce2f60aa7ded50f42c7de363f7d6af91c66a Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Thu, 19 Nov 2020 16:39:00 +0100
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()
@ -8,21 +8,14 @@ when relevant.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
Changes since v4:
- Introduce mmc->dev access macros to avoid ifdefs
- No need to create mmc_phys_to_bus()
Changes since v3:
- Don't call phys_to_bus()/bus_to_phys(), we only support DM
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
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 7673219fb3..874b686750 100644
index 0628934312..62e4f53b8b 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -14,12 +14,12 @@
@ -39,7 +32,7 @@ index 7673219fb3..874b686750 100644
static void sdhci_reset(struct sdhci_host *host, u8 mask)
{
@@ -124,6 +124,7 @@ static void sdhci_prepare_adma_table(struct sdhci_host *host,
@@ -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)
{
@ -47,7 +40,7 @@ index 7673219fb3..874b686750 100644
unsigned char ctrl;
void *buf;
@@ -154,8 +155,8 @@ static void sdhci_prepare_dma(struct sdhci_host *host, struct mmc_data *data,
@@ -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) {
@ -55,10 +48,10 @@ index 7673219fb3..874b686750 100644
- 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);
} else if (host->flags & (USE_ADMA | USE_ADMA64)) {
sdhci_prepare_adma_table(host, data);
@@ -209,8 +210,9 @@ static int sdhci_transfer_data(struct sdhci_host *host, struct mmc_data *data)
}
#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;
@ -71,11 +64,11 @@ index 7673219fb3..874b686750 100644
}
if (timeout-- > 0)
diff --git a/include/mmc.h b/include/mmc.h
index 82562193cc..d3f6c955d6 100644
index 1d377e0281..c12c7a0b5c 100644
--- a/include/mmc.h
+++ b/include/mmc.h
@@ -699,6 +699,12 @@ struct mmc {
u32 quirks;
@@ -736,6 +736,12 @@ struct mmc {
u8 hs400_tuning;
};
+#if CONFIG_IS_ENABLED(DM_MMC)

View File

@ -1,6 +1,6 @@
From b8247b786c889b0141854d8a745409b7dd131d81 Mon Sep 17 00:00:00 2001
From 27d0b40ed0c1f997635ee216cfe199081fb5112e Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Tue, 15 Dec 2020 13:35:34 +0100
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
@ -8,6 +8,7 @@ bus addresses on a per-device basis.
Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
configs/rpi_4_32b_defconfig | 1 +
configs/rpi_4_defconfig | 1 +
@ -15,7 +16,7 @@ Reviewed-by: Simon Glass <sjg@chromium.org>
3 files changed, 3 insertions(+)
diff --git a/configs/rpi_4_32b_defconfig b/configs/rpi_4_32b_defconfig
index 4a88448e9d..e6c038e750 100644
index 5ddd838fd5..0a5d3ff8cd 100644
--- a/configs/rpi_4_32b_defconfig
+++ b/configs/rpi_4_32b_defconfig
@@ -22,6 +22,7 @@ CONFIG_OF_BOARD=y
@ -27,7 +28,7 @@ index 4a88448e9d..e6c038e750 100644
CONFIG_DM_KEYBOARD=y
CONFIG_DM_MMC=y
diff --git a/configs/rpi_4_defconfig b/configs/rpi_4_defconfig
index 71f95ed8f7..e8d6fb7e85 100644
index 2590d0a696..b61cdc05f1 100644
--- a/configs/rpi_4_defconfig
+++ b/configs/rpi_4_defconfig
@@ -22,6 +22,7 @@ CONFIG_OF_BOARD=y
@ -39,7 +40,7 @@ index 71f95ed8f7..e8d6fb7e85 100644
CONFIG_DM_KEYBOARD=y
CONFIG_DM_MMC=y
diff --git a/configs/rpi_arm64_defconfig b/configs/rpi_arm64_defconfig
index 4ce8469f43..7d837a9e93 100644
index 2639219a1a..4125a1feba 100644
--- a/configs/rpi_arm64_defconfig
+++ b/configs/rpi_arm64_defconfig
@@ -20,6 +20,7 @@ CONFIG_CMD_FS_UUID=y

View File

@ -1,6 +1,6 @@
From 83e81b4e04c3ef65402f161283a4b3faa50748c7 Mon Sep 17 00:00:00 2001
From c324f9b25039bb271365363f1c4959fcd245797d Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Mon, 21 Dec 2020 13:41:08 +0100
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
@ -9,10 +9,7 @@ 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 <nsaenzjulienne@suse.de>
---
Changes since v3:
- Add this patch
Tested-by: Peter Robinson <pbrobinson@gmail.com>
---
drivers/video/bcm2835.c | 1 +
1 file changed, 1 insertion(+)

View File

@ -1,4 +1,4 @@
From 3b24be6bc5ac356b99a4c0441c64b599acb35c13 Mon Sep 17 00:00:00 2001
From 38b6c858e17884d5f4ccfb1a65ce1d5f6819188e Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Thu, 14 Jan 2021 16:49:00 +0100
Subject: [PATCH] usb: xhci-pci: Add DM_FLAG_OS_PREPARE flag

View File

@ -1,33 +0,0 @@
From 09332b4c60063e0f0f975f80211d2554eb18389f Mon Sep 17 00:00:00 2001
From: Stefan Roese <sr@denx.de>
Date: Mon, 24 Aug 2020 13:04:37 +0200
Subject: [PATCH] usb: xhci: xhci_bulk_tx: Don't "BUG" when comparing addresses
Octeon uses mapped addresses for virtual and physical memory. It's not
that easy to calculate the resulting addresses here. So let's remove
this BUG_ON() completely, as it's not really helpful.
Please also note, that BUG_ON() is not recommended any more in the Linux
kernel.
Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Marek Vasut <marex@denx.de>
---
drivers/usb/host/xhci-ring.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 27e7a39571..af8a12fc21 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -729,8 +729,6 @@ int xhci_bulk_tx(struct usb_device *udev, unsigned long pipe,
BUG_ON(TRB_TO_SLOT_ID(field) != slot_id);
BUG_ON(TRB_TO_EP_INDEX(field) != ep_index);
- BUG_ON(*(void **)(uintptr_t)le64_to_cpu(event->trans_event.buffer) -
- buffer > (size_t)length);
record_transfer_result(udev, event, length);
xhci_acknowledge_event(ctrl);

View File

@ -1,37 +0,0 @@
From 2b3131bde95b261cd67f99a520b16936a5f50ea2 Mon Sep 17 00:00:00 2001
From: Marek Vasut <marex@denx.de>
Date: Mon, 19 Oct 2020 23:40:26 +0200
Subject: [PATCH] Revert "Fix data abort caused by mis-aligning FIT data"
This reverts commit eb39d8ba5f0d1468b01b89a2a464d18612d3ea76.
The commit breaks booting of fitImage by SPL, the system simply hangs.
This is because on arm32, the fitImage and all of its content can be
aligned to 4 bytes and U-Boot expects just that.
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Reuben Dowle <reuben.dowle@4rf.com>
Cc: Tom Rini <trini@konsulko.com>
Signed-off-by: Marek Vasut <marex@denx.de>
---
common/spl/spl_fit.c | 7 ++-----
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/common/spl/spl_fit.c b/common/spl/spl_fit.c
index a8bfd388b1..365104fe02 100644
--- a/common/spl/spl_fit.c
+++ b/common/spl/spl_fit.c
@@ -349,12 +349,9 @@ static int spl_fit_append_fdt(struct spl_image_info *spl_image,
/*
* Use the address following the image as target address for the
- * device tree. Load address is aligned to 8 bytes to match the required
- * alignment specified for linux arm [1] and arm 64 [2] booting
- * [1]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/arm/booting.rst#n126
- * [2]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/arm64/booting.rst#n45
+ * device tree.
*/
- image_info.load_addr = ALIGN(spl_image->load_addr + spl_image->size, 8);
+ image_info.load_addr = spl_image->load_addr + spl_image->size;
/* Figure out which device tree the board wants to use */
node = spl_fit_get_image_node(fit, images, FIT_FDT_PROP, index++);

View File

@ -1,4 +1,4 @@
From 8566f4fb6d707b40121a02b081dadb558ae9ce66 Mon Sep 17 00:00:00 2001
From 9b76a8d285bac34d64d8c544931625bcaa83dfaa Mon Sep 17 00:00:00 2001
From: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Date: Thu, 14 Jan 2021 16:49:01 +0100
Subject: [PATCH] pci: brcmstb: Cleanup controller state before handover

View File

@ -0,0 +1,31 @@
From f3d0d5e548431be08036b4671d750f73a1a258d4 Mon Sep 17 00:00:00 2001
From: Matthias Brugger <mbrugger@suse.com>
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 <mbrugger@suse.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
---
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

View File

@ -0,0 +1,148 @@
From 3ed82e218b5aabdc5956c5ad4a70d609034a6a2d Mon Sep 17 00:00:00 2001
From: Ilias Apalodimas <ilias.apalodimas@linaro.org>
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.
<snip of efi_var_mem_find>
0000000000000084 <efi_var_mem_find>:
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 <efi_var_mem_find>:
b4: aa0003ee mov x14, x0
b8: 9000000a adrp x10, 0 <efi_var_mem_compare>
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 <atishp@atishpatra.org>
Tested-by: Atish Patra <atish.patra@wdc.com>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
(cherry picked from commit 53e54bf50d285597c1553cdf2bd0e646fcd4dd60)
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
---
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 <efi_variable.h>
#include <u-boot/crc.h>
-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 */

View File

@ -62,15 +62,16 @@
<flavor>p2771-0000-500</flavor>
<flavor>p3450-0000</flavor>
<flavor>paz00</flavor>
<flavor>pcm051rev3</flavor>
<flavor>pine64plus</flavor>
<flavor>pinebook</flavor>
<flavor>pinebook-pro-rk3399</flavor>
<flavor>pineh64</flavor>
<flavor>pinephone</flavor>
<flavor>poplar</flavor>
<flavor>qemu-ppce500</flavor>
<flavor>qemu-riscv64</flavor>
<flavor>qemu-riscv64smode</flavor>
<flavor>qemu-riscv64spl</flavor>
<flavor>rock-pi-4-rk3399</flavor>
<flavor>rock64-rk3328</flavor>
<flavor>rock960-rk3399</flavor>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0d481bbdc05c0ee74908ec2f56a6daa53166cc6a78a0e4fac2ac5d025770a622
size 15784894

Binary file not shown.

3
u-boot-2021.01.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b407e1510a74e863b8b5cb42a24625344f0e0c2fc7582d8c866bd899367d0454
size 16375990

BIN
u-boot-2021.01.tar.bz2.sig Normal file

Binary file not shown.

View File

@ -1,3 +1,48 @@
-------------------------------------------------------------------
Tue Feb 16 17:10:57 UTC 2021 - Andreas Schwab <schwab@suse.de>
- Add qemu-riscv64spl
Patch queue updated from git://github.com/openSUSE/u-boot.git tumbleweed-2021.01
* Patches added:
0031-efi_loader-Avoid-emitting-efi_var_b.patch
-------------------------------------------------------------------
Tue Feb 16 16:17:09 UTC 2021 - Matthias Brugger <mbrugger@suse.com>
- Drop pcm051rev3 for Phytec Wega board
-------------------------------------------------------------------
Mon Feb 15 12:10:19 UTC 2021 - Matthias Brugger <mbrugger@suse.com>
- Fix binary extension for sunxi based boards
-------------------------------------------------------------------
Thu Feb 11 08:10:45 UTC 2021 - Adrian Campos Garrido <adriancampos@teachelp.com>
- Add Pinephone
-------------------------------------------------------------------
Wed Jan 27 11:10:45 UTC 2021 - Matthias Brugger <mbrugger@suse.com>
- Fix documentation location
-------------------------------------------------------------------
Wed Jan 27 10:34:51 UTC 2021 - Matthias Brugger <mbrugger@suse.com>
Update to v2021.01.
Patch queue updated from git://github.com/openSUSE/u-boot.git tumbleweed-2021.01
* Patches dropped:
0028-usb-xhci-xhci_bulk_tx-Don-t-BUG-whe.patch
0029-Revert-Fix-data-abort-caused-by-mis.patch
0030-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch
0031-pci-brcmstb-Cleanup-controller-stat.patch
* Patches added:
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
-------------------------------------------------------------------
Tue Jan 19 12:50:57 UTC 2021 - Matthias Brugger <mbrugger@suse.com>

View File

@ -84,7 +84,7 @@
%define is_a64 1
%define is_armv8 1
%define sunxi_spl 1
%define binext .itb
%define binext .img
%endif
%if "%target" == "mt7623nbpir2"
@ -95,13 +95,18 @@
%define is_h5 1
%define is_armv8 1
%define sunxi_spl 1
%define binext .itb
%define binext .img
%endif
%if "%target" == "pineh64"
%define is_h6 1
%define is_armv8 1
%define sunxi_spl 1
%define binext .itb
%define binext .img
%endif
%if "%target" == "pinephone"
%define is_armv8 1
%define is_a64 1
%define sunxi_spl 1
%endif
%if "%target" == "bananapi" || "%target" == "cubieboard" || "%target" == "cubieboard2" || "%target" == "cubietruck" || "%target" == "melea1000" || "%target" == "a10-olinuxino-lime" || "%target" == "a13-olinuxino" || "%target" == "a13-olinuxinom" || "%target" == "a20-olinuxino-lime" || "%target" == "a20-olinuxino-lime2" || "%target" == "a20-olinuxinomicro" || "%target" == "nanopineo" || "%target" == "orangepipc" || "%target" == "hyundaia7hd" || "%target" == "lamobor1" || "%target" == "bananapim2plush3" || "%target" == "bananapim2zero" || "%target" == "orangepizero"
%define is_armv7 1
@ -126,7 +131,7 @@
%define is_armv7 1
%define binext .img
%endif
%if "%target" == "omap3beagle" || "%target" == "omap4panda" || "%target" == "am335xevm" || "%target" == "pcm051rev3"
%if "%target" == "omap3beagle" || "%target" == "omap4panda" || "%target" == "am335xevm"
%define x_loader 1
%define is_armv7 1
%define binext .img
@ -161,9 +166,9 @@
%define is_armv7 1
%define binext .img
%endif
%if "%target" == "qemu-riscv64" || "%target" == "qemu-riscv64smode" || "%target" == "sifivefu540"
%if "%target" == "qemu-riscv64" || "%target" == "qemu-riscv64smode" || "%target" == "qemu-riscv64spl" || "%target" == "sifivefu540"
%define is_riscv64 1
%if "%target" == "sifivefu540"
%if "%target" == "qemu-riscv64spl" || "%target" == "sifivefu540"
%define binext .itb
%endif
%endif
@ -171,7 +176,7 @@
%define is_ppc 1
%endif
# archive_version differs from version for RC version only
%define archive_version 2020.10
%define archive_version 2021.01
%if "%{target}" == ""
ExclusiveArch: do_not_build
%else
@ -203,7 +208,7 @@ ExclusiveArch: do_not_build
%endif
%bcond_with uboot_atf
%bcond_with uboot_atf_pine64
Version: 2020.10
Version: 2021.01
Release: 0
Summary: The U-Boot firmware for the %target platform
License: GPL-2.0-only
@ -242,10 +247,10 @@ 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-xhci_bulk_tx-Don-t-BUG-whe.patch
Patch0029: 0029-Revert-Fix-data-abort-caused-by-mis.patch
Patch0030: 0030-usb-xhci-pci-Add-DM_FLAG_OS_PREPARE.patch
Patch0031: 0031-pci-brcmstb-Cleanup-controller-stat.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
# Patches: end
BuildRequires: bc
BuildRequires: bison
@ -256,6 +261,7 @@ BuildRequires: flex
BuildRequires: libopenssl-devel
BuildRequires: pkgconfig
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: swig
BuildRequires: pkgconfig(sdl)
Conflicts: u-boot-loader
@ -323,6 +329,9 @@ BuildRequires: zynqmp-dts
# For mountpoint
Requires(post): util-linux
%endif
%if "%{name}" == "u-boot-qemu-riscv64spl"
BuildRequires: opensbi >= 0.7
%endif
%if "%{name}" == "u-boot-sifivefu540"
BuildRequires: opensbi-sifivefu540 >= 0.7
%endif
@ -368,6 +377,7 @@ This package contains:
mkimage- a tool that creates kernel bootable images for U-Boot.
%else
%package doc
Summary: Documentation for the U-Boot Firmware
Group: Documentation/Other
@ -393,9 +403,14 @@ make %{?_smp_mflags} CFLAGS="%{optflags}" tools-only
export SOURCE_DATE_EPOCH=$(date -d "$(head -n 2 %{_sourcedir}/u-boot.changes | tail -n 1 | cut -d- -f1 )" +%s)
%if 0%{?is_a64} || 0%{?is_h5}
export BL31=%{_datadir}/arm-trusted-firmware-sun50i_a64/bl31.bin
export SCP=/dev/null
%endif
%if 0%{?is_h6}
export BL31=%{_datadir}/arm-trusted-firmware-sun50i_h6/bl31.bin
export SCP=/dev/null
%endif
%if "%{name}" == "u-boot-qemu-riscv64spl"
export OPENSBI=%{_datadir}/opensbi/opensbi.bin
%endif
%if "%{name}" == "u-boot-sifivefu540"
export OPENSBI=%{_datadir}/opensbi/opensbi-sifive-fu540.bin
@ -442,12 +457,6 @@ make %{?_smp_mflags} CROSS_COMPILE= HOSTCFLAGS="%{optflags}" \
all
%endif
%ifarch aarch64
%if %sunxi_spl == 1
cat spl/sunxi-spl.bin u-boot.itb > u-boot-sunxi-with-spl.bin
%endif
%endif
%if "%{name}" == "u-boot-snow" || "%{name}" == "u-boot-spring"
# Chromebook ARM (snow) and HP Chromebook 11 (spring) need a uImage format
export TEXT_START=$(awk '$NF == "_start" { printf "0x"$1 }' System.map)
@ -560,7 +569,7 @@ echo -e "\nkernel_address=0x11000000" >> %{buildroot}%{uboot_dir}/ubootconfig.tx
%if "%{name}" == "u-boot-rpi4" || "%{name}" == "u-boot-rpiarm64"
echo -e "# Boot in AArch64 mode\narm_64bit=1" > %{buildroot}%{uboot_dir}/ubootconfig.txt
%endif
%if "%{name}" == "u-boot-sifivefu540"
%if "%{name}" == "u-boot-qemu-riscv64spl" || "%{name}" == "u-boot-sifivefu540"
install -D -m 0644 spl/u-boot-spl.bin %{buildroot}%{uboot_dir}/u-boot-spl.bin
%endif
@ -584,6 +593,7 @@ fi
%if %tools_only
%files tools
%else
%files
%endif
%defattr(-,root,root)
@ -606,9 +616,11 @@ fi
%files doc
%defattr(-,root,root)
# Generic documents
%doc doc/README.JFFS2 doc/README.JFFS2_NAND doc/README.commands
%doc doc/README.autoboot doc/README.commands doc/README.console doc/README.dns
%doc doc/README.hwconfig doc/README.nand doc/README.NetConsole doc/README.serial_multi
%doc doc/develop/index.rst
%doc doc/usage/index.rst doc/usage/netconsole.rst
%doc doc/README.JFFS2 doc/README.JFFS2_NAND
%doc doc/README.autoboot doc/README.console doc/README.dns
%doc doc/README.hwconfig doc/README.nand doc/README.serial_multi
%doc doc/README.SNTP doc/README.standalone doc/README.update doc/README.usb
%doc doc/README.video doc/README.VLAN doc/README.silent doc/README.POST
# Copy some useful kermit scripts as well

View File

@ -12,9 +12,9 @@
set -e
GIT_TREE=git://github.com/openSUSE/u-boot.git
GIT_LOCAL_TREE=~/git/u-boot-opensuse
GIT_BRANCH=tumbleweed-2020.10
GIT_UPSTREAM_TAG=v2020.10
GIT_LOCAL_TREE=~/src/opensuse/u-boot
GIT_BRANCH=tumbleweed-2021.01
GIT_UPSTREAM_TAG=v2021.01
GIT_DIR=/dev/shm/u-boot-factory-git-dir
CMP_DIR=/dev/shm/u-boot-factory-cmp-dir