mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2024-12-15 20:20:30 +00:00
9a6e297ed7
ref: - https://github.com/u-boot/u-boot/blob/master/arch/arm/cpu/armv7/sunxi/psci.c - https://github.com/smaeul/u-boot/commits/patch/h3-scp/
100 lines
2.5 KiB
Diff
100 lines
2.5 KiB
Diff
From 50ec5566a9eb50288c7aca9d85182e152aaf47d9 Mon Sep 17 00:00:00 2001
|
|
From: Samuel Holland <samuel@sholland.org>
|
|
Date: Sun, 22 Jan 2023 11:57:42 -0600
|
|
Subject: [PATCH 03/13] sunxi: binman: Support FIT generation for 32-bit SoCs
|
|
|
|
Some 32-bit SoCs can use SCP firmware to implement additional PSCI
|
|
functionality, such as system suspend. In order to load this firmware
|
|
from SPL, we need to generate and use a FIT instead of a legacy image.
|
|
|
|
Adjust the binman FIT definition so it does not rely on TF-A BL31, as
|
|
this is not used on 32-bit SoCs. Instead, after loading the firmware,
|
|
U-Boot proper is executed directly.
|
|
|
|
Series-changes: 2
|
|
- Rely on binman min-size instead of using explicit offsets
|
|
- Use Kconfig for firmware addresses instead of an #ifdef staircase
|
|
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
---
|
|
arch/arm/dts/sunxi-u-boot.dtsi | 23 ++++++++++++++++++-----
|
|
1 file changed, 18 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/arch/arm/dts/sunxi-u-boot.dtsi b/arch/arm/dts/sunxi-u-boot.dtsi
|
|
index 7a8764e463..ed1cb91eeb 100644
|
|
--- a/arch/arm/dts/sunxi-u-boot.dtsi
|
|
+++ b/arch/arm/dts/sunxi-u-boot.dtsi
|
|
@@ -1,5 +1,11 @@
|
|
#include <config.h>
|
|
|
|
+#ifdef CONFIG_ARM64
|
|
+#define ARCH "arm64"
|
|
+#else
|
|
+#define ARCH "arm"
|
|
+#endif
|
|
+
|
|
/ {
|
|
aliases {
|
|
mmc0 = &mmc0;
|
|
@@ -34,30 +40,32 @@
|
|
filename = "spl/sunxi-spl.bin";
|
|
};
|
|
|
|
-#ifdef CONFIG_ARM64
|
|
+#ifdef CONFIG_SPL_LOAD_FIT
|
|
fit {
|
|
- description = "Configuration to load ATF before U-Boot";
|
|
+ description = "Configuration to load U-Boot and firmware";
|
|
#address-cells = <1>;
|
|
fit,fdt-list = "of-list";
|
|
|
|
images {
|
|
uboot {
|
|
- description = "U-Boot (64-bit)";
|
|
+ description = "U-Boot";
|
|
type = "standalone";
|
|
os = "u-boot";
|
|
- arch = "arm64";
|
|
+ arch = ARCH;
|
|
compression = "none";
|
|
load = <CONFIG_TEXT_BASE>;
|
|
+ entry = <CONFIG_TEXT_BASE>;
|
|
|
|
u-boot-nodtb {
|
|
};
|
|
};
|
|
|
|
+#if CONFIG_SUNXI_BL31_BASE
|
|
atf {
|
|
description = "ARM Trusted Firmware";
|
|
type = "firmware";
|
|
os = "arm-trusted-firmware";
|
|
- arch = "arm64";
|
|
+ arch = ARCH;
|
|
compression = "none";
|
|
load = <CONFIG_SUNXI_BL31_BASE>;
|
|
entry = <CONFIG_SUNXI_BL31_BASE>;
|
|
@@ -67,6 +75,7 @@
|
|
missing-msg = "atf-bl31-sunxi";
|
|
};
|
|
};
|
|
+#endif
|
|
|
|
#if CONFIG_SUNXI_SCP_BASE
|
|
scp {
|
|
@@ -95,7 +104,11 @@
|
|
|
|
@config-SEQ {
|
|
description = "NAME";
|
|
+#if CONFIG_SUNXI_BL31_BASE
|
|
firmware = "atf";
|
|
+#else
|
|
+ firmware = "uboot";
|
|
+#endif
|
|
#if CONFIG_SUNXI_SCP_BASE
|
|
loadables = "scp", "uboot";
|
|
#else
|
|
--
|
|
2.34.1
|
|
|