head.S (9a38e989b8ce04923f919fc2a8a24eb07fb484e2) head.S (28853ac8fe5221de74a14f1182d7b2b383dfd85c)
1/*
2 * linux/arch/arm/boot/compressed/head.S
3 *
4 * Copyright (C) 1996-2002 Russell King
5 * Copyright (C) 2004 Hyok S. Choi (MPU support)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 13 unchanged lines hidden (view full) ---

22#if defined(CONFIG_DEBUG_ICEDCC)
23
24#ifdef CONFIG_CPU_V6
25 .macro loadsp, rb
26 .endm
27 .macro writeb, ch, rb
28 mcr p14, 0, \ch, c0, c5, 0
29 .endm
1/*
2 * linux/arch/arm/boot/compressed/head.S
3 *
4 * Copyright (C) 1996-2002 Russell King
5 * Copyright (C) 2004 Hyok S. Choi (MPU support)
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as

--- 13 unchanged lines hidden (view full) ---

22#if defined(CONFIG_DEBUG_ICEDCC)
23
24#ifdef CONFIG_CPU_V6
25 .macro loadsp, rb
26 .endm
27 .macro writeb, ch, rb
28 mcr p14, 0, \ch, c0, c5, 0
29 .endm
30#elif defined(CONFIG_CPU_XSCALE)
31 .macro loadsp, rb
32 .endm
33 .macro writeb, ch, rb
34 mcr p14, 0, \ch, c8, c0, 0
35 .endm
36#else
37 .macro loadsp, rb
38 .endm
39 .macro writeb, ch, rb
40 mcr p14, 0, \ch, c1, c0, 0
41 .endm
42#endif
43

--- 416 unchanged lines hidden (view full) ---

460 mcrne p15, 0, r3, c2, c0, 0 @ load page table pointer
461 mcrne p15, 0, r1, c3, c0, 0 @ load domain access control
462 mcr p15, 0, r0, c1, c0, 0 @ load control register
463 mrc p15, 0, r0, c1, c0, 0 @ and read it back
464 mov r0, #0
465 mcr p15, 0, r0, c7, c5, 4 @ ISB
466 mov pc, r12
467
30#else
31 .macro loadsp, rb
32 .endm
33 .macro writeb, ch, rb
34 mcr p14, 0, \ch, c1, c0, 0
35 .endm
36#endif
37

--- 416 unchanged lines hidden (view full) ---

454 mcrne p15, 0, r3, c2, c0, 0 @ load page table pointer
455 mcrne p15, 0, r1, c3, c0, 0 @ load domain access control
456 mcr p15, 0, r0, c1, c0, 0 @ load control register
457 mrc p15, 0, r0, c1, c0, 0 @ and read it back
458 mov r0, #0
459 mcr p15, 0, r0, c7, c5, 4 @ ISB
460 mov pc, r12
461
462__fa526_cache_on:
463 mov r12, lr
464 bl __setup_mmu
465 mov r0, #0
466 mcr p15, 0, r0, c7, c7, 0 @ Invalidate whole cache
467 mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
468 mcr p15, 0, r0, c8, c7, 0 @ flush UTLB
469 mrc p15, 0, r0, c1, c0, 0 @ read control reg
470 orr r0, r0, #0x1000 @ I-cache enable
471 bl __common_mmu_cache_on
472 mov r0, #0
473 mcr p15, 0, r0, c8, c7, 0 @ flush UTLB
474 mov pc, r12
475
468__arm6_mmu_cache_on:
469 mov r12, lr
470 bl __setup_mmu
471 mov r0, #0
472 mcr p15, 0, r0, c7, c0, 0 @ invalidate whole cache v3
473 mcr p15, 0, r0, c5, c0, 0 @ invalidate whole TLB v3
474 mov r0, #0x30
475 bl __common_mmu_cache_on

--- 155 unchanged lines hidden (view full) ---

631 b __armv4_mmu_cache_flush
632
633 .word 0x56056930
634 .word 0xff0ffff0 @ PXA935
635 b __armv4_mmu_cache_on
636 b __armv4_mmu_cache_off
637 b __armv4_mmu_cache_flush
638
476__arm6_mmu_cache_on:
477 mov r12, lr
478 bl __setup_mmu
479 mov r0, #0
480 mcr p15, 0, r0, c7, c0, 0 @ invalidate whole cache v3
481 mcr p15, 0, r0, c5, c0, 0 @ invalidate whole TLB v3
482 mov r0, #0x30
483 bl __common_mmu_cache_on

--- 155 unchanged lines hidden (view full) ---

639 b __armv4_mmu_cache_flush
640
641 .word 0x56056930
642 .word 0xff0ffff0 @ PXA935
643 b __armv4_mmu_cache_on
644 b __armv4_mmu_cache_off
645 b __armv4_mmu_cache_flush
646
639 .word 0x56158000 @ PXA168
640 .word 0xfffff000
641 b __armv4_mmu_cache_on
642 b __armv4_mmu_cache_off
643 b __armv5tej_mmu_cache_flush
644
645 .word 0x56056930
646 .word 0xff0ffff0 @ PXA935
647 b __armv4_mmu_cache_on
648 b __armv4_mmu_cache_off
649 b __armv4_mmu_cache_flush
650
651 .word 0x56050000 @ Feroceon
652 .word 0xff0f0000
653 b __armv4_mmu_cache_on
654 b __armv4_mmu_cache_off
655 b __armv5tej_mmu_cache_flush
656
647 .word 0x56050000 @ Feroceon
648 .word 0xff0f0000
649 b __armv4_mmu_cache_on
650 b __armv4_mmu_cache_off
651 b __armv5tej_mmu_cache_flush
652
653 .word 0x66015261 @ FA526
654 .word 0xff01fff1
655 b __fa526_cache_on
656 b __armv4_mmu_cache_off
657 b __fa526_cache_flush
658
657 @ These match on the architecture ID
658
659 .word 0x00020000 @ ARMv4T
660 .word 0x000f0000
661 b __armv4_mmu_cache_on
662 b __armv4_mmu_cache_off
663 b __armv4_mmu_cache_flush
664

--- 123 unchanged lines hidden (view full) ---

788 subs r1, r1, #1 << 5
789 bcs 1b @ segments 7 to 0
790
791 teq r2, #0
792 mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
793 mcr p15, 0, ip, c7, c10, 4 @ drain WB
794 mov pc, lr
795
659 @ These match on the architecture ID
660
661 .word 0x00020000 @ ARMv4T
662 .word 0x000f0000
663 b __armv4_mmu_cache_on
664 b __armv4_mmu_cache_off
665 b __armv4_mmu_cache_flush
666

--- 123 unchanged lines hidden (view full) ---

790 subs r1, r1, #1 << 5
791 bcs 1b @ segments 7 to 0
792
793 teq r2, #0
794 mcrne p15, 0, ip, c7, c5, 0 @ invalidate I cache
795 mcr p15, 0, ip, c7, c10, 4 @ drain WB
796 mov pc, lr
797
798__fa526_cache_flush:
799 mov r1, #0
800 mcr p15, 0, r1, c7, c14, 0 @ clean and invalidate D cache
801 mcr p15, 0, r1, c7, c5, 0 @ flush I cache
802 mcr p15, 0, r1, c7, c10, 4 @ drain WB
803 mov pc, lr
796
797__armv6_mmu_cache_flush:
798 mov r1, #0
799 mcr p15, 0, r1, c7, c14, 0 @ clean+invalidate D
800 mcr p15, 0, r1, c7, c5, 0 @ invalidate I+BTB
801 mcr p15, 0, r1, c7, c15, 0 @ clean+invalidate unified
802 mcr p15, 0, r1, c7, c10, 4 @ drain WB
803 mov pc, lr

--- 176 unchanged lines hidden ---
804
805__armv6_mmu_cache_flush:
806 mov r1, #0
807 mcr p15, 0, r1, c7, c14, 0 @ clean+invalidate D
808 mcr p15, 0, r1, c7, c5, 0 @ invalidate I+BTB
809 mcr p15, 0, r1, c7, c15, 0 @ clean+invalidate unified
810 mcr p15, 0, r1, c7, c10, 4 @ drain WB
811 mov pc, lr

--- 176 unchanged lines hidden ---