On Sun, Jul 3, 2016 at 5:05 PM, Hans de Goede <hdego...@redhat.com> wrote: > Hi, > > On 03-07-16 02:35, Chen-Yu Tsai wrote: >> >> Hi, >> >> On Sat, Jul 2, 2016 at 8:00 PM, Hans de Goede <hdego...@redhat.com> wrote: >>> >>> Hi, >>> >>> On 19-06-16 06:38, Chen-Yu Tsai wrote: >>>> >>>> >>>> Hi everyone, >>>> >>>> This is ARM PSCI improvements part 2. This series cleans up PSCI stack >>>> allocation and target PC storage by introducing a secure stack section >>>> and a secure data section. >>> >>> >>> >>> I've added this series to my personal repo sunxi-wip branch for testing. > > > Note: I've also put it in u-boot-sunxi next now. > >> I might send a v2 of patch 5. >> >> Also I forgot to add .secure_data to the sections that get copied to the >> actual u-boot blob. It currently works because the data structures in it >> are all written before they are read. >> >> So a v2 of patch 12 is needed as well. > > > No problem I can replace any patches you want.
FYI I sent out v2 for patches 5, 12, and 13. 13 is just a rebase conflict fix, which you probably have done already. ChenYu >> Could you also add Hongbo's tested-by tags? > > > I'll add any tags from patchwork before submitting an official > pull-req for this (as well as wait for the v2-s you menetioned). > >>> It might be best to also merge it via the u-boot-sunxi tree ? >> >> >> We should probably work out with the NXP/FreeScale people that are also >> working on PSCI support for their platform. > > > Ack. > > Regards, > > Hans > > > > >> >> Hongbo, any comments? >> >> Regards >> ChenYu >> >>> Regards, >>> >>> Hans >>> >>> >>> >>>> >>>> The series got larger than I planned. Some patches are just moving or >>>> consolidating code, and a few are adding missing macros. It's based on >>>> v3 of my "sunxi: PSCI implementation rewrite in C" series from earlier. >>>> >>>> >>>> Patch 1 consolidates the stack setup code from all the PSCI-enabled >>>> platforms (which likely originated from the initial sunxi version) into >>>> a common function, and moves it into a seperate common function that >>>> is called before psci_arch_init. A weak stub psci_arch_init is added >>>> for platforms that no longer need a custom version. >>>> >>>> Patch 2 converts the remaining sunxi PSCI assembly code into C. >>>> >>>> Patch 3 adds the missing CONFIG_ARMV7_PSCI_NR_CPUS=2 for sun7i/A20. >>>> >>>> Patch 4 makes the linker page align PSCI text only when it is directly >>>> executed, i.e. not copied to CONFIG_ARMV7_SECURE_BASE. >>>> >>>> Patch 5 adds a fallback value for CONFIG_ARMV7_PSCI_NR_CPUS. The value >>>> is 4, which was the fixed maximum number of stacks allocated. >>>> >>>> Patch 6 adds an empty stack section for the secure monitor. >>>> >>>> Patch 7 has PSCI allocate its stack in the new secure stack section. >>>> >>>> Patch 8 removes the now unused psci_text_end symbol. This was previously >>>> used to find where to allocate the stack. >>>> >>>> Patch 9 adds a config variable for specifying the maximum size of the >>>> secure section (text, data, stack, etc.) and checks if the binary >>>> exceeds it. >>>> >>>> Patch 10 defines CONFIG_ARMV7_SECURE_MAX_SIZE for sun6i/sun7i (A31/A20), >>>> Allwinner SoCs that have a block of secure SRAM. >>>> >>>> Patch 11 moves the __secure macro to asm/secure.h. Previously sunxi and >>>> i.MX7 were defining it themselves. >>>> >>>> Patch 12 adds a secure data section, and a __secure_data macro. >>>> >>>> Patch 13 adds helper functions to save and get per-CPU target PC >>>> addresses >>>> for use in PSCI. >>>> >>>> Patch 14 converts all PSCI-enabled platforms to the new helper functions >>>> to save/get target PC addresses. >>>> >>>> Patch 15 makes the psci_get_cpu_stack_top function local/static. This >>>> function should only be used by the stack setup routine. >>>> >>>> >>>> Regards >>>> ChenYu >>>> >>>> >>>> Chen-Yu Tsai (15): >>>> ARM: PSCI: Split out common stack setup code from psci_arch_init >>>> sunxi: Move remaining PSCI assembly code to C >>>> sunxi: Add missing CONFIG_ARMV7_PSCI_NR_CPUS for sun7i >>>> ARM: Page align secure section only when it is executed in situ >>>> ARM: PSCI: Add fallback value for CONFIG_ARMV7_PSCI_NR_CPUS >>>> ARM: Add an empty secure stack section >>>> ARM: PSCI: Allocate PSCI stack in secure stack section >>>> ARM: PSCI: Remove unused psci_text_end symbol >>>> ARM: Add CONFIG_ARMV7_SECURE_MAX_SIZE and check size of secure section >>>> sunxi: Define CONFIG_ARMV7_SECURE_MAX_SIZE for sun6i/sun7i >>>> ARM: Move __secure definition to common asm/secure.h >>>> ARM: Add secure section for initialized data >>>> ARM: PSCI: Add helper functions to access per-CPU target PC storage >>>> ARM: PSCI: Switch to per-CPU target PC storage in secure data section >>>> ARM: PSCI: Make psci_get_cpu_stack_top local to armv7/psci.S >>>> >>>> arch/arm/cpu/armv7/Makefile | 1 + >>>> arch/arm/cpu/armv7/ls102xa/psci.S | 26 ++++---------- >>>> arch/arm/cpu/armv7/mx7/psci-mx7.c | 2 +- >>>> arch/arm/cpu/armv7/mx7/psci.S | 31 +++++------------ >>>> arch/arm/cpu/armv7/nonsec_virt.S | 7 +++- >>>> arch/arm/cpu/armv7/psci-common.c | 39 +++++++++++++++++++++ >>>> arch/arm/cpu/armv7/psci.S | 55 >>>> ++++++++++++++++++++++-------- >>>> arch/arm/cpu/armv7/sunxi/Makefile | 1 - >>>> arch/arm/cpu/armv7/sunxi/psci.c | 9 +++-- >>>> arch/arm/cpu/armv7/sunxi/psci_head.S | 66 >>>> ------------------------------------ >>>> arch/arm/cpu/u-boot.lds | 60 >>>> +++++++++++++++++++++++++------- >>>> arch/arm/include/asm/armv7.h | 2 ++ >>>> arch/arm/include/asm/config.h | 5 +++ >>>> arch/arm/include/asm/psci.h | 9 ++++- >>>> arch/arm/include/asm/secure.h | 3 ++ >>>> arch/arm/lib/sections.c | 2 ++ >>>> arch/arm/mach-tegra/psci.S | 16 ++++----- >>>> include/configs/sun6i.h | 1 + >>>> include/configs/sun7i.h | 2 ++ >>>> 19 files changed, 183 insertions(+), 154 deletions(-) >>>> create mode 100644 arch/arm/cpu/armv7/psci-common.c >>>> delete mode 100644 arch/arm/cpu/armv7/sunxi/psci_head.S >>>> >>> > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot