mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	Add u-boot bootloader based on 2023.01 to support D1-based boards, currently: - Dongshan Nezha STU - LicheePi RV Dock - MangoPi MQ-Pro - Nezha D1 Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From aefe751d6f23c9d526bca447c6c28da97e45e528 Mon Sep 17 00:00:00 2001
 | 
						|
From: Samuel Holland <samuel@sholland.org>
 | 
						|
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 <samuel@sholland.org>
 | 
						|
---
 | 
						|
 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 */
 |