diff options
| -rw-r--r-- | arch/arm/Kconfig | 70 | ||||
| -rw-r--r-- | arch/arm/Makefile | 4 | ||||
| -rw-r--r-- | arch/arm/boot/compressed/head.S | 8 | ||||
| -rw-r--r-- | arch/arm/boot/compressed/misc.c | 13 | ||||
| -rw-r--r-- | arch/arm/include/asm/cacheflush.h | 20 | ||||
| -rw-r--r-- | arch/arm/kernel/debug.S | 20 | ||||
| -rw-r--r-- | arch/arm/kernel/elf.c | 9 | ||||
| -rw-r--r-- | arch/arm/mach-gemini/include/mach/uncompress.h | 4 | ||||
| -rw-r--r-- | arch/arm/mm/mmu.c | 2 | ||||
| -rw-r--r-- | arch/arm/mm/proc-v6.S | 2 | ||||
| -rw-r--r-- | arch/arm/mm/proc-v7.S | 11 | ||||
| -rw-r--r-- | arch/arm/plat-mxc/include/mach/uncompress.h | 4 |
12 files changed, 110 insertions, 57 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index c2238cd474c7..4c33ca82f9b1 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
| @@ -729,14 +729,26 @@ config ARCH_U8500 | |||
| 729 | 729 | ||
| 730 | endchoice | 730 | endchoice |
| 731 | 731 | ||
| 732 | source "arch/arm/mach-aaec2000/Kconfig" | ||
| 733 | |||
| 734 | source "arch/arm/mach-at91/Kconfig" | ||
| 735 | |||
| 736 | source "arch/arm/mach-bcmring/Kconfig" | ||
| 737 | |||
| 732 | source "arch/arm/mach-clps711x/Kconfig" | 738 | source "arch/arm/mach-clps711x/Kconfig" |
| 733 | 739 | ||
| 740 | source "arch/arm/mach-davinci/Kconfig" | ||
| 741 | |||
| 742 | source "arch/arm/mach-dove/Kconfig" | ||
| 743 | |||
| 734 | source "arch/arm/mach-ep93xx/Kconfig" | 744 | source "arch/arm/mach-ep93xx/Kconfig" |
| 735 | 745 | ||
| 736 | source "arch/arm/mach-footbridge/Kconfig" | 746 | source "arch/arm/mach-footbridge/Kconfig" |
| 737 | 747 | ||
| 738 | source "arch/arm/mach-gemini/Kconfig" | 748 | source "arch/arm/mach-gemini/Kconfig" |
| 739 | 749 | ||
| 750 | source "arch/arm/mach-h720x/Kconfig" | ||
| 751 | |||
| 740 | source "arch/arm/mach-integrator/Kconfig" | 752 | source "arch/arm/mach-integrator/Kconfig" |
| 741 | 753 | ||
| 742 | source "arch/arm/mach-iop32x/Kconfig" | 754 | source "arch/arm/mach-iop32x/Kconfig" |
| @@ -751,16 +763,26 @@ source "arch/arm/mach-ixp2000/Kconfig" | |||
| 751 | 763 | ||
| 752 | source "arch/arm/mach-ixp23xx/Kconfig" | 764 | source "arch/arm/mach-ixp23xx/Kconfig" |
| 753 | 765 | ||
| 766 | source "arch/arm/mach-kirkwood/Kconfig" | ||
| 767 | |||
| 768 | source "arch/arm/mach-ks8695/Kconfig" | ||
| 769 | |||
| 770 | source "arch/arm/mach-lh7a40x/Kconfig" | ||
| 771 | |||
| 754 | source "arch/arm/mach-loki/Kconfig" | 772 | source "arch/arm/mach-loki/Kconfig" |
| 755 | 773 | ||
| 774 | source "arch/arm/mach-msm/Kconfig" | ||
| 775 | |||
| 756 | source "arch/arm/mach-mv78xx0/Kconfig" | 776 | source "arch/arm/mach-mv78xx0/Kconfig" |
| 757 | 777 | ||
| 758 | source "arch/arm/mach-pxa/Kconfig" | 778 | source "arch/arm/plat-mxc/Kconfig" |
| 759 | source "arch/arm/plat-pxa/Kconfig" | ||
| 760 | 779 | ||
| 761 | source "arch/arm/mach-mmp/Kconfig" | 780 | source "arch/arm/mach-netx/Kconfig" |
| 762 | 781 | ||
| 763 | source "arch/arm/mach-sa1100/Kconfig" | 782 | source "arch/arm/mach-nomadik/Kconfig" |
| 783 | source "arch/arm/plat-nomadik/Kconfig" | ||
| 784 | |||
| 785 | source "arch/arm/mach-ns9xxx/Kconfig" | ||
| 764 | 786 | ||
| 765 | source "arch/arm/plat-omap/Kconfig" | 787 | source "arch/arm/plat-omap/Kconfig" |
| 766 | 788 | ||
| @@ -770,9 +792,14 @@ source "arch/arm/mach-omap2/Kconfig" | |||
| 770 | 792 | ||
| 771 | source "arch/arm/mach-orion5x/Kconfig" | 793 | source "arch/arm/mach-orion5x/Kconfig" |
| 772 | 794 | ||
| 773 | source "arch/arm/mach-kirkwood/Kconfig" | 795 | source "arch/arm/mach-pxa/Kconfig" |
| 796 | source "arch/arm/plat-pxa/Kconfig" | ||
| 774 | 797 | ||
| 775 | source "arch/arm/mach-dove/Kconfig" | 798 | source "arch/arm/mach-mmp/Kconfig" |
| 799 | |||
| 800 | source "arch/arm/mach-realview/Kconfig" | ||
| 801 | |||
| 802 | source "arch/arm/mach-sa1100/Kconfig" | ||
| 776 | 803 | ||
| 777 | source "arch/arm/plat-samsung/Kconfig" | 804 | source "arch/arm/plat-samsung/Kconfig" |
| 778 | source "arch/arm/plat-s3c24xx/Kconfig" | 805 | source "arch/arm/plat-s3c24xx/Kconfig" |
| @@ -800,41 +827,14 @@ if ARCH_S5PC1XX | |||
| 800 | source "arch/arm/mach-s5pc100/Kconfig" | 827 | source "arch/arm/mach-s5pc100/Kconfig" |
| 801 | endif | 828 | endif |
| 802 | 829 | ||
| 803 | source "arch/arm/mach-lh7a40x/Kconfig" | 830 | source "arch/arm/mach-u300/Kconfig" |
| 804 | 831 | ||
| 805 | source "arch/arm/mach-h720x/Kconfig" | 832 | source "arch/arm/mach-ux500/Kconfig" |
| 806 | 833 | ||
| 807 | source "arch/arm/mach-versatile/Kconfig" | 834 | source "arch/arm/mach-versatile/Kconfig" |
| 808 | 835 | ||
| 809 | source "arch/arm/mach-aaec2000/Kconfig" | ||
| 810 | |||
| 811 | source "arch/arm/mach-realview/Kconfig" | ||
| 812 | |||
| 813 | source "arch/arm/mach-at91/Kconfig" | ||
| 814 | |||
| 815 | source "arch/arm/plat-mxc/Kconfig" | ||
| 816 | |||
| 817 | source "arch/arm/mach-nomadik/Kconfig" | ||
| 818 | source "arch/arm/plat-nomadik/Kconfig" | ||
| 819 | |||
| 820 | source "arch/arm/mach-netx/Kconfig" | ||
| 821 | |||
| 822 | source "arch/arm/mach-ns9xxx/Kconfig" | ||
| 823 | |||
| 824 | source "arch/arm/mach-davinci/Kconfig" | ||
| 825 | |||
| 826 | source "arch/arm/mach-ks8695/Kconfig" | ||
| 827 | |||
| 828 | source "arch/arm/mach-msm/Kconfig" | ||
| 829 | |||
| 830 | source "arch/arm/mach-u300/Kconfig" | ||
| 831 | |||
| 832 | source "arch/arm/mach-w90x900/Kconfig" | 836 | source "arch/arm/mach-w90x900/Kconfig" |
| 833 | 837 | ||
| 834 | source "arch/arm/mach-bcmring/Kconfig" | ||
| 835 | |||
| 836 | source "arch/arm/mach-ux500/Kconfig" | ||
| 837 | |||
| 838 | # Definitions to make life easier | 838 | # Definitions to make life easier |
| 839 | config ARCH_ACORN | 839 | config ARCH_ACORN |
| 840 | bool | 840 | bool |
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index e9da08483b3c..9e7582572741 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
| @@ -146,6 +146,7 @@ machine-$(CONFIG_ARCH_MX1) := mx1 | |||
| 146 | machine-$(CONFIG_ARCH_MX2) := mx2 | 146 | machine-$(CONFIG_ARCH_MX2) := mx2 |
| 147 | machine-$(CONFIG_ARCH_MX25) := mx25 | 147 | machine-$(CONFIG_ARCH_MX25) := mx25 |
| 148 | machine-$(CONFIG_ARCH_MX3) := mx3 | 148 | machine-$(CONFIG_ARCH_MX3) := mx3 |
| 149 | machine-$(CONFIG_ARCH_MXC91231) := mxc91231 | ||
| 149 | machine-$(CONFIG_ARCH_NETX) := netx | 150 | machine-$(CONFIG_ARCH_NETX) := netx |
| 150 | machine-$(CONFIG_ARCH_NOMADIK) := nomadik | 151 | machine-$(CONFIG_ARCH_NOMADIK) := nomadik |
| 151 | machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx | 152 | machine-$(CONFIG_ARCH_NS9XXX) := ns9xxx |
| @@ -171,12 +172,12 @@ machine-$(CONFIG_ARCH_U8500) := ux500 | |||
| 171 | machine-$(CONFIG_ARCH_VERSATILE) := versatile | 172 | machine-$(CONFIG_ARCH_VERSATILE) := versatile |
| 172 | machine-$(CONFIG_ARCH_W90X900) := w90x900 | 173 | machine-$(CONFIG_ARCH_W90X900) := w90x900 |
| 173 | machine-$(CONFIG_FOOTBRIDGE) := footbridge | 174 | machine-$(CONFIG_FOOTBRIDGE) := footbridge |
| 174 | machine-$(CONFIG_ARCH_MXC91231) := mxc91231 | ||
| 175 | 175 | ||
| 176 | # Platform directory name. This list is sorted alphanumerically | 176 | # Platform directory name. This list is sorted alphanumerically |
| 177 | # by CONFIG_* macro name. | 177 | # by CONFIG_* macro name. |
| 178 | plat-$(CONFIG_ARCH_MXC) := mxc | 178 | plat-$(CONFIG_ARCH_MXC) := mxc |
| 179 | plat-$(CONFIG_ARCH_OMAP) := omap | 179 | plat-$(CONFIG_ARCH_OMAP) := omap |
| 180 | plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx | ||
| 180 | plat-$(CONFIG_PLAT_IOP) := iop | 181 | plat-$(CONFIG_PLAT_IOP) := iop |
| 181 | plat-$(CONFIG_PLAT_NOMADIK) := nomadik | 182 | plat-$(CONFIG_PLAT_NOMADIK) := nomadik |
| 182 | plat-$(CONFIG_PLAT_ORION) := orion | 183 | plat-$(CONFIG_PLAT_ORION) := orion |
| @@ -184,7 +185,6 @@ plat-$(CONFIG_PLAT_PXA) := pxa | |||
| 184 | plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c samsung | 185 | plat-$(CONFIG_PLAT_S3C24XX) := s3c24xx s3c samsung |
| 185 | plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c samsung | 186 | plat-$(CONFIG_PLAT_S3C64XX) := s3c64xx s3c samsung |
| 186 | plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx s3c samsung | 187 | plat-$(CONFIG_PLAT_S5PC1XX) := s5pc1xx s3c samsung |
| 187 | plat-$(CONFIG_ARCH_STMP3XXX) := stmp3xxx | ||
| 188 | 188 | ||
| 189 | ifeq ($(CONFIG_ARCH_EBSA110),y) | 189 | ifeq ($(CONFIG_ARCH_EBSA110),y) |
| 190 | # This is what happens if you forget the IOCS16 line. | 190 | # This is what happens if you forget the IOCS16 line. |
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S index d356af7cef82..4fddc509e78e 100644 --- a/arch/arm/boot/compressed/head.S +++ b/arch/arm/boot/compressed/head.S | |||
| @@ -27,6 +27,14 @@ | |||
| 27 | .macro writeb, ch, rb | 27 | .macro writeb, ch, rb |
| 28 | mcr p14, 0, \ch, c0, c5, 0 | 28 | mcr p14, 0, \ch, c0, c5, 0 |
| 29 | .endm | 29 | .endm |
| 30 | #elif defined(CONFIG_CPU_V7) | ||
| 31 | .macro loadsp, rb | ||
| 32 | .endm | ||
| 33 | .macro writeb, ch, rb | ||
| 34 | wait: mrc p14, 0, pc, c0, c1, 0 | ||
| 35 | bcs wait | ||
| 36 | mcr p14, 0, \ch, c0, c5, 0 | ||
| 37 | .endm | ||
| 30 | #elif defined(CONFIG_CPU_XSCALE) | 38 | #elif defined(CONFIG_CPU_XSCALE) |
| 31 | .macro loadsp, rb | 39 | .macro loadsp, rb |
| 32 | .endm | 40 | .endm |
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 7e0fe4d42c7b..56a0d116d271 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
| @@ -53,6 +53,18 @@ static void icedcc_putc(int ch) | |||
| 53 | 53 | ||
| 54 | asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch)); | 54 | asm("mcr p14, 0, %0, c0, c5, 0" : : "r" (ch)); |
| 55 | } | 55 | } |
| 56 | |||
| 57 | #elif defined(CONFIG_CPU_V7) | ||
| 58 | |||
| 59 | static void icedcc_putc(int ch) | ||
| 60 | { | ||
| 61 | asm( | ||
| 62 | "wait: mrc p14, 0, pc, c0, c1, 0 \n\ | ||
| 63 | bcs wait \n\ | ||
| 64 | mcr p14, 0, %0, c0, c5, 0 " | ||
| 65 | : : "r" (ch)); | ||
| 66 | } | ||
| 67 | |||
| 56 | #elif defined(CONFIG_CPU_XSCALE) | 68 | #elif defined(CONFIG_CPU_XSCALE) |
| 57 | 69 | ||
| 58 | static void icedcc_putc(int ch) | 70 | static void icedcc_putc(int ch) |
| @@ -88,7 +100,6 @@ static void icedcc_putc(int ch) | |||
| 88 | #endif | 100 | #endif |
| 89 | 101 | ||
| 90 | #define putc(ch) icedcc_putc(ch) | 102 | #define putc(ch) icedcc_putc(ch) |
| 91 | #define flush() do { } while (0) | ||
| 92 | #endif | 103 | #endif |
| 93 | 104 | ||
| 94 | static void putstr(const char *ptr) | 105 | static void putstr(const char *ptr) |
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index 730aefcfbee3..c77d2fa1f6e5 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h | |||
| @@ -154,16 +154,16 @@ | |||
| 154 | * Please note that the implementation of these, and the required | 154 | * Please note that the implementation of these, and the required |
| 155 | * effects are cache-type (VIVT/VIPT/PIPT) specific. | 155 | * effects are cache-type (VIVT/VIPT/PIPT) specific. |
| 156 | * | 156 | * |
| 157 | * flush_cache_kern_all() | 157 | * flush_kern_all() |
| 158 | * | 158 | * |
| 159 | * Unconditionally clean and invalidate the entire cache. | 159 | * Unconditionally clean and invalidate the entire cache. |
| 160 | * | 160 | * |
| 161 | * flush_cache_user_mm(mm) | 161 | * flush_user_all() |
| 162 | * | 162 | * |
| 163 | * Clean and invalidate all user space cache entries | 163 | * Clean and invalidate all user space cache entries |
| 164 | * before a change of page tables. | 164 | * before a change of page tables. |
| 165 | * | 165 | * |
| 166 | * flush_cache_user_range(start, end, flags) | 166 | * flush_user_range(start, end, flags) |
| 167 | * | 167 | * |
| 168 | * Clean and invalidate a range of cache entries in the | 168 | * Clean and invalidate a range of cache entries in the |
| 169 | * specified address space before a change of page tables. | 169 | * specified address space before a change of page tables. |
| @@ -179,6 +179,20 @@ | |||
| 179 | * - start - virtual start address | 179 | * - start - virtual start address |
| 180 | * - end - virtual end address | 180 | * - end - virtual end address |
| 181 | * | 181 | * |
| 182 | * coherent_user_range(start, end) | ||
| 183 | * | ||
| 184 | * Ensure coherency between the Icache and the Dcache in the | ||
| 185 | * region described by start, end. If you have non-snooping | ||
| 186 | * Harvard caches, you need to implement this function. | ||
| 187 | * - start - virtual start address | ||
| 188 | * - end - virtual end address | ||
| 189 | * | ||
| 190 | * flush_kern_dcache_area(kaddr, size) | ||
| 191 | * | ||
| 192 | * Ensure that the data held in page is written back. | ||
| 193 | * - kaddr - page address | ||
| 194 | * - size - region size | ||
| 195 | * | ||
| 182 | * DMA Cache Coherency | 196 | * DMA Cache Coherency |
| 183 | * =================== | 197 | * =================== |
| 184 | * | 198 | * |
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index b121b6053cce..5c91addcaebc 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S | |||
| @@ -49,6 +49,26 @@ | |||
| 49 | 1002: | 49 | 1002: |
| 50 | .endm | 50 | .endm |
| 51 | 51 | ||
| 52 | #elif defined(CONFIG_CPU_V7) | ||
| 53 | |||
| 54 | .macro addruart, rx | ||
| 55 | .endm | ||
| 56 | |||
| 57 | .macro senduart, rd, rx | ||
| 58 | mcr p14, 0, \rd, c0, c5, 0 | ||
| 59 | .endm | ||
| 60 | |||
| 61 | .macro busyuart, rd, rx | ||
| 62 | busy: mrc p14, 0, pc, c0, c1, 0 | ||
| 63 | bcs busy | ||
| 64 | .endm | ||
| 65 | |||
| 66 | .macro waituart, rd, rx | ||
| 67 | wait: mrc p14, 0, pc, c0, c1, 0 | ||
| 68 | bcs wait | ||
| 69 | |||
| 70 | .endm | ||
| 71 | |||
| 52 | #elif defined(CONFIG_CPU_XSCALE) | 72 | #elif defined(CONFIG_CPU_XSCALE) |
| 53 | 73 | ||
| 54 | .macro addruart, rx | 74 | .macro addruart, rx |
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c index 950391f194c4..d4a0da1e48f4 100644 --- a/arch/arm/kernel/elf.c +++ b/arch/arm/kernel/elf.c | |||
| @@ -78,15 +78,6 @@ int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack) | |||
| 78 | return 1; | 78 | return 1; |
| 79 | if (cpu_architecture() < CPU_ARCH_ARMv6) | 79 | if (cpu_architecture() < CPU_ARCH_ARMv6) |
| 80 | return 1; | 80 | return 1; |
| 81 | #if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT) | ||
| 82 | /* | ||
| 83 | * If we have support for OABI programs, we can never allow NX | ||
| 84 | * support - our signal syscall restart mechanism relies upon | ||
| 85 | * being able to execute code placed on the user stack. | ||
| 86 | */ | ||
| 87 | return 1; | ||
| 88 | #else | ||
| 89 | return 0; | 81 | return 0; |
| 90 | #endif | ||
| 91 | } | 82 | } |
| 92 | EXPORT_SYMBOL(arm_elf_read_implies_exec); | 83 | EXPORT_SYMBOL(arm_elf_read_implies_exec); |
diff --git a/arch/arm/mach-gemini/include/mach/uncompress.h b/arch/arm/mach-gemini/include/mach/uncompress.h index 59c5df7e716c..5483f61a8061 100644 --- a/arch/arm/mach-gemini/include/mach/uncompress.h +++ b/arch/arm/mach-gemini/include/mach/uncompress.h | |||
| @@ -30,7 +30,9 @@ static inline void putc(char c) | |||
| 30 | UART[UART_TX] = c; | 30 | UART[UART_TX] = c; |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | #define flush() do { } while (0) | 33 | static inline void flush(void) |
| 34 | { | ||
| 35 | } | ||
| 34 | 36 | ||
| 35 | /* | 37 | /* |
| 36 | * nothing to do | 38 | * nothing to do |
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c index 1708da82da96..761ffede6a23 100644 --- a/arch/arm/mm/mmu.c +++ b/arch/arm/mm/mmu.c | |||
| @@ -1067,4 +1067,6 @@ void setup_mm_for_reboot(char mode) | |||
| 1067 | pmd[1] = __pmd(pmdval + (1 << (PGDIR_SHIFT - 1))); | 1067 | pmd[1] = __pmd(pmdval + (1 << (PGDIR_SHIFT - 1))); |
| 1068 | flush_pmd_entry(pmd); | 1068 | flush_pmd_entry(pmd); |
| 1069 | } | 1069 | } |
| 1070 | |||
| 1071 | local_flush_tlb_all(); | ||
| 1070 | } | 1072 | } |
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S index 395cc90c6613..7a5337ed7d68 100644 --- a/arch/arm/mm/proc-v6.S +++ b/arch/arm/mm/proc-v6.S | |||
| @@ -59,8 +59,6 @@ ENTRY(cpu_v6_proc_fin) | |||
| 59 | * to what would be the reset vector. | 59 | * to what would be the reset vector. |
| 60 | * | 60 | * |
| 61 | * - loc - location to jump to for soft reset | 61 | * - loc - location to jump to for soft reset |
| 62 | * | ||
| 63 | * It is assumed that: | ||
| 64 | */ | 62 | */ |
| 65 | .align 5 | 63 | .align 5 |
| 66 | ENTRY(cpu_v6_reset) | 64 | ENTRY(cpu_v6_reset) |
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S index 3a285218fd15..7aaf88a3b7aa 100644 --- a/arch/arm/mm/proc-v7.S +++ b/arch/arm/mm/proc-v7.S | |||
| @@ -45,7 +45,14 @@ ENTRY(cpu_v7_proc_init) | |||
| 45 | ENDPROC(cpu_v7_proc_init) | 45 | ENDPROC(cpu_v7_proc_init) |
| 46 | 46 | ||
| 47 | ENTRY(cpu_v7_proc_fin) | 47 | ENTRY(cpu_v7_proc_fin) |
| 48 | mov pc, lr | 48 | stmfd sp!, {lr} |
| 49 | cpsid if @ disable interrupts | ||
| 50 | bl v7_flush_kern_cache_all | ||
| 51 | mrc p15, 0, r0, c1, c0, 0 @ ctrl register | ||
| 52 | bic r0, r0, #0x1000 @ ...i............ | ||
| 53 | bic r0, r0, #0x0006 @ .............ca. | ||
| 54 | mcr p15, 0, r0, c1, c0, 0 @ disable caches | ||
| 55 | ldmfd sp!, {pc} | ||
| 49 | ENDPROC(cpu_v7_proc_fin) | 56 | ENDPROC(cpu_v7_proc_fin) |
| 50 | 57 | ||
| 51 | /* | 58 | /* |
| @@ -56,8 +63,6 @@ ENDPROC(cpu_v7_proc_fin) | |||
| 56 | * to what would be the reset vector. | 63 | * to what would be the reset vector. |
| 57 | * | 64 | * |
| 58 | * - loc - location to jump to for soft reset | 65 | * - loc - location to jump to for soft reset |
| 59 | * | ||
| 60 | * It is assumed that: | ||
| 61 | */ | 66 | */ |
| 62 | .align 5 | 67 | .align 5 |
| 63 | ENTRY(cpu_v7_reset) | 68 | ENTRY(cpu_v7_reset) |
diff --git a/arch/arm/plat-mxc/include/mach/uncompress.h b/arch/arm/plat-mxc/include/mach/uncompress.h index 4d5d395ad63b..d49384cb1e97 100644 --- a/arch/arm/plat-mxc/include/mach/uncompress.h +++ b/arch/arm/plat-mxc/include/mach/uncompress.h | |||
| @@ -60,7 +60,9 @@ static void putc(int ch) | |||
| 60 | UART(TXR) = ch; | 60 | UART(TXR) = ch; |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | #define flush() do { } while (0) | 63 | static inline void flush(void) |
| 64 | { | ||
| 65 | } | ||
| 64 | 66 | ||
| 65 | #define MX1_UART1_BASE_ADDR 0x00206000 | 67 | #define MX1_UART1_BASE_ADDR 0x00206000 |
| 66 | #define MX25_UART1_BASE_ADDR 0x43f90000 | 68 | #define MX25_UART1_BASE_ADDR 0x43f90000 |
