mirror of
https://github.com/linux-sunxi/u-boot-sunxi.git
synced 2024-02-12 11:16:03 +08:00
powerpc/mpc85xx: Make NMG_CPU_A011 workaround conditional
This erratum applies to the following SoCs: P4080 rev 1.0, 2.0, fixed in rev 3.0 P2041 rev 1.0, 1.1, fixed in rev 2.0 P3041 rev 1.0, 1.1, fixed in rev 2.0. Workaround for erratum NMG_CPU_A011 is enabled by default. This workaround may degrade performance. P4080 erratum CPU22 shares the same workaround. So it is always enabled for P4080. For other SoCs, it can be disabled by hwconfig with syntax: fsl_cpu_a011:disable Signed-off-by: York Sun <yorksun@freescale.com> Signed-off-by: Andy Fleming <afleming@freescale.com>
This commit is contained in:
@ -163,6 +163,12 @@ __secondary_start_page:
|
||||
cmpw r3,r5
|
||||
bge 2f
|
||||
1:
|
||||
#ifdef CONFIG_SYS_FSL_ERRATUM_NMG_CPU_A011
|
||||
lis r3,toreset(enable_cpu_a011_workaround)@ha
|
||||
lwz r3,toreset(enable_cpu_a011_workaround)@l(r3)
|
||||
cmpwi r3,0
|
||||
beq 2f
|
||||
#endif
|
||||
mfspr r3,L1CSR2
|
||||
oris r3,r3,(L1CSR2_DCWS)@h
|
||||
mtspr L1CSR2,r3
|
||||
@ -346,6 +352,15 @@ __bootpg_addr:
|
||||
__spin_table:
|
||||
.space CONFIG_MAX_CPUS*ENTRY_SIZE
|
||||
|
||||
/*
|
||||
* This variable is set by cpu_init_r() after parsing hwconfig
|
||||
* to enable workaround for erratum NMG_CPU_A011.
|
||||
*/
|
||||
.align L1_CACHE_SHIFT
|
||||
.global enable_cpu_a011_workaround
|
||||
enable_cpu_a011_workaround:
|
||||
.long 1
|
||||
|
||||
/* Fill in the empty space. The actual reset vector is
|
||||
* the last word of the page */
|
||||
__secondary_start_code_end:
|
||||
|
Reference in New Issue
Block a user