mbox series

[0/2] ARM: support System Reset via PSCI

Message ID 1491813679-22630-1-git-send-email-yamada.masahiro@socionext.com
Headers show
Series ARM: support System Reset via PSCI | expand

Message

Masahiro Yamada April 10, 2017, 8:41 a.m. UTC
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.



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

Comments

Lukasz Majewski April 10, 2017, 9:16 a.m. UTC | #1
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
Masahiro Yamada April 11, 2017, 1:05 a.m. UTC | #2
Hi Lukasz,


2017-04-10 18:16 GMT+09:00 Lukasz Majewski <lukma@denx.de>:
> 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?)


I am OK with this.

I will wait for a little more comments
before sending v2.

Thanks!