
Hi Masahiro,
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/2)
2/2 implements a generic sysreset driver based on the PSCI specification.
I'm just wondering if it would be possible to:
1. Provide the exact Linux files (with SHA1) from main line
2. On top of this patch add u-boot adjustments
3. Add u-boot specific support for PSCI
In this way we would have exact info about the source of porting (or was it ported exactly from v4.11-rc6 tag?)
Best regards, Ćukasz Majewski
Masahiro Yamada (2): ARM: import arm-smccc from Linux 4.11-rc6 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 | 11 ++ 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, 704 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
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de