diff options
Diffstat (limited to 'arch/powerpc/boot/virtex405-head.S')
-rw-r--r-- | arch/powerpc/boot/virtex405-head.S | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/arch/powerpc/boot/virtex405-head.S b/arch/powerpc/boot/virtex405-head.S new file mode 100644 index 000000000..00bab7d7c --- /dev/null +++ b/arch/powerpc/boot/virtex405-head.S @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#include "ppc_asm.h" + + .text + .global _zimage_start +_zimage_start: + + /* PPC errata 213: needed by Virtex-4 FX */ + mfccr0 0 + oris 0,0,0x50000000@h + mtccr0 0 + + /* + * Invalidate the data cache if the data cache is turned off. + * - The 405 core does not invalidate the data cache on power-up + * or reset but does turn off the data cache. We cannot assume + * that the cache contents are valid. + * - If the data cache is turned on this must have been done by + * a bootloader and we assume that the cache contents are + * valid. + */ + mfdccr r9 + cmplwi r9,0 + bne 2f + lis r9,0 + li r8,256 + mtctr r8 +1: dccci r0,r9 + addi r9,r9,0x20 + bdnz 1b +2: b _zimage_start_lib |