[For v2021.04] [PATCH 0/2] sunxi: last-minute H616 fixes

The link address of the BL31 Trusted Firmware code has changed during the development, so we need to fix the load address in our FIT image template accordingly. The H616 TF-A patches are about to be merged now:
https://review.trustedfirmware.org/q/topic:%22allwinner_h616%22+(status:open...)
Since H616 support was introduced in this cycle's merge window, we should merge those fixes before the release, to avoid compatiblity issues.
The second patch defers to TF-A to add the reserved memory node, we didn't have this code in the TF-A series initially. Having two conflicting reserved memory locations doesn't fly very well, so this one drops our hardcoded version.
Thanks! Andre
Andre Przywara (2): sunxi: H616: Change TF-A load address to beginning of DRAM sunxi: dts: H616: Drop reserved-memory node
arch/arm/dts/sun50i-h616.dtsi | 12 ------------ arch/arm/dts/sunxi-u-boot.dtsi | 2 +- 2 files changed, 1 insertion(+), 13 deletions(-)

Loading Trusted-Firmware's BL31 at 16KB into DRAM was originally a hack to allow sharing more code with the other SoCs (which use this offset in SRAM). However there is no longer a reason for that, as the problematic macros have been properly separated there.
The latest (and hopefully final) TF-A code drop now changes the load address to the beginning of DRAM, which is also more easily protected by the Trustzone memory controller (code to be done).
Adjust the load address of BL31 now, to avoid any issues with incompatible versions later on (the TF-A patches are about to be merged).
Signed-off-by: Andre Przywara andre.przywara@arm.com --- arch/arm/dts/sunxi-u-boot.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/dts/sunxi-u-boot.dtsi b/arch/arm/dts/sunxi-u-boot.dtsi index abe629c55e5..cd096bf2a06 100644 --- a/arch/arm/dts/sunxi-u-boot.dtsi +++ b/arch/arm/dts/sunxi-u-boot.dtsi @@ -4,7 +4,7 @@ #define BL31_ADDR 0x104000 #define SCP_ADDR 0x114000 #elif defined(CONFIG_MACH_SUN50I_H616) -#define BL31_ADDR 0x40004000 +#define BL31_ADDR 0x40000000 #else #define BL31_ADDR 0x44000 #define SCP_ADDR 0x50000

On 3/30/21 8:01 AM, Andre Przywara wrote:
Loading Trusted-Firmware's BL31 at 16KB into DRAM was originally a hack to allow sharing more code with the other SoCs (which use this offset in SRAM). However there is no longer a reason for that, as the problematic macros have been properly separated there.
The latest (and hopefully final) TF-A code drop now changes the load address to the beginning of DRAM, which is also more easily protected by the Trustzone memory controller (code to be done).
Adjust the load address of BL31 now, to avoid any issues with incompatible versions later on (the TF-A patches are about to be merged).
Signed-off-by: Andre Przywara andre.przywara@arm.com
Reviewed-by: Samuel Holland samuel@sholland.org
arch/arm/dts/sunxi-u-boot.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/dts/sunxi-u-boot.dtsi b/arch/arm/dts/sunxi-u-boot.dtsi index abe629c55e5..cd096bf2a06 100644 --- a/arch/arm/dts/sunxi-u-boot.dtsi +++ b/arch/arm/dts/sunxi-u-boot.dtsi @@ -4,7 +4,7 @@ #define BL31_ADDR 0x104000 #define SCP_ADDR 0x114000 #elif defined(CONFIG_MACH_SUN50I_H616) -#define BL31_ADDR 0x40004000 +#define BL31_ADDR 0x40000000 #else #define BL31_ADDR 0x44000 #define SCP_ADDR 0x50000

Trusted Firmware now adds the /reserved-memory subnode to the DT at runtime[1], putting in the right values.
Drop our hard-coded version, as this might clash with the actual values (which have also changed), and rely on TF-A to add the node.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/7770
Signed-off-by: Andre Przywara andre.przywara@arm.com --- arch/arm/dts/sun50i-h616.dtsi | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/arch/arm/dts/sun50i-h616.dtsi b/arch/arm/dts/sun50i-h616.dtsi index 953e8fac20f..dd4d2f31111 100644 --- a/arch/arm/dts/sun50i-h616.dtsi +++ b/arch/arm/dts/sun50i-h616.dtsi @@ -51,18 +51,6 @@ }; };
- reserved-memory { - #address-cells = <2>; - #size-cells = <2>; - ranges; - - /* 512KiB reserved for ARM Trusted Firmware (BL31) */ - secmon_reserved: secmon@40000000 { - reg = <0x0 0x40000000 0x0 0x80000>; - no-map; - }; - }; - osc24M: osc24M_clk { #clock-cells = <0>; compatible = "fixed-clock";

On Tue, Mar 30, 2021 at 6:31 PM Andre Przywara andre.przywara@arm.com wrote:
Trusted Firmware now adds the /reserved-memory subnode to the DT at runtime[1], putting in the right values.
Drop our hard-coded version, as this might clash with the actual values (which have also changed), and rely on TF-A to add the node.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/7770
Signed-off-by: Andre Przywara andre.przywara@arm.com
arch/arm/dts/sun50i-h616.dtsi | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/arch/arm/dts/sun50i-h616.dtsi b/arch/arm/dts/sun50i-h616.dtsi index 953e8fac20f..dd4d2f31111 100644 --- a/arch/arm/dts/sun50i-h616.dtsi +++ b/arch/arm/dts/sun50i-h616.dtsi @@ -51,18 +51,6 @@ }; };
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* 512KiB reserved for ARM Trusted Firmware (BL31) */
secmon_reserved: secmon@40000000 {
reg = <0x0 0x40000000 0x0 0x80000>;
no-map;
};
};
As said always. it's better to not touch Linux dts files. If the same fix same available in Linux add SHA1 on the commit message otherwise keep /delete-node on -u-boot.dtsi. This how we are maintaining sofar at least on sunxi.
Jagan.

On 3/30/21 8:28 AM, Jagan Teki wrote:
On Tue, Mar 30, 2021 at 6:31 PM Andre Przywara andre.przywara@arm.com wrote:
Trusted Firmware now adds the /reserved-memory subnode to the DT at runtime[1], putting in the right values.
Drop our hard-coded version, as this might clash with the actual values (which have also changed), and rely on TF-A to add the node.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/7770
Signed-off-by: Andre Przywara andre.przywara@arm.com
Reviewed-by: Samuel Holland samuel@sholland.org
arch/arm/dts/sun50i-h616.dtsi | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/arch/arm/dts/sun50i-h616.dtsi b/arch/arm/dts/sun50i-h616.dtsi index 953e8fac20f..dd4d2f31111 100644 --- a/arch/arm/dts/sun50i-h616.dtsi +++ b/arch/arm/dts/sun50i-h616.dtsi @@ -51,18 +51,6 @@ }; };
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* 512KiB reserved for ARM Trusted Firmware (BL31) */
secmon_reserved: secmon@40000000 {
reg = <0x0 0x40000000 0x0 0x80000>;
no-map;
};
};
As said always. it's better to not touch Linux dts files. If the same fix same available in Linux add SHA1 on the commit message otherwise keep /delete-node on -u-boot.dtsi. This how we are maintaining sofar at least on sunxi.
This file has not yet been added to the Linux tree, so that rule does not apply in this case.
Cheers, Samuel
Jagan.

On Tue, Mar 30, 2021 at 7:21 PM Samuel Holland samuel@sholland.org wrote:
On 3/30/21 8:28 AM, Jagan Teki wrote:
On Tue, Mar 30, 2021 at 6:31 PM Andre Przywara andre.przywara@arm.com wrote:
Trusted Firmware now adds the /reserved-memory subnode to the DT at runtime[1], putting in the right values.
Drop our hard-coded version, as this might clash with the actual values (which have also changed), and rely on TF-A to add the node.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/7770
Signed-off-by: Andre Przywara andre.przywara@arm.com
Reviewed-by: Samuel Holland samuel@sholland.org
arch/arm/dts/sun50i-h616.dtsi | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/arch/arm/dts/sun50i-h616.dtsi b/arch/arm/dts/sun50i-h616.dtsi index 953e8fac20f..dd4d2f31111 100644 --- a/arch/arm/dts/sun50i-h616.dtsi +++ b/arch/arm/dts/sun50i-h616.dtsi @@ -51,18 +51,6 @@ }; };
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* 512KiB reserved for ARM Trusted Firmware (BL31) */
secmon_reserved: secmon@40000000 {
reg = <0x0 0x40000000 0x0 0x80000>;
no-map;
};
};
As said always. it's better to not touch Linux dts files. If the same fix same available in Linux add SHA1 on the commit message otherwise keep /delete-node on -u-boot.dtsi. This how we are maintaining sofar at least on sunxi.
This file has not yet been added to the Linux tree, so that rule does not apply in this case.
Reviewed-by: Jagan Teki jagan@amarulasolutions.com

On Tue, 30 Mar 2021 18:58:23 +0530 Jagan Teki jagan@amarulasolutions.com wrote:
Hi Jagan,
On Tue, Mar 30, 2021 at 6:31 PM Andre Przywara andre.przywara@arm.com wrote:
Trusted Firmware now adds the /reserved-memory subnode to the DT at runtime[1], putting in the right values.
Drop our hard-coded version, as this might clash with the actual values (which have also changed), and rely on TF-A to add the node.
[1] https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/7770
Signed-off-by: Andre Przywara andre.przywara@arm.com
arch/arm/dts/sun50i-h616.dtsi | 12 ------------ 1 file changed, 12 deletions(-)
diff --git a/arch/arm/dts/sun50i-h616.dtsi b/arch/arm/dts/sun50i-h616.dtsi index 953e8fac20f..dd4d2f31111 100644 --- a/arch/arm/dts/sun50i-h616.dtsi +++ b/arch/arm/dts/sun50i-h616.dtsi @@ -51,18 +51,6 @@ }; };
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* 512KiB reserved for ARM Trusted Firmware (BL31) */
secmon_reserved: secmon@40000000 {
reg = <0x0 0x40000000 0x0 0x80000>;
no-map;
};
};
As said always. it's better to not touch Linux dts files. If the same fix same available in Linux add SHA1 on the commit message otherwise keep /delete-node on -u-boot.dtsi. This how we are maintaining sofar at least on sunxi.
this DT is not in Linux yet. As this is a new SoC, we have to start at some point, and getting TF-A, Linux and U-Boot patches merged at the same time is virtually impossible. Ideally we have some bootloader support first, so that people can test the kernel patches, for instance.
So this DT is a tentative one, just here to make U-Boot happy. It is expected to change, and will be synced once it's merged into Linux.
As mentioned, the TF-A patches were changed after the U-Boot patches were merged, so this node was needed back then, but is obsolete now.
Cheers, Andre
participants (3)
-
Andre Przywara
-
Jagan Teki
-
Samuel Holland