mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-11 13:56:30 +00:00
7de4703691
1. add basic psci support for imx7 chip. 2. support cpu_on and cpu_off. 3. switch to non-secure mode when boot linux kernel. 4. set csu allow accessing all peripherial register in non-secure mode. Signed-off-by: Frank Li <Frank.Li@freescale.com> Signed-off-by: Peng Fan <Peng.Fan@freescale.com> Cc: Stefano Babic <sbabic@denx.de> Cc: Fabio Estevam <fabio.estevam@freescale.com>
54 lines
703 B
ArmAsm
54 lines
703 B
ArmAsm
#include <config.h>
|
|
#include <linux/linkage.h>
|
|
|
|
#include <asm/armv7.h>
|
|
#include <asm/arch-armv7/generictimer.h>
|
|
#include <asm/psci.h>
|
|
|
|
.pushsection ._secure.text, "ax"
|
|
|
|
.arch_extension sec
|
|
|
|
@ r1 = target CPU
|
|
@ r2 = target PC
|
|
|
|
.globl psci_arch_init
|
|
psci_arch_init:
|
|
mov r6, lr
|
|
|
|
bl psci_get_cpu_id
|
|
bl psci_get_cpu_stack_top
|
|
mov sp, r0
|
|
|
|
bx r6
|
|
|
|
@ r1 = target CPU
|
|
@ r2 = target PC
|
|
|
|
.globl psci_cpu_on
|
|
psci_cpu_on:
|
|
push {lr}
|
|
|
|
mov r0, r1
|
|
bl psci_get_cpu_stack_top
|
|
str r2, [r0]
|
|
dsb
|
|
|
|
ldr r2, =psci_cpu_entry
|
|
bl imx_cpu_on
|
|
|
|
pop {pc}
|
|
|
|
.globl psci_cpu_off
|
|
psci_cpu_off:
|
|
|
|
bl psci_cpu_off_common
|
|
bl psci_get_cpu_id
|
|
bl imx_cpu_off
|
|
|
|
1: wfi
|
|
b 1b
|
|
|
|
.globl psci_text_end
|
|
psci_text_end:
|
|
.popsection
|