arm64: Replace CONFIG_* variables with {read/write}_current
Instead of relying on config variables to determine the current el, use
{read/write}_current macros for accessing registers.
BUG=chrome-os-partner:30785
BRANCH=None
TEST=Compiles successfully and boots to kernel login prompt
Change-Id: If4a5d1e9aa50ab180c8012862e2a6c37384f7f91
Signed-off-by: Furquan Shaikh <furquan@google.com>
Reviewed-on: https://chromium-review.googlesource.com/217148
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Commit-Queue: Furquan Shaikh <furquan@chromium.org>
This commit is contained in:
parent
561e9c4ec2
commit
96aed53b28
3 changed files with 4 additions and 25 deletions
|
|
@ -7,15 +7,3 @@ config ARCH_ROMSTAGE_ARM_V8_64
|
|||
config ARCH_RAMSTAGE_ARM_V8_64
|
||||
def_bool n
|
||||
select ARCH_RAMSTAGE_ARM64
|
||||
|
||||
config ARM64_CPUS_START_IN_EL3
|
||||
def_bool n
|
||||
depends on ARCH_BOOTBLOCK_ARM_V8_64 || ARCH_ROMSTAGE_ARM_V8_64 || ARCH_RAMSTAGE_ARM_V8_64
|
||||
|
||||
config ARM64_CPUS_START_IN_EL2
|
||||
def_bool n
|
||||
depends on ARCH_BOOTBLOCK_ARM_V8_64 || ARCH_ROMSTAGE_ARM_V8_64 || ARCH_RAMSTAGE_ARM_V8_64
|
||||
|
||||
config ARM64_CPUS_START_IN_EL1
|
||||
def_bool n
|
||||
depends on ARCH_BOOTBLOCK_ARM_V8_64 || ARCH_ROMSTAGE_ARM_V8_64 || ARCH_RAMSTAGE_ARM_V8_64
|
||||
|
|
|
|||
|
|
@ -19,16 +19,8 @@
|
|||
|
||||
|
||||
#include <arch/asm.h>
|
||||
|
||||
#if CONFIG_ARM64_CPUS_START_IN_EL3
|
||||
#define SCTLR_ELx sctlr_el3
|
||||
#elif CONFIG_ARM64_CPUS_START_IN_EL2
|
||||
#define SCTLR_ELx sctlr_el2
|
||||
#elif CONFIG_ARM64_CPUS_START_IN_EL1
|
||||
#define SCTLR_ELx sctlr_el1
|
||||
#else
|
||||
#error Need to know what ELx processor starts up in.
|
||||
#endif
|
||||
#define __ASSEMBLY__
|
||||
#include <arch/lib_helpers.h>
|
||||
|
||||
#define STACK_SZ CONFIG_STACK_SIZE
|
||||
#define EXCEPTION_STACK_SZ CONFIG_STACK_SIZE
|
||||
|
|
@ -109,12 +101,12 @@ ENTRY(arm64_c_environment)
|
|||
ENDPROC(arm64_c_environment)
|
||||
|
||||
CPU_RESET_ENTRY(arm64_cpu_startup)
|
||||
mrs x0, SCTLR_ELx
|
||||
read_current x0, sctlr
|
||||
bic x0, x0, #(1 << 25) /* Little Endian */
|
||||
bic x0, x0, #(1 << 19) /* XN not enforced */
|
||||
bic x0, x0, #(1 << 12) /* Disable Instruction Cache */
|
||||
bic x0, x0, #0xf /* Clear SA, C, A, and M */
|
||||
msr SCTLR_ELx, x0
|
||||
write_current sctlr, x0, x1
|
||||
isb
|
||||
b arm64_c_environment
|
||||
ENDPROC(arm64_cpu_startup)
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ config SOC_NVIDIA_TEGRA132
|
|||
select ARCH_BOOTBLOCK_ARM_V4
|
||||
select ARCH_ROMSTAGE_ARM_V4
|
||||
select ARCH_RAMSTAGE_ARM_V8_64
|
||||
select ARM64_CPUS_START_IN_EL3
|
||||
select BOOTBLOCK_CONSOLE
|
||||
select HAVE_MONOTONIC_TIMER
|
||||
select HAVE_HARD_RESET
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue