#include <asm/cputable.h>
+extern unsigned long __cortexa57_cpu_setup(void);
extern unsigned long __cpu_setup(void);
struct cpu_info cpu_table[] = {
.cpu_name = "NVIDIA Denver 1.0",
.cpu_setup = __cpu_setup,
},
+ {
+ .cpu_id_val = 0x410fd070,
+ .cpu_id_mask = 0xff0ffff0,
+ .cpu_name = "Cortex A57 Processor",
+ .cpu_setup = __cortexa57_cpu_setup,
+ },
{
.cpu_id_val = 0x000f0000,
.cpu_id_mask = 0x000f0000,
ret // return to head.S
ENDPROC(__cpu_setup)
+ENTRY(__cortexa57_cpu_setup)
+
+ mrs x0, s3_1_c11_c0_2
+ and x1, x0, #7
+ cmp x1, #2
+ b.eq __cpu_setup
+ mov x1, #7
+ bic x0, x0, x1
+ orr x0, x0, #2 // set data RAM latency to 3
+ msr s3_1_c11_c0_2, x0
+
+ b __cpu_setup
+ENDPROC(__cortexa57_cpu_setup)
+
/*
* n n T
* U E WT T UD US IHBS