[U-Boot] [PATCH v2 0/3] ARM: support System Reset via PSCI
Masahiro Yamada
yamada.masahiro at socionext.com
Thu Apr 13 02:39:10 UTC 2017
For ARMv8, the secure firmware (ex. ARM Trusted Firmware BL31) is
often implemented, making U-Boot a non-secure world boot loader.
The secure firmware generally includes PSCI. The power management
operations, including System Reset, are supposed to be handled by
PSCI. In this case, U-Boot should not touch the system reset directly.
Instead, U-Boot should call PSCI service to reset the system.
In order to implement this, arm-smccc code is needed. The code
has been copied from Linux. (1/3)
They have been adjusted for use in U-Boot (2/3).
3/3 implements a generic sysreset driver based on the PSCI
specification.
Masahiro Yamada (3):
ARM: import arm-smccc code from Linux 4.11-rc6
ARM: adjust arm-smccc code for use in U-Boot
sysreset: psci: support system reset in a generic way with PSCI
arch/arm/Kconfig | 9 ++
arch/arm/cpu/armv7/Makefile | 1 +
arch/arm/cpu/armv7/smccc-call.S | 56 +++++++++
arch/arm/cpu/armv8/Makefile | 2 +
arch/arm/cpu/armv8/smccc-call.S | 44 +++++++
arch/arm/include/asm/opcodes-sec.h | 17 +++
arch/arm/include/asm/opcodes-virt.h | 27 +++++
arch/arm/include/asm/opcodes.h | 229 ++++++++++++++++++++++++++++++++++++
arch/arm/lib/asm-offsets.c | 8 ++
drivers/Kconfig | 2 +
drivers/Makefile | 5 +-
drivers/firmware/Kconfig | 6 +
drivers/firmware/Makefile | 2 +
drivers/firmware/firmware-uclass.c | 11 ++
drivers/firmware/psci.c | 94 +++++++++++++++
drivers/sysreset/Kconfig | 10 ++
drivers/sysreset/Makefile | 1 +
drivers/sysreset/sysreset_psci.c | 41 +++++++
include/dm/uclass-id.h | 1 +
include/linux/arm-smccc.h | 126 ++++++++++++++++++++
include/linux/psci.h | 13 ++
21 files changed, 703 insertions(+), 2 deletions(-)
create mode 100644 arch/arm/cpu/armv7/smccc-call.S
create mode 100644 arch/arm/cpu/armv8/smccc-call.S
create mode 100644 arch/arm/include/asm/opcodes-sec.h
create mode 100644 arch/arm/include/asm/opcodes-virt.h
create mode 100644 arch/arm/include/asm/opcodes.h
create mode 100644 drivers/firmware/Kconfig
create mode 100644 drivers/firmware/Makefile
create mode 100644 drivers/firmware/firmware-uclass.c
create mode 100644 drivers/firmware/psci.c
create mode 100644 drivers/sysreset/sysreset_psci.c
create mode 100644 include/linux/arm-smccc.h
--
2.7.4
More information about the U-Boot
mailing list