[U-Boot] [PATCH v3 0/3] ARM: support System Reset via PSCI

Masahiro Yamada yamada.masahiro at socionext.com
Fri Apr 14 02:10:21 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.


Changes in v3:
  - opcodes-virt.h is GPL-2.0+

Changes in v2:
  - split into separate patches "import" and "adjust"
  - split into separate patches "import" and "adjust"

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