mirror of
https://github.com/smaeul/u-boot.git
synced 2025-09-13 21:46:00 +01:00
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>
149 lines
2.5 KiB
Plaintext
149 lines
2.5 KiB
Plaintext
#include <config.h>
|
|
|
|
#ifdef CONFIG_ARM64
|
|
#define ARCH "arm64"
|
|
#else
|
|
#define ARCH "arm"
|
|
#endif
|
|
|
|
#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
|
|
#define SCP_ADDR 0x00050000
|
|
#elif defined(CONFIG_MACH_SUN50I_H6)
|
|
#define BL31_ADDR 0x00104000
|
|
#define SCP_ADDR 0x00114000
|
|
#elif defined(CONFIG_MACH_SUN50I_H616)
|
|
#define BL31_ADDR 0x40000000
|
|
#endif
|
|
|
|
/ {
|
|
aliases {
|
|
mmc0 = &mmc0;
|
|
#if CONFIG_MMC_SUNXI_EXTRA_SLOT == 2
|
|
mmc1 = &mmc2;
|
|
#endif
|
|
};
|
|
|
|
binman: binman {
|
|
multiple-images;
|
|
};
|
|
};
|
|
|
|
&binman {
|
|
u-boot-sunxi-with-spl {
|
|
filename = "u-boot-sunxi-with-spl.bin";
|
|
pad-byte = <0xff>;
|
|
|
|
blob {
|
|
filename = "spl/sunxi-spl.bin";
|
|
};
|
|
|
|
#ifdef CONFIG_SPL_LOAD_FIT
|
|
fit {
|
|
description = "Configuration to load U-Boot and firmware";
|
|
offset = <32768>;
|
|
#address-cells = <1>;
|
|
fit,fdt-list = "of-list";
|
|
|
|
images {
|
|
uboot {
|
|
description = "U-Boot";
|
|
type = "standalone";
|
|
os = "u-boot";
|
|
arch = ARCH;
|
|
compression = "none";
|
|
load = <CONFIG_SYS_TEXT_BASE>;
|
|
entry = <CONFIG_SYS_TEXT_BASE>;
|
|
|
|
u-boot-nodtb {
|
|
};
|
|
};
|
|
|
|
#ifdef BL31_ADDR
|
|
atf {
|
|
description = "ARM Trusted Firmware";
|
|
type = "firmware";
|
|
os = "arm-trusted-firmware";
|
|
arch = ARCH;
|
|
compression = "none";
|
|
load = <BL31_ADDR>;
|
|
entry = <BL31_ADDR>;
|
|
|
|
atf-bl31 {
|
|
filename = "bl31.bin";
|
|
missing-msg = "atf-bl31-sunxi";
|
|
};
|
|
};
|
|
#endif
|
|
|
|
#ifdef RESUME_ADDR
|
|
resume {
|
|
description = "Super Standby resume image";
|
|
type = "standalone";
|
|
arch = ARCH;
|
|
compression = "none";
|
|
load = <RESUME_ADDR>;
|
|
|
|
blob-ext {
|
|
filename = "u-boot-resume.img";
|
|
};
|
|
};
|
|
#endif
|
|
|
|
#ifdef SCP_ADDR
|
|
scp {
|
|
description = "SCP firmware";
|
|
type = "firmware";
|
|
arch = "or1k";
|
|
compression = "none";
|
|
load = <SCP_ADDR>;
|
|
|
|
scp {
|
|
filename = "scp.bin";
|
|
missing-msg = "scp-sunxi";
|
|
};
|
|
};
|
|
#endif
|
|
|
|
@fdt-SEQ {
|
|
description = "NAME";
|
|
type = "flat_dt";
|
|
compression = "none";
|
|
};
|
|
};
|
|
|
|
configurations {
|
|
default = "@config-DEFAULT-SEQ";
|
|
|
|
@config-SEQ {
|
|
description = "NAME";
|
|
#ifdef BL31_ADDR
|
|
firmware = "atf";
|
|
#else
|
|
firmware = "uboot";
|
|
#endif
|
|
loadables =
|
|
#ifdef RESUME_ADDR
|
|
"resume",
|
|
#endif
|
|
#ifdef SCP_ADDR
|
|
"scp",
|
|
#endif
|
|
"uboot";
|
|
fdt = "fdt-SEQ";
|
|
};
|
|
};
|
|
};
|
|
#else
|
|
u-boot-img {
|
|
offset = <32768>;
|
|
};
|
|
#endif
|
|
};
|
|
};
|