diff options
Diffstat (limited to 'arch/arm/boot')
-rw-r--r-- | arch/arm/boot/compressed/head.S | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index 5cac46a19bb7..3c2c8f2a1dc4 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -623,6 +623,12 @@ proc_types: | |||
623 | b __armv4_mmu_cache_off | 623 | b __armv4_mmu_cache_off |
624 | b __armv4_mmu_cache_flush | 624 | b __armv4_mmu_cache_flush |
625 | 625 | ||
626 | .word 0x56055310 @ Feroceon | ||
627 | .word 0xfffffff0 | ||
628 | b __armv4_mmu_cache_on | ||
629 | b __armv4_mmu_cache_off | ||
630 | b __armv5tej_mmu_cache_flush | ||
631 | |||
626 | @ These match on the architecture ID | 632 | @ These match on the architecture ID |
627 | 633 | ||
628 | .word 0x00020000 @ ARMv4T | 634 | .word 0x00020000 @ ARMv4T |
@@ -641,7 +647,7 @@ proc_types: | |||
641 | .word 0x000f0000 | 647 | .word 0x000f0000 |
642 | b __armv4_mmu_cache_on | 648 | b __armv4_mmu_cache_on |
643 | b __armv4_mmu_cache_off | 649 | b __armv4_mmu_cache_off |
644 | b __armv4_mmu_cache_flush | 650 | b __armv5tej_mmu_cache_flush |
645 | 651 | ||
646 | .word 0x0007b000 @ ARMv6 | 652 | .word 0x0007b000 @ ARMv6 |
647 | .word 0x000ff000 | 653 | .word 0x000ff000 |
@@ -821,6 +827,13 @@ iflush: | |||
821 | mcr p15, 0, r10, c7, c10, 4 @ drain WB | 827 | mcr p15, 0, r10, c7, c10, 4 @ drain WB |
822 | mov pc, lr | 828 | mov pc, lr |
823 | 829 | ||
830 | __armv5tej_mmu_cache_flush: | ||
831 | 1: mrc p15, 0, r15, c7, c14, 3 @ test,clean,invalidate D cache | ||
832 | bne 1b | ||
833 | mcr p15, 0, r0, c7, c5, 0 @ flush I cache | ||
834 | mcr p15, 0, r0, c7, c10, 4 @ drain WB | ||
835 | mov pc, lr | ||
836 | |||
824 | __armv4_mmu_cache_flush: | 837 | __armv4_mmu_cache_flush: |
825 | mov r2, #64*1024 @ default: 32K dcache size (*2) | 838 | mov r2, #64*1024 @ default: 32K dcache size (*2) |
826 | mov r11, #32 @ default: 32 byte line size | 839 | mov r11, #32 @ default: 32 byte line size |