From: Hongbo Zhang
The newly added ARMv8 PSCI needs to be initialized, be copied or reserved in
right place, this patch does all the setup steps.
Signed-off-by: Hongbo Zhang
---
arch/arm/cpu/armv8/cpu-dt.c | 8
arch/arm/cpu/armv8/cpu.c
From: Hongbo Zhang
A most basic PSCI implementation with only one psci_version is added for
LS1043A, this can verify the generic PSCI framework, and more platform specific
implementation will be added later.
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
This patch adds secure_text, secure_data and secure_stack sections for ARMv8 to
hold PSCI text and data, and it is based on the legacy implementation of ARMv7.
Signed-off-by: Hongbo Zhang
Reviewed-by: Tom Rini
From: Hongbo Zhang
This patch introduces a generic ARMv8 PSCI framework, with all functions
returning a dummy ARM_PSCI_RET_NI (Not Implemented), then it is up to each
platform to implement their own functions based on this framework.
Signed-off-by: Hongbo Zhang
From: Hongbo Zhang
v2-v3 changes:
- Drop the previous 1/6, since the previous CONFIG_ARMV8_PSCI in common parts
of codes also work for generic PSCI framework, so there are 5 patches in this
iteration.
- Add "Reviewed-by: Tom Rini " for patches 1/5 and
From: Hongbo Zhang
PSCI implementation needs the SMC instruction to be enabled.
Following the legacy codes pattern, no bit macro definition and bit operation
are used, only the immediate data used in line is changed.
Signed-off-by: Hongbo Zhang
From: Hongbo Zhang
Newly add ARMv8 PSCI needs to be initialized, be copied or reserved in right
place, this patch does all the setup steps.
Signed-off-by: Hongbo Zhang
---
arch/arm/cpu/armv8/cpu-dt.c | 10 ++
arch/arm/cpu/armv8/cpu.c
From: Hongbo Zhang
A most basic PSCI implementation with only one psci_version is added for
LS1043A, this can verify the generic PSCI framework, and more platform specific
implementation will be added later.
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
This patch adds secure_text, secure_data and secure_stack sections for ARMv8 to
hold PSCI text and data, and it is based on the legacy implementation of ARMv7.
Signed-off-by: Hongbo Zhang
---
arch/arm/config.mk| 3 ++-
From: Hongbo Zhang
This patch introduces a generic ARMv8 PSCI framework, with all functions
returning a dummy ARM_PSCI_RET_NI (Not Implemented), then it is up to each
platform to implement their own functions based on this framework.
Signed-off-by: Hongbo Zhang
From: Hongbo Zhang
PSCI implementation needs the SMC instruction to be enabled.
Following the legacy codes pattern, no bit macro definition and bit operation
are used, only the immediate data used in line is changed.
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
NXP/Freescale uses macro CONFIG_ARMV8_PSCI to enable their private PSCI
implementation in PPA firmware, but this macro naming too generic, so this
patch replaces it with a specic one CONFIG_FSL_PPA_ARMV8_PSCI.
And this macro CONFIG_ARMV8_PSCI will be used
From: Hongbo Zhang
v1-v2 changes:
- The new config options are introduced in Kconfig when used for first time
- Introduce new config options in armv8/Kconfig instead of LS1043 platform
- Move previous patch 5/6 to current 2/6 place
v1 notes:
This patch set introduces
From: Hongbo Zhang
PSCI implementation needs the SMC instruction to be enabled.
Following the legacy codes pattern, no bit macro definition and bit operation
are used, only the immediate data used in line is changed.
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
A most basic PSCI implementation with only one psci_version is added for
LS1043A, this can verify the generic PSCI framework, and more platform specific
implementation will be added later.
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
This patch introduces a generic ARMv8 PSCI framework, with all functions
returning a dummy ARM_PSCI_RET_NI (Not Implemented), then it is up to each
platform to implement their own functions based on this framework.
Signed-off-by: Hongbo Zhang
From: Hongbo Zhang
Newly add ARMv8 PSCI needs to be initialized, be copied or reserved in right
place, this patch does all the setup steps.
Signed-off-by: Hongbo Zhang
---
arch/arm/cpu/armv8/cpu-dt.c | 10 ++
arch/arm/cpu/armv8/cpu.c
From: Hongbo Zhang
This patch set introduces ARMv8 PSCI framework, all the PSCI functions are
implemented a default dummy one, it is up to each platform to implement their
own specific ones.
The first 1/6 patch is a prepare clean up for adding ARMv8 PSCI.
Patches 2/6 to
From: Hongbo Zhang
This patch adds secure_text, secure_data and secure_stack sections for ARMv8 to
hold PSCI text and data, and it is based on the legacy implementation of ARMv7.
Signed-off-by: Hongbo Zhang
---
arch/arm/config.mk| 3 +-
From: Hongbo Zhang
NXP/Freescale uses macro CONFIG_ARMV8_PSCI to enable their private PSCI
implementation in PPA firmware, but this macro naming too generic, so this
patch replaces it with a specic one CONFIG_FSL_PPA_ARMV8_PSCI.
And this macro CONFIG_ARMV8_PSCI will be used
From: Hongbo Zhang
Following commits 217f92b and 1544698, these two config CPU_V7_HAS_NONSEC
and CPU_V7_HAS_VIRT are moved to Kconfig, for correctly select ARMV7_PSCI.
Signed-off-by: Hongbo Zhang
---
arch/arm/Kconfig | 4
From: Hongbo Zhang
ARMV7_PSCI depends on ARMV7_NONSEC && ARCH_SUPPORT_PSCI, and ARMV7_NONSEC
depends on CPU_V7_HAS_NONSEC, LS102XA didn't enable CPU_V7_HAS_NONSEC, but
defined ARMV7_NONSEC in a internal header file, this cannot be recognized by
Kconfig, so ARMV7_PSCI isn't
From: Hongbo Zhang
The EPU Finite State Machie (FSM) is used in both the last stage of system
suspend and the earliest stage of system resume.
Signed-off-by: Hongbo Zhang
---
arch/arm/cpu/armv7/ls102xa/fsl_epu.c | 157
From: Hongbo Zhang
The deep sleep function of LS1 platform, is mapped into PSCI system suspend
function, this patch adds implementation of it.
Signed-off-by: Hongbo Zhang
---
arch/arm/cpu/armv7/ls102xa/Makefile | 2 +-
From: Hongbo Zhang
This patch adds definitions of all the regesters necessary for system sleep.
Signed-off-by: Hongbo Zhang
---
arch/arm/include/asm/arch-ls102xa/config.h| 2 +
arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h | 52
From: Hongbo Zhang
This patch set is based against latest community uboot tree in which my
PSCIv1.0 support was merged.
Currently doesn't apply our internal SDK uboot, when these get merged in
community we can pull them back into SDK.
We need community kernel to test this
From: Hongbo Zhang
The v7_flush_dcache_all function will be called by ls102xa platform system
suspend, it is necessary to make it a public call instead of a local one, but
changing the LENTRY to ENTRY isn't enough, because there is another one using
the same name, so this
From: Hongbo Zhang
This patch adds all the PSCI v1.0 functions in to the common framework, with
all the functions returning "not implemented" by default, as a common framework
all the dummy functions are added here, it is up to every platform developer to
decide which
From: Hongbo Zhang
LS1021 offers two secure OCRAM blocks for trustzone.
This patch moves all the secure text sections into the OCRAM.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
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
From: Hongbo Zhang
This patch implements PSCI functions for ls102xa SoC following PSCI v1.0,
they are as the list:
psci_version,
psci_features,
psci_cpu_suspend,
psci_affinity_info,
psci_system_reset,
psci_system_off.
Tested on LS1021aQDS,
From: Hongbo Zhang
The input parameter CPU ID needs to be validated before furher oprations such
as CPU_ON, this patch introduces the function to do this.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
There are codes for saving target PC in each platform psci_cpu_on routines,
these can be factored out as psci_cpu_on_common.
Another purpose is that the codes of saving target PC will be changed a bit and
a new context ID will be saved in the following
From: Hongbo Zhang
The legacy code saves target PC at stack top, this patch changes it to stack
bottom, because we will save more contents for PSCI v1.0, by this way we don't
need to adjust the stack pointer when more contents are saved.
Signed-off-by: Hongbo Zhang
From: Hongbo Zhang
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
From: Hongbo Zhang
According to latest PSCI specification, the context ID is needed by CPU_ON.
This patch saves context ID to the second lowest address of the stack (next to
where target PC is saved), and restores it to r0 when needed while target CPU
booting up.
From: Hongbo Zhang
LS1021 offers two secure OCRAM blocks for trustzone.
This patch moves all the secure text sections into the OCRAM.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
This patch implements PSCI functions for ls102xa SoC following PSCI v1.0,
they are as the list:
psci_version,
psci_features,
psci_cpu_suspend,
psci_affinity_info,
psci_system_reset,
psci_system_off.
Tested on LS1021aQDS,
From: Hongbo Zhang
For the robustness of codes, while powering on a CPU, it is better to check
if the target CPU is already on or in the process of power on, if yes the
power on routine shouldn't be executed further and should return with the
corresponding status
From: Hongbo Zhang
The input parameter CPU ID needs to be validated before furher oprations such
as CPU_ON, this patch introduces the function to do this.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
This patch adds all the PSCI v1.0 functions in to the common framework, with
all the functions returning "not implemented" by default, as a common framework
all the dummy functions are added here, it is up to every platform developer to
decide which
From: Hongbo Zhang
LS1021 offers two secure OCRAM blocks for trustzone.
This patch moves all the secure text sections into the OCRAM.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
The input parameter CPU ID needs to be validated before furher oprations such
as CPU_ON, this patch introduces the function to do this.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
For the robustness of codes, while powering on a CPU, it is better to check
if the target CPU is already on or in the process of power on, if yes the
power on routine shouldn't be executed further and should return with the
corresponding status
From: Hongbo Zhang
This patch implements PSCI functions for ls102xa SoC following PSCI v1.0,
they are as the list:
psci_version,
psci_features,
psci_cpu_suspend,
psci_affinity_info,
psci_system_reset,
psci_system_off.
Tested on LS1021aQDS,
From: Hongbo Zhang
There are codes for saving target PC and target context ID in each platform
psci_cpu_on routines, these can be factored out as psci_cpu_on_common.
Signed-off-by: Hongbo Zhang
Signed-off-by: Wang Dongsheng
From: Hongbo Zhang
According to latest PSCI specification, the context ID is needed by CPU_ON.
This patch saves context ID to the second lowest address of the stack (next to
where target PC is saved), and restores it to r0 when needed while target CPU
booting up.
This
From: Hongbo Zhang
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
From: Hongbo Zhang
The legacy code reserves one word in each stack for saving target PC, but it
isn't used, the target PC is still saved to where the stack top pointer points.
This patch relocates the place for saving target PC to the lowest address of
each stack,
From: Hongbo Zhang
There are issues of legacy fuction psci_get_cpu_stack_top:
First, the current algorithm arranges stacks from an fixed adress towards
psci_text_end, if there are more CPUs, the stacks will overlap with psci text
segment and even other segments.
This patch
From: Hongbo Zhang
This patch adds all the PSCI v1.0 functions in to the common framework, with
all the functions returning "not implemented" by default, as a common framework
all the dummy functions are added here, it is up to every platform developer to
decide which
From: Hongbo Zhang
This patch adds all the PSCI v1.0 functions in to the common framework, with
all the functions returning "not sopported" by default, as a common framework
all the functions are added here, it is up to every platform developer to
decide which version of
From: Hongbo Zhang
For the robustness of codes, while powering on a CPU, it is better to check
if the target CPU is already on or in the process of power on, if yes the
power on routine shouldn't be executed further and should return with the
corresponding status
From: Hongbo Zhang
The input parameter CPU ID needs to be validated before furher oprations such
as CPU_ON, this patch introduces the function to do this.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
LS1021 offers two secure OCRAM blocks for trustzone.
This patch moves all the secure text sections into the OCRAM.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
This patch implements PSCI functions for ls102xa SoC following PSCI v1.0,
they are as the list:
psci_version,
psci_features,
psci_cpu_suspend,
psci_affinity_info,
psci_system_reset,
psci_system_off.
Tested on LS1021aQDS,
From: Hongbo Zhang
There are codes for saving target PC and target context ID in each platform
psci_cpu_on routines, these can be factored out as psci_cpu_on_common.
Signed-off-by: Hongbo Zhang
Signed-off-by: Wang Dongsheng
From: Hongbo Zhang
According to latest PSCI specification, the context ID is needed by CPU_ON.
This patch saves context ID to the second lowest address of the stack (next to
where target PC is saved), and restores it to r0 when needed while target CPU
booting up.
This
From: Hongbo Zhang
Previous v2 patch set was sent out for a long time but got no comments, this
time I send a v3 with minor updates and with more people in list, they are
contributors for Linux kernel PSCI codes.
v3 changes:
- patch 3/11, re-init the stack pointer to
From: Hongbo Zhang
The legacy code reserves one word in each stack for saving target PC, but it
isn't used, the target PC is still saved to where the stack top pointer points.
This patch relocates the place for saving target PC to the lowest address of
each stack,
From: Hongbo Zhang
There are issues of legacy fuction psci_get_cpu_stack_top:
First, the current algorithm arranges stacks from an fixed adress towards
psci_text_end, if there are more CPUs, the stacks will overlap with psci text
segment and even other segments.
This patch
From: Wang Dongsheng
Since we are already under the directory of arch/arm/, the prefix ARM_ for
macros isn't so necessary, and with more PSCI interfaces being added later,
there will be much more redundant ARM_ prefixes, what's more, there are no
ARM_/arm_ prefixes for
From: Wang Dongsheng
According to PSCI specification v1.0, the PSCI functions should start from
0x8400 for SMC32, this patch changes this base value as well as other
function offset values.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo
From: Hongbo Zhang
LS1021 offers two secure OCRAM blocks for trustzone.
This patch moves all the secure text sections into the OCRAM.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
The input parameter CPU ID needs to be validated before furher oprations such
as CPU_ON, this patch introduces the function to do this.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo Zhang
---
From: Hongbo Zhang
This patch implements PSCI functions for ls102xa SoC following PSCI v1.0,
they are as the list:
psci_version,
psci_features,
psci_cpu_suspend,
psci_affinity_info,
psci_system_reset,
psci_system_off.
Tested on LS1021aQDS,
From: Hongbo Zhang
This patch adds all the PSCI v1.0 functions in to the common framework, with
all the functions returning "not sopported" by default, as a common framework
all the functions are added here, it is up to every platform developer to
decide which version of
From: Hongbo Zhang
For the robustness of codes, while powering on a CPU, it is better to check
if the target CPU is already on or in the process of power on, if yes the
power on routine shouldn't be executed further and should return with the
corresponding status
From: Hongbo Zhang
There are codes for saving target PC and target context ID in each platform
psci_cpu_on routines, these can be factored out as psci_cpu_on_common.
Signed-off-by: Hongbo Zhang
Signed-off-by: Wang Dongsheng
From: Hongbo Zhang
According to latest PSCI specification, the context ID is needed by CPU_ON.
This patch saves context ID to the second lowest address of the stack (next to
where target PC is saved), and restores it to r0 when needed while target CPU
booting up.
This
From: Wang Dongsheng
Since we are already under the directory of arch/arm/, the prefix ARM_ for
macros isn't so necessary, and with more PSCI interfaces being added later,
there will be much more redundant ARM_ prefixes, what's more, there are no
ARM_/arm_ prefixes for
From: Wang Dongsheng
According to PSCI specification v1.0, the PSCI functions should start from
0x8400 for SMC32, this patch changes this base value as well as other
function offset values.
Signed-off-by: Wang Dongsheng
Signed-off-by: Hongbo
From: Hongbo Zhang
The legacy code reserves one word in each stack for saving target PC, but it
isn't used, the target PC is still saved to where the stack top pointer points.
This patch relocates the place for saving target PC to the lowest address of
each stack,
From: Hongbo Zhang
There are issues of legacy fuction psci_get_cpu_stack_top:
First, because the stack grows in descending address order, it is better the
stack starts from page end or some similiar address, but currently the
algorithm is based on address of page start, if
From: Hongbo Zhang
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
Changes since v1:
- re-organize psci_cpu_on_common, this code should be called
75 matches
Mail list logo