[U-Boot] [PATCH v6 0/4] ARMv7: PSCI: add PSCI v1.0 support

macro.wave.z at gmail.com macro.wave.z at gmail.com
Thu Jul 21 12:09:35 CEST 2016


From: Hongbo Zhang <hongbo.zhang at nxp.com>

v6 changes:
- Remove the patch of fixing psci stack and patch of fixing saving target PC
since Chen-Yu Tsai's patches resovle them in other way and already got merged
- Temporarily remove patch of checking ON_PENDING and ALREADY_ON for reasons:
it is better the hardware has bits to show the states, there may be compete
conditions for pure software implementation, and if this is well designed in
future, codes can be placed in the psci-common.c file, currently this patch
series only covers necesary psci 1.0 and some implementation on ls1021.
- Update codes according to Chen-Yu Tsai's review comments.

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.
- 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 (4):
  ARMv7: PSCI: add PSCI v1.0 functions skeleton
  ARMv7: PSCI: ls102xa: check target CPU ID before further operations
  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          | 138 ++++++++++++++++++++++++++++-
 arch/arm/cpu/armv7/psci.S                  |  78 ++++++++++++++++
 arch/arm/cpu/armv7/virt-dt.c               |  10 ++-
 arch/arm/include/asm/arch-ls102xa/config.h |   3 +-
 arch/arm/include/asm/psci.h                |  21 +++++
 board/freescale/ls1021aqds/Makefile        |   1 +
 board/freescale/ls1021aqds/psci.S          |  33 +++++++
 board/freescale/ls1021atwr/Makefile        |   1 +
 board/freescale/ls1021atwr/psci.S          |  25 ++++++
 include/configs/ls1021aqds.h               |   5 ++
 include/configs/ls1021atwr.h               |   3 +
 11 files changed, 313 insertions(+), 5 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