diff options
Diffstat (limited to 'arch/arm/boot/compressed/head.S')
-rw-r--r-- | arch/arm/boot/compressed/head.S | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index d14b827adcd6..b371fba1b954 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
@@ -465,6 +465,20 @@ __armv7_mmu_cache_on: | |||
465 | mcr p15, 0, r0, c7, c5, 4 @ ISB | 465 | mcr p15, 0, r0, c7, c5, 4 @ ISB |
466 | mov pc, r12 | 466 | mov pc, r12 |
467 | 467 | ||
468 | __fa526_cache_on: | ||
469 | mov r12, lr | ||
470 | bl __setup_mmu | ||
471 | mov r0, #0 | ||
472 | mcr p15, 0, r0, c7, c7, 0 @ Invalidate whole cache | ||
473 | mcr p15, 0, r0, c7, c10, 4 @ drain write buffer | ||
474 | mcr p15, 0, r0, c8, c7, 0 @ flush UTLB | ||
475 | mrc p15, 0, r0, c1, c0, 0 @ read control reg | ||
476 | orr r0, r0, #0x1000 @ I-cache enable | ||
477 | bl __common_mmu_cache_on | ||
478 | mov r0, #0 | ||
479 | mcr p15, 0, r0, c8, c7, 0 @ flush UTLB | ||
480 | mov pc, r12 | ||
481 | |||
468 | __arm6_mmu_cache_on: | 482 | __arm6_mmu_cache_on: |
469 | mov r12, lr | 483 | mov r12, lr |
470 | bl __setup_mmu | 484 | bl __setup_mmu |
@@ -654,6 +668,12 @@ proc_types: | |||
654 | b __armv4_mmu_cache_off | 668 | b __armv4_mmu_cache_off |
655 | b __armv5tej_mmu_cache_flush | 669 | b __armv5tej_mmu_cache_flush |
656 | 670 | ||
671 | .word 0x66015261 @ FA526 | ||
672 | .word 0xff01fff1 | ||
673 | b __fa526_cache_on | ||
674 | b __armv4_mmu_cache_off | ||
675 | b __fa526_cache_flush | ||
676 | |||
657 | @ These match on the architecture ID | 677 | @ These match on the architecture ID |
658 | 678 | ||
659 | .word 0x00020000 @ ARMv4T | 679 | .word 0x00020000 @ ARMv4T |
@@ -793,6 +813,12 @@ __armv4_mpu_cache_flush: | |||
793 | mcr p15, 0, ip, c7, c10, 4 @ drain WB | 813 | mcr p15, 0, ip, c7, c10, 4 @ drain WB |
794 | mov pc, lr | 814 | mov pc, lr |
795 | 815 | ||
816 | __fa526_cache_flush: | ||
817 | mov r1, #0 | ||
818 | mcr p15, 0, r1, c7, c14, 0 @ clean and invalidate D cache | ||
819 | mcr p15, 0, r1, c7, c5, 0 @ flush I cache | ||
820 | mcr p15, 0, r1, c7, c10, 4 @ drain WB | ||
821 | mov pc, lr | ||
796 | 822 | ||
797 | __armv6_mmu_cache_flush: | 823 | __armv6_mmu_cache_flush: |
798 | mov r1, #0 | 824 | mov r1, #0 |