arm: zynq: Invalidate L1 in secondary boot
During boot, Linux initiates a clean-invalidate operation only, resulting in faulty data to be written to the memory system during resume. Therefore invalidate the L1 in the secondary boot path to avoid these issues. Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
parent
11e031308b
commit
6a37ff388a
3 changed files with 8 additions and 2 deletions
|
@ -17,6 +17,8 @@
|
|||
#ifndef __MACH_ZYNQ_COMMON_H__
|
||||
#define __MACH_ZYNQ_COMMON_H__
|
||||
|
||||
void zynq_secondary_startup(void);
|
||||
|
||||
extern int zynq_slcr_init(void);
|
||||
extern void zynq_slcr_system_reset(void);
|
||||
extern void zynq_slcr_cpu_stop(int cpu);
|
||||
|
|
|
@ -18,5 +18,9 @@ zynq_secondary_trampoline_jump:
|
|||
.word /* cpu 1 */
|
||||
.globl zynq_secondary_trampoline_end
|
||||
zynq_secondary_trampoline_end:
|
||||
|
||||
ENDPROC(zynq_secondary_trampoline)
|
||||
|
||||
ENTRY(zynq_secondary_startup)
|
||||
bl v7_invalidate_l1
|
||||
b secondary_startup
|
||||
ENDPROC(zynq_secondary_startup)
|
||||
|
|
|
@ -90,7 +90,7 @@ EXPORT_SYMBOL(zynq_cpun_start);
|
|||
static int zynq_boot_secondary(unsigned int cpu,
|
||||
struct task_struct *idle)
|
||||
{
|
||||
return zynq_cpun_start(virt_to_phys(secondary_startup), cpu);
|
||||
return zynq_cpun_start(virt_to_phys(zynq_secondary_startup), cpu);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue