mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-19 18:53:52 +08:00
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
@ -17,6 +17,8 @@
|
|||||||
#ifndef __MACH_ZYNQ_COMMON_H__
|
#ifndef __MACH_ZYNQ_COMMON_H__
|
||||||
#define __MACH_ZYNQ_COMMON_H__
|
#define __MACH_ZYNQ_COMMON_H__
|
||||||
|
|
||||||
|
void zynq_secondary_startup(void);
|
||||||
|
|
||||||
extern int zynq_slcr_init(void);
|
extern int zynq_slcr_init(void);
|
||||||
extern void zynq_slcr_system_reset(void);
|
extern void zynq_slcr_system_reset(void);
|
||||||
extern void zynq_slcr_cpu_stop(int cpu);
|
extern void zynq_slcr_cpu_stop(int cpu);
|
||||||
|
@ -18,5 +18,9 @@ zynq_secondary_trampoline_jump:
|
|||||||
.word /* cpu 1 */
|
.word /* cpu 1 */
|
||||||
.globl zynq_secondary_trampoline_end
|
.globl zynq_secondary_trampoline_end
|
||||||
zynq_secondary_trampoline_end:
|
zynq_secondary_trampoline_end:
|
||||||
|
|
||||||
ENDPROC(zynq_secondary_trampoline)
|
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,
|
static int zynq_boot_secondary(unsigned int cpu,
|
||||||
struct task_struct *idle)
|
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 New Issue
Block a user