Browse Source

Merge pull request #268 from vikramkanigiri/vk/move_init_cpu_ops

Initialise cpu ops after enabling data cache
pull/271/merge
danh-arm 10 years ago
parent
commit
27bc010666
  1. 4
      bl31/aarch64/bl31_arch_setup.c
  2. 6
      bl31/aarch64/bl31_entrypoint.S
  3. 1
      include/bl31/cpu_data.h
  4. 15
      lib/cpus/aarch64/cpu_helpers.S
  5. 6
      services/std_svc/psci/psci_entry.S

4
bl31/aarch64/bl31_arch_setup.c

@ -33,6 +33,7 @@
#include <assert.h>
#include <bl_common.h>
#include <bl31.h>
#include <cpu_data.h>
#include <platform.h>
/*******************************************************************************
@ -47,4 +48,7 @@ void bl31_arch_setup(void)
/* Program the counter frequency */
write_cntfrq_el0(plat_get_syscnt_freq());
/* Initialize the cpu_ops pointer. */
init_cpu_ops();
}

6
bl31/aarch64/bl31_entrypoint.S

@ -161,12 +161,6 @@ func bl31_entrypoint
bl zeromem16
#endif
/* ---------------------------------------------
* Initialize the cpu_ops pointer.
* ---------------------------------------------
*/
bl init_cpu_ops
/* ---------------------------------------------
* Use SP_EL0 for the C runtime stack.
* ---------------------------------------------

1
include/bl31/cpu_data.h

@ -117,6 +117,7 @@ static inline struct cpu_data *_cpu_data(void)
*************************************************************************/
void init_cpu_data_ptr(void);
void init_cpu_ops(void);
#define get_cpu_data(_m) _cpu_data()->_m
#define set_cpu_data(_m, _v) _cpu_data()->_m = _v

15
lib/cpus/aarch64/cpu_helpers.S

@ -110,7 +110,8 @@ func prepare_cluster_pwr_dwn
/*
* Initializes the cpu_ops_ptr if not already initialized
* in cpu_data. This can be called without a runtime stack.
* in cpu_data. This can be called without a runtime stack, but may
* only be called after the MMU is enabled.
* clobbers: x0 - x6, x10
*/
.globl init_cpu_ops
@ -125,18 +126,6 @@ func init_cpu_ops
ASM_ASSERT(ne)
#endif
str x0, [x6, #CPU_DATA_CPU_OPS_PTR]!
/*
* Make sure that any pre-fetched cache copies are invalidated.
* Ensure that we are running with cache disable else we
* invalidate our own update.
*/
#if ASM_ASSERTION
mrs x1, sctlr_el3
tst x1, #SCTLR_C_BIT
ASM_ASSERT(eq)
#endif
dc ivac, x6
mov x30, x10
1:
ret

6
services/std_svc/psci/psci_entry.S

@ -86,12 +86,6 @@ psci_aff_common_finish_entry:
*/
bl init_cpu_data_ptr
/* ---------------------------------------------
* Initialize the cpu_ops pointer.
* ---------------------------------------------
*/
bl init_cpu_ops
/* ---------------------------------------------
* Set the exception vectors
* ---------------------------------------------

Loading…
Cancel
Save