uboot-d1: add bootloader for upcoming d1 target
[openwrt/staging/mans0n.git] / package / boot / uboot-d1 / patches / 0044-sunxi-Enable-SCP-SCPI-on-A33-as-well.patch
1 From 5a7a91bf9a78a3a73e26d6de975261e62f9fb127 Mon Sep 17 00:00:00 2001
2 From: Samuel Holland <samuel@sholland.org>
3 Date: Wed, 8 Jun 2022 07:55:54 -0500
4 Subject: [PATCH 44/90] sunxi: Enable SCP/SCPI on A33 as well
5
6 Signed-off-by: Samuel Holland <samuel@sholland.org>
7 ---
8 arch/arm/cpu/armv7/Kconfig | 2 +-
9 arch/arm/cpu/armv7/sunxi/Makefile | 2 +-
10 arch/arm/cpu/armv7/sunxi/psci-scpi.c | 4 ++++
11 arch/arm/dts/sun8i-a23-a33.dtsi | 14 ++++++++++++++
12 arch/arm/dts/sunxi-u-boot.dtsi | 4 ++--
13 5 files changed, 22 insertions(+), 4 deletions(-)
14
15 --- a/arch/arm/cpu/armv7/Kconfig
16 +++ b/arch/arm/cpu/armv7/Kconfig
17 @@ -75,7 +75,7 @@ config ARMV7_PSCI
18 choice
19 prompt "Supported PSCI version"
20 depends on ARMV7_PSCI
21 - default ARMV7_PSCI_1_1 if MACH_SUN8I_H3
22 + default ARMV7_PSCI_1_1 if MACH_SUN8I_A33 || MACH_SUN8I_H3
23 default ARMV7_PSCI_0_1 if ARCH_SUNXI
24 default ARMV7_PSCI_1_0
25 help
26 --- a/arch/arm/cpu/armv7/sunxi/Makefile
27 +++ b/arch/arm/cpu/armv7/sunxi/Makefile
28 @@ -13,7 +13,7 @@ obj-$(CONFIG_MACH_SUN6I) += sram.o
29 obj-$(CONFIG_MACH_SUN8I) += sram.o
30
31 ifndef CONFIG_SPL_BUILD
32 -ifdef CONFIG_MACH_SUN8I_H3
33 +ifneq ($(CONFIG_MACH_SUN8I_A33)$(CONFIG_MACH_SUN8I_H3),)
34 obj-$(CONFIG_ARMV7_PSCI) += psci-scpi.o
35 else
36 obj-$(CONFIG_ARMV7_PSCI) += psci.o
37 --- a/arch/arm/cpu/armv7/sunxi/psci-scpi.c
38 +++ b/arch/arm/cpu/armv7/sunxi/psci-scpi.c
39 @@ -24,7 +24,11 @@
40 #define MPIDR_AFFLVL0(mpidr) (mpidr & 0xf)
41 #define MPIDR_AFFLVL1(mpidr) (mpidr >> 8 & 0xf)
42
43 +#if defined(CONFIG_MACH_SUN8I_H3)
44 #define SCPI_SHMEM_BASE 0x0004be00
45 +#else
46 +#define SCPI_SHMEM_BASE 0x00053e00
47 +#endif
48 #define SCPI_SHMEM ((struct scpi_shmem *)SCPI_SHMEM_BASE)
49
50 #define SCPI_RX_CHANNEL 1
51 --- a/arch/arm/dts/sun8i-a23-a33.dtsi
52 +++ b/arch/arm/dts/sun8i-a23-a33.dtsi
53 @@ -138,6 +138,14 @@
54 #size-cells = <1>;
55 ranges;
56
57 + sram_a2: sram@40000 {
58 + compatible = "mmio-sram";
59 + reg = <0x00040000 0x14000>;
60 + #address-cells = <1>;
61 + #size-cells = <1>;
62 + ranges = <0 0x00040000 0x14000>;
63 + };
64 +
65 sram_c: sram@1d00000 {
66 compatible = "mmio-sram";
67 reg = <0x01d00000 0x80000>;
68 @@ -847,5 +855,11 @@
69 #address-cells = <1>;
70 #size-cells = <0>;
71 };
72 +
73 + remoteproc@1f01c00 {
74 + compatible = "allwinner,sun6i-a31-ar100";
75 + reg = <0x01f01c00 0x400>;
76 + sram = <&sram_a2>;
77 + };
78 };
79 };
80 --- a/arch/arm/dts/sunxi-u-boot.dtsi
81 +++ b/arch/arm/dts/sunxi-u-boot.dtsi
82 @@ -6,11 +6,11 @@
83 #define ARCH "arm"
84 #endif
85
86 +#if defined(CONFIG_ARMV7_PSCI) && (defined(CONFIG_MACH_SUN8I_A33) || defined(CONFIG_MACH_SUN8I_H3))
87 #if defined(CONFIG_MACH_SUN8I_H3)
88 -#ifdef CONFIG_ARMV7_PSCI
89 #define RESUME_ADDR SUNXI_RESUME_BASE
90 -#define SCP_ADDR SUNXI_SCP_BASE
91 #endif
92 +#define SCP_ADDR SUNXI_SCP_BASE
93 #elif defined(CONFIG_MACH_SUN50I) || defined(CONFIG_MACH_SUN50I_H5)
94 #define BL31_ADDR 0x00044000
95 #define SCP_ADDR 0x00050000