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/
113 lines
2.9 KiB
Diff
113 lines
2.9 KiB
Diff
From fa31297e5f79d6eb97aed3cf94326124b308e337 Mon Sep 17 00:00:00 2001
|
|
From: Samuel Holland <samuel@sholland.org>
|
|
Date: Sun, 22 Jan 2023 11:46:34 -0600
|
|
Subject: [PATCH 02/13] sunxi: binman: Move BL31 and SCP firmware addresses to
|
|
Kconfig
|
|
|
|
This is easier to read than the #ifdef staircase, provides better
|
|
visibility into the memory map (alongside the other Kconfig
|
|
definitions), and allows these addresses to be reused from code.
|
|
|
|
Commit-changes: 2
|
|
- New patch for v2, split from the .dtsi changes
|
|
|
|
Reviewed-by: Simon Glass <sjg@chromium.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
---
|
|
arch/arm/dts/sunxi-u-boot.dtsi | 24 +++++++-----------------
|
|
arch/arm/mach-sunxi/Kconfig | 17 +++++++++++++++++
|
|
2 files changed, 24 insertions(+), 17 deletions(-)
|
|
|
|
diff --git a/arch/arm/dts/sunxi-u-boot.dtsi b/arch/arm/dts/sunxi-u-boot.dtsi
|
|
index a0c8abb703..7a8764e463 100644
|
|
--- a/arch/arm/dts/sunxi-u-boot.dtsi
|
|
+++ b/arch/arm/dts/sunxi-u-boot.dtsi
|
|
@@ -1,15 +1,5 @@
|
|
#include <config.h>
|
|
|
|
-#ifdef CONFIG_MACH_SUN50I_H6
|
|
-#define BL31_ADDR 0x104000
|
|
-#define SCP_ADDR 0x114000
|
|
-#elif defined(CONFIG_MACH_SUN50I_H616)
|
|
-#define BL31_ADDR 0x40000000
|
|
-#else
|
|
-#define BL31_ADDR 0x44000
|
|
-#define SCP_ADDR 0x50000
|
|
-#endif
|
|
-
|
|
/ {
|
|
aliases {
|
|
mmc0 = &mmc0;
|
|
@@ -69,8 +59,8 @@
|
|
os = "arm-trusted-firmware";
|
|
arch = "arm64";
|
|
compression = "none";
|
|
- load = <BL31_ADDR>;
|
|
- entry = <BL31_ADDR>;
|
|
+ load = <CONFIG_SUNXI_BL31_BASE>;
|
|
+ entry = <CONFIG_SUNXI_BL31_BASE>;
|
|
|
|
atf-bl31 {
|
|
filename = "bl31.bin";
|
|
@@ -78,13 +68,13 @@
|
|
};
|
|
};
|
|
|
|
-#ifdef SCP_ADDR
|
|
+#if CONFIG_SUNXI_SCP_BASE
|
|
scp {
|
|
description = "SCP firmware";
|
|
type = "firmware";
|
|
arch = "or1k";
|
|
compression = "none";
|
|
- load = <SCP_ADDR>;
|
|
+ load = <CONFIG_SUNXI_SCP_BASE>;
|
|
|
|
scp {
|
|
filename = "scp.bin";
|
|
@@ -106,10 +96,10 @@
|
|
@config-SEQ {
|
|
description = "NAME";
|
|
firmware = "atf";
|
|
-#ifndef SCP_ADDR
|
|
- loadables = "uboot";
|
|
-#else
|
|
+#if CONFIG_SUNXI_SCP_BASE
|
|
loadables = "scp", "uboot";
|
|
+#else
|
|
+ loadables = "uboot";
|
|
#endif
|
|
fdt = "fdt-SEQ";
|
|
};
|
|
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
|
|
index a10e4c06b6..b0fbda0aa0 100644
|
|
--- a/arch/arm/mach-sunxi/Kconfig
|
|
+++ b/arch/arm/mach-sunxi/Kconfig
|
|
@@ -155,6 +155,23 @@ config SUNXI_RVBAR_ALTERNATIVE
|
|
for all other SoCs, so the content of the SRAM_VER_REG becomes
|
|
irrelevant there, and we can use the same code.
|
|
|
|
+config SUNXI_BL31_BASE
|
|
+ hex
|
|
+ default 0x00044000 if MACH_SUN50I || MACH_SUN50I_H5
|
|
+ default 0x00104000 if MACH_SUN50I_H6
|
|
+ default 0x40000000 if MACH_SUN50I_H616
|
|
+ default 0x0
|
|
+ help
|
|
+ Address where BL31 (TF-A) is loaded, or zero if BL31 is not used.
|
|
+
|
|
+config SUNXI_SCP_BASE
|
|
+ hex
|
|
+ default 0x00050000 if MACH_SUN50I || MACH_SUN50I_H5
|
|
+ default 0x00114000 if MACH_SUN50I_H6
|
|
+ default 0x0
|
|
+ help
|
|
+ Address where SCP firmware is loaded, or zero if it is not used.
|
|
+
|
|
config SUNXI_A64_TIMER_ERRATUM
|
|
bool
|
|
|
|
--
|
|
2.34.1
|
|
|