| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- From aefe751d6f23c9d526bca447c6c28da97e45e528 Mon Sep 17 00:00:00 2001
- From: Samuel Holland <[email protected]>
- Date: Sat, 17 Apr 2021 13:33:54 -0500
- Subject: [PATCH 40/90] sunxi: Enable support for SCP firmware on H3
- Now that issues with the BROM have been sorted out, we can implement
- PSCI system suspend on H3 by delegating to SCP firmware. Let's start by
- including the firmware in the FIT image and starting the coprocessor if
- valid firmware is loaded.
- Signed-off-by: Samuel Holland <[email protected]>
- ---
- arch/arm/dts/sunxi-u-boot.dtsi | 1 +
- board/sunxi/board.c | 8 ++++++++
- include/configs/sun8i.h | 3 +++
- 3 files changed, 12 insertions(+)
- --- a/arch/arm/dts/sunxi-u-boot.dtsi
- +++ b/arch/arm/dts/sunxi-u-boot.dtsi
- @@ -9,6 +9,7 @@
- #if defined(CONFIG_MACH_SUN8I_H3)
- #ifdef CONFIG_ARMV7_PSCI
- #define RESUME_ADDR SUNXI_RESUME_BASE
- +#define SCP_ADDR SUNXI_SCP_BASE
- #endif
- #elif defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H5)
- #define BL31_ADDR 0x00044000
- --- a/board/sunxi/board.c
- +++ b/board/sunxi/board.c
- @@ -19,6 +19,7 @@
- #include <init.h>
- #include <log.h>
- #include <mmc.h>
- +#include <remoteproc.h>
- #include <axp_pmic.h>
- #include <generic-phy.h>
- #include <phy-sun4i-usb.h>
- @@ -867,6 +868,13 @@ int board_late_init(void)
- usb_ether_init();
- #endif
-
- +#ifdef CONFIG_REMOTEPROC_SUN6I_AR100
- + if (!rproc_load(0, SUNXI_SCP_BASE, SUNXI_SCP_MAX_SIZE)) {
- + puts("Starting SCP...\n");
- + rproc_start(0);
- + }
- +#endif
- +
- return 0;
- }
-
- --- a/include/configs/sun8i.h
- +++ b/include/configs/sun8i.h
- @@ -12,6 +12,9 @@
- CONFIG_ARMV7_SECURE_MAX_SIZE)
- #define SUNXI_RESUME_SIZE 1024
-
- +#define SUNXI_SCP_BASE (SUNXI_RESUME_BASE + SUNXI_RESUME_SIZE)
- +#define SUNXI_SCP_MAX_SIZE (16 * 1024)
- +
- #include <configs/sunxi-common.h>
-
- #endif /* __CONFIG_H */
|