[U-Boot] [PATCH v5 0/8] ARMv7: PSCI: add PSCI v1.0 support

Hongbo Zhang macro.wave.z at gmail.com
Wed Jun 15 10:08:05 CEST 2016


On Wed, Jun 15, 2016 at 3:16 PM, Chen-Yu Tsai <wens at csie.org> wrote:
> Hi,
>
> On Tue, Jun 14, 2016 at 3:01 PM,  <macro.wave.z at gmail.com> wrote:
>> From: Hongbo Zhang <hongbo.zhang at nxp.com>
>>
>> v5 changes:
>> - Give up fixing the potential bug of PSCI stack overlap with secure text end
>> when there is more CPUs in system. Because I just want to keep this series as
>> simple as it could be: adding basic PSCI v1.0 support and adding more PSCI
>> v1.0 implements of our platform.
>> While too compplicated patches in assembly language won't call for effective
>> reviews, even I think there is potential bug of PSCI stack, let's fix it in
>> sepetated patch later.
>
> I've done some patches fixing the stack allocation issue:
>
> https://github.com/wens/u-boot-sunxi/commits/c-psci-part2
>
> These patches are ready, but I want to add a secure data section still.
> The data section will be for variables such as target PC, core/cluster
> power status, context ID, etc.. IMHO this is better than putting stuff
> at the top or bottom of the stack, and can also be referenced directly.
>
Yes, secure data section is welcome.
I am implementing our suspend-to-ram function in PSCI in C language,
there are some global variables which should be placed into such
secure data section.

> Regards
> ChenYu
>
>> - Move the patch of factoring out psci_cpu_on_common to earlier place 2/8, so
>> that the following patches can only update the psci_cpu_on_common instead of
>> touching each platform's psci_cpu_on, this reduces patches size obviously and
>> make it easier for review.
>>
>> v4 changes:
>> - since there is already PSCI v0.2 function IDs definition merged in 5a07abb,
>> I give up my previous patches 1/11 and 2/11, and move previous 7/11 "ARMv7:
>> PSCI: add PSCI v1.0 functions skeleton" as current first one 1/9
>> - accept Andre's comment to add the missed "arm,psci-0,2" into compatible
>> string
>>
>> v3 changes:
>> - patch 3/11, re-init the stack pointer to address like start of page instead
>> of page end, because for ARM push operation, the stack pointer is encreased
>> before storing data.
>> - patch 10/11, delete the previous un-implemented cpu_suspend function for ls1
>> platform, because there is default blank functions for all those are not
>> implemented in specific platform.
>>
>>
>> v2 changes:
>> - re-organize psci_cpu_on_common, this code should be called by each platform's
>> psci_cpu_on, should not be a function calling each psci_cpu_on, all related
>> functions are updated due to this change
>> - update some registers usage, e.g. if r10 is used without push/pop, u-boot
>> cannot launch rt-kernel
>> - update some comments to be clearer, re-organize all patches for easier review
>> - add patch to check already_on or on_pending for LS102XA
>>
>> This patch set contains two parts:
>> ARMv7 PSCI common framework: fix some issues and add v1.0 support
>> NXP (was Freescale) LS102XA: codes enhancement and add v1.0 implementation
>> And this patch set was initially created by Dongsheng Wang.
>>
>> Hongbo Zhang (8):
>>   ARMv7: PSCI: add PSCI v1.0 functions skeleton
>>   ARMv7: PSCI: factor out reusable psci_cpu_on_common
>>   ARMv7: PSCI: update the place of saving target PC
>>   ARMv7: PSCI: add codes to save context ID for CPU_ON
>>   ARMv7: PSCI: ls102xa: check target CPU ID before further operations
>>   ARMv7: PSCI: ls102xa: check ALREADY_ON or ON_PENDING for CPU_ON
>>   ARMv7: PSCI: ls102xa: add more PSCI v1.0 functions implemention
>>   ARMv7: PSCI: ls102xa: move secure text section into OCRAM
>>
>>  arch/arm/cpu/armv7/ls102xa/psci.S          | 169 +++++++++++++++++++++++++++--
>>  arch/arm/cpu/armv7/mx7/psci.S              |   5 +-
>>  arch/arm/cpu/armv7/nonsec_virt.S           |   7 ++
>>  arch/arm/cpu/armv7/psci.S                  |  99 ++++++++++++++++-
>>  arch/arm/cpu/armv7/sunxi/psci_sun6i.S      |   5 +-
>>  arch/arm/cpu/armv7/sunxi/psci_sun7i.S      |   5 +-
>>  arch/arm/cpu/armv7/virt-dt.c               |  10 +-
>>  arch/arm/include/asm/arch-ls102xa/config.h |   3 +-
>>  arch/arm/include/asm/psci.h                |  31 ++++++
>>  arch/arm/mach-tegra/psci.S                 |   5 +-
>>  board/freescale/ls1021aqds/Makefile        |   1 +
>>  board/freescale/ls1021aqds/psci.S          |  36 ++++++
>>  board/freescale/ls1021atwr/Makefile        |   1 +
>>  board/freescale/ls1021atwr/psci.S          |  28 +++++
>>  include/configs/ls1021aqds.h               |   3 +
>>  include/configs/ls1021atwr.h               |   3 +
>>  16 files changed, 383 insertions(+), 28 deletions(-)
>>  create mode 100644 board/freescale/ls1021aqds/psci.S
>>  create mode 100644 board/freescale/ls1021atwr/psci.S
>>
>> --
>> 2.1.4
>>


More information about the U-Boot mailing list