aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-26 16:19:17 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-26 16:19:17 -0500
commit038c068f63a950c3a6ccfa814831ccac0ad48fb1 (patch)
tree29389a8d23dd5e29012ac289920df27ade357857
parent5992fd1995a5e69710011fc7d7945c62bf5b551b (diff)
parente41698894d3fe64f17fe411e3e5ef3c2537bf2e6 (diff)
Merge master.kernel.org:/home/rmk/linux-2.6-arm
* master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] CLPS7500 doesn't have IO ports [ARM] Fix more apm-emulation.h [ARM] 4234/1: Introduce get_irqnr_preamble and arch_ret_to_user for ns9xxx. [ARM] 4233/1: nand/s3c2410.c: warning fix [ARM] 4226/1: initial .data and .bss mappings of XIP kernel should be TEXT_OFFSET [ARM] 4224/2: allow XIP kernel to boot again [ARM] 4232/1: AT91: Generic GPIO bug [ARM] 4231/1: AT91: Merge and typo fixes. [ARM] 4229/1: S3C2410: Add MACH_QT2410 to s3c2410_defconfig [ARM] 4228/2: S3C24XX: update s3c2410_defconfig for 2.6.21-rc1
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/configs/s3c2410_defconfig52
-rw-r--r--arch/arm/kernel/head.S56
-rw-r--r--arch/arm/kernel/vmlinux.lds.S1
-rw-r--r--arch/arm/mach-at91/at91sam9263.c2
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c2
-rw-r--r--arch/arm/mach-at91/gpio.c2
-rw-r--r--arch/arm/mach-pxa/sharpsl_pm.c2
-rw-r--r--drivers/mtd/nand/s3c2410.c2
-rw-r--r--include/asm-arm/arch-at91/hardware.h2
-rw-r--r--include/asm-arm/arch-at91rm9200/entry-macro.S32
-rw-r--r--include/asm-arm/arch-ns9xxx/entry-macro.S6
12 files changed, 84 insertions, 76 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4409561ea32c..d75879d9ddeb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -171,6 +171,7 @@ config ARCH_CLPS7500
171 bool "Cirrus CL-PS7500FE" 171 bool "Cirrus CL-PS7500FE"
172 select TIMER_ACORN 172 select TIMER_ACORN
173 select ISA 173 select ISA
174 select NO_IOPORT
174 help 175 help
175 Support for the Cirrus Logic PS7500FE system-on-a-chip. 176 Support for the Cirrus Logic PS7500FE system-on-a-chip.
176 177
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index df19e3632038..d4ca0f06be5f 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_defconfig
@@ -1,11 +1,13 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.21-rc1
4# Thu Feb 15 11:26:24 2007 4# Wed Feb 21 16:48:01 2007
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
7# CONFIG_GENERIC_TIME is not set 8# CONFIG_GENERIC_TIME is not set
8CONFIG_MMU=y 9CONFIG_MMU=y
10CONFIG_NO_IOPORT=y
9CONFIG_GENERIC_HARDIRQS=y 11CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y 12CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y 13CONFIG_HARDIRQS_SW_RESEND=y
@@ -15,6 +17,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set 17# CONFIG_ARCH_HAS_ILOG2_U64 is not set
16CONFIG_GENERIC_HWEIGHT=y 18CONFIG_GENERIC_HWEIGHT=y
17CONFIG_GENERIC_CALIBRATE_DELAY=y 19CONFIG_GENERIC_CALIBRATE_DELAY=y
20CONFIG_ZONE_DMA=y
18CONFIG_VECTORS_BASE=0xffff0000 21CONFIG_VECTORS_BASE=0xffff0000
19CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 22CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
20 23
@@ -33,6 +36,7 @@ CONFIG_LOCALVERSION_AUTO=y
33CONFIG_SWAP=y 36CONFIG_SWAP=y
34CONFIG_SYSVIPC=y 37CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set 38# CONFIG_IPC_NS is not set
39CONFIG_SYSVIPC_SYSCTL=y
36# CONFIG_POSIX_MQUEUE is not set 40# CONFIG_POSIX_MQUEUE is not set
37# CONFIG_BSD_PROCESS_ACCT is not set 41# CONFIG_BSD_PROCESS_ACCT is not set
38# CONFIG_TASKSTATS is not set 42# CONFIG_TASKSTATS is not set
@@ -120,6 +124,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
120# CONFIG_ARCH_IXP2000 is not set 124# CONFIG_ARCH_IXP2000 is not set
121# CONFIG_ARCH_IXP23XX is not set 125# CONFIG_ARCH_IXP23XX is not set
122# CONFIG_ARCH_L7200 is not set 126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_NS9XXX is not set
123# CONFIG_ARCH_PNX4008 is not set 128# CONFIG_ARCH_PNX4008 is not set
124# CONFIG_ARCH_PXA is not set 129# CONFIG_ARCH_PXA is not set
125# CONFIG_ARCH_RPC is not set 130# CONFIG_ARCH_RPC is not set
@@ -161,6 +166,7 @@ CONFIG_MACH_OTOM=y
161CONFIG_MACH_AML_M5900=y 166CONFIG_MACH_AML_M5900=y
162CONFIG_BAST_PC104_IRQ=y 167CONFIG_BAST_PC104_IRQ=y
163CONFIG_MACH_VR1000=y 168CONFIG_MACH_VR1000=y
169CONFIG_MACH_QT2410=y
164CONFIG_CPU_S3C2412=y 170CONFIG_CPU_S3C2412=y
165CONFIG_S3C2412_DMA=y 171CONFIG_S3C2412_DMA=y
166CONFIG_S3C2412_PM=y 172CONFIG_S3C2412_PM=y
@@ -190,6 +196,7 @@ CONFIG_CPU_S3C2442=y
190# 196#
191CONFIG_SMDK2440_CPU2442=y 197CONFIG_SMDK2440_CPU2442=y
192CONFIG_CPU_S3C2443=y 198CONFIG_CPU_S3C2443=y
199CONFIG_S3C2443_DMA=y
193 200
194# 201#
195# S3C2443 Machines 202# S3C2443 Machines
@@ -250,6 +257,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
250# CONFIG_SPARSEMEM_STATIC is not set 257# CONFIG_SPARSEMEM_STATIC is not set
251CONFIG_SPLIT_PTLOCK_CPUS=4096 258CONFIG_SPLIT_PTLOCK_CPUS=4096
252# CONFIG_RESOURCES_64BIT is not set 259# CONFIG_RESOURCES_64BIT is not set
260CONFIG_ZONE_DMA_FLAG=1
253CONFIG_ALIGNMENT_TRAP=y 261CONFIG_ALIGNMENT_TRAP=y
254 262
255# 263#
@@ -259,6 +267,7 @@ CONFIG_ZBOOT_ROM_TEXT=0x0
259CONFIG_ZBOOT_ROM_BSS=0x0 267CONFIG_ZBOOT_ROM_BSS=0x0
260CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0" 268CONFIG_CMDLINE="root=/dev/hda1 ro init=/bin/bash console=ttySAC0"
261# CONFIG_XIP_KERNEL is not set 269# CONFIG_XIP_KERNEL is not set
270# CONFIG_KEXEC is not set
262 271
263# 272#
264# Floating point emulation 273# Floating point emulation
@@ -287,7 +296,7 @@ CONFIG_PM=y
287# CONFIG_PM_LEGACY is not set 296# CONFIG_PM_LEGACY is not set
288# CONFIG_PM_DEBUG is not set 297# CONFIG_PM_DEBUG is not set
289# CONFIG_PM_SYSFS_DEPRECATED is not set 298# CONFIG_PM_SYSFS_DEPRECATED is not set
290CONFIG_APM=y 299# CONFIG_APM_EMULATION is not set
291 300
292# 301#
293# Networking 302# Networking
@@ -303,6 +312,7 @@ CONFIG_UNIX=y
303CONFIG_XFRM=y 312CONFIG_XFRM=y
304# CONFIG_XFRM_USER is not set 313# CONFIG_XFRM_USER is not set
305# CONFIG_XFRM_SUB_POLICY is not set 314# CONFIG_XFRM_SUB_POLICY is not set
315# CONFIG_XFRM_MIGRATE is not set
306# CONFIG_NET_KEY is not set 316# CONFIG_NET_KEY is not set
307CONFIG_INET=y 317CONFIG_INET=y
308# CONFIG_IP_MULTICAST is not set 318# CONFIG_IP_MULTICAST is not set
@@ -387,6 +397,7 @@ CONFIG_STANDALONE=y
387CONFIG_PREVENT_FIRMWARE_BUILD=y 397CONFIG_PREVENT_FIRMWARE_BUILD=y
388# CONFIG_FW_LOADER is not set 398# CONFIG_FW_LOADER is not set
389# CONFIG_DEBUG_DRIVER is not set 399# CONFIG_DEBUG_DRIVER is not set
400# CONFIG_DEBUG_DEVRES is not set
390# CONFIG_SYS_HYPERVISOR is not set 401# CONFIG_SYS_HYPERVISOR is not set
391 402
392# 403#
@@ -506,6 +517,7 @@ CONFIG_PARPORT_1284=y
506# Plug and Play support 517# Plug and Play support
507# 518#
508# CONFIG_PNP is not set 519# CONFIG_PNP is not set
520# CONFIG_PNPACPI is not set
509 521
510# 522#
511# Block devices 523# Block devices
@@ -680,6 +692,7 @@ CONFIG_KEYBOARD_ATKBD=y
680# CONFIG_KEYBOARD_XTKBD is not set 692# CONFIG_KEYBOARD_XTKBD is not set
681# CONFIG_KEYBOARD_NEWTON is not set 693# CONFIG_KEYBOARD_NEWTON is not set
682# CONFIG_KEYBOARD_STOWAWAY is not set 694# CONFIG_KEYBOARD_STOWAWAY is not set
695# CONFIG_KEYBOARD_GPIO is not set
683CONFIG_INPUT_MOUSE=y 696CONFIG_INPUT_MOUSE=y
684CONFIG_MOUSE_PS2=y 697CONFIG_MOUSE_PS2=y
685# CONFIG_MOUSE_SERIAL is not set 698# CONFIG_MOUSE_SERIAL is not set
@@ -848,12 +861,13 @@ CONFIG_SPI_MASTER=y
848# 861#
849CONFIG_SPI_BITBANG=m 862CONFIG_SPI_BITBANG=m
850# CONFIG_SPI_BUTTERFLY is not set 863# CONFIG_SPI_BUTTERFLY is not set
851CONFIG_SPI_S3C24XX_GPIO=m
852CONFIG_SPI_S3C24XX=m 864CONFIG_SPI_S3C24XX=m
865CONFIG_SPI_S3C24XX_GPIO=m
853 866
854# 867#
855# SPI Protocol Masters 868# SPI Protocol Masters
856# 869#
870# CONFIG_SPI_AT25 is not set
857 871
858# 872#
859# Dallas's 1-wire bus 873# Dallas's 1-wire bus
@@ -869,6 +883,7 @@ CONFIG_HWMON_VID=m
869# CONFIG_SENSORS_ADM1021 is not set 883# CONFIG_SENSORS_ADM1021 is not set
870# CONFIG_SENSORS_ADM1025 is not set 884# CONFIG_SENSORS_ADM1025 is not set
871# CONFIG_SENSORS_ADM1026 is not set 885# CONFIG_SENSORS_ADM1026 is not set
886# CONFIG_SENSORS_ADM1029 is not set
872# CONFIG_SENSORS_ADM1031 is not set 887# CONFIG_SENSORS_ADM1031 is not set
873# CONFIG_SENSORS_ADM9240 is not set 888# CONFIG_SENSORS_ADM9240 is not set
874# CONFIG_SENSORS_ASB100 is not set 889# CONFIG_SENSORS_ASB100 is not set
@@ -910,7 +925,11 @@ CONFIG_SENSORS_LM85=m
910# 925#
911# Misc devices 926# Misc devices
912# 927#
913# CONFIG_TIFM_CORE is not set 928
929#
930# Multifunction device drivers
931#
932# CONFIG_MFD_SM501 is not set
914 933
915# 934#
916# LED devices 935# LED devices
@@ -945,16 +964,22 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
945# 964#
946# Graphics support 965# Graphics support
947# 966#
948CONFIG_FIRMWARE_EDID=y 967# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
949CONFIG_FB=y 968CONFIG_FB=y
969CONFIG_FIRMWARE_EDID=y
950# CONFIG_FB_DDC is not set 970# CONFIG_FB_DDC is not set
951CONFIG_FB_CFB_FILLRECT=y 971CONFIG_FB_CFB_FILLRECT=y
952CONFIG_FB_CFB_COPYAREA=y 972CONFIG_FB_CFB_COPYAREA=y
953CONFIG_FB_CFB_IMAGEBLIT=y 973CONFIG_FB_CFB_IMAGEBLIT=y
974# CONFIG_FB_SVGALIB is not set
954# CONFIG_FB_MACMODES is not set 975# CONFIG_FB_MACMODES is not set
955# CONFIG_FB_BACKLIGHT is not set 976# CONFIG_FB_BACKLIGHT is not set
956CONFIG_FB_MODE_HELPERS=y 977CONFIG_FB_MODE_HELPERS=y
957# CONFIG_FB_TILEBLITTING is not set 978# CONFIG_FB_TILEBLITTING is not set
979
980#
981# Frambuffer hardware drivers
982#
958# CONFIG_FB_S1D13XXX is not set 983# CONFIG_FB_S1D13XXX is not set
959CONFIG_FB_S3C2410=y 984CONFIG_FB_S3C2410=y
960# CONFIG_FB_S3C2410_DEBUG is not set 985# CONFIG_FB_S3C2410_DEBUG is not set
@@ -976,7 +1001,6 @@ CONFIG_FONT_8x16=y
976# Logo configuration 1001# Logo configuration
977# 1002#
978# CONFIG_LOGO is not set 1003# CONFIG_LOGO is not set
979# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
980 1004
981# 1005#
982# Sound 1006# Sound
@@ -987,6 +1011,7 @@ CONFIG_FONT_8x16=y
987# HID Devices 1011# HID Devices
988# 1012#
989CONFIG_HID=y 1013CONFIG_HID=y
1014# CONFIG_HID_DEBUG is not set
990 1015
991# 1016#
992# USB support 1017# USB support
@@ -1001,7 +1026,6 @@ CONFIG_USB=y
1001# Miscellaneous USB options 1026# Miscellaneous USB options
1002# 1027#
1003CONFIG_USB_DEVICEFS=y 1028CONFIG_USB_DEVICEFS=y
1004# CONFIG_USB_BANDWIDTH is not set
1005# CONFIG_USB_DYNAMIC_MINORS is not set 1029# CONFIG_USB_DYNAMIC_MINORS is not set
1006# CONFIG_USB_SUSPEND is not set 1030# CONFIG_USB_SUSPEND is not set
1007# CONFIG_USB_OTG is not set 1031# CONFIG_USB_OTG is not set
@@ -1011,7 +1035,8 @@ CONFIG_USB_DEVICEFS=y
1011# 1035#
1012# CONFIG_USB_ISP116X_HCD is not set 1036# CONFIG_USB_ISP116X_HCD is not set
1013CONFIG_USB_OHCI_HCD=y 1037CONFIG_USB_OHCI_HCD=y
1014# CONFIG_USB_OHCI_BIG_ENDIAN is not set 1038# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1039# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1015CONFIG_USB_OHCI_LITTLE_ENDIAN=y 1040CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1016# CONFIG_USB_SL811_HCD is not set 1041# CONFIG_USB_SL811_HCD is not set
1017 1042
@@ -1052,6 +1077,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1052# CONFIG_USB_ATI_REMOTE2 is not set 1077# CONFIG_USB_ATI_REMOTE2 is not set
1053# CONFIG_USB_KEYSPAN_REMOTE is not set 1078# CONFIG_USB_KEYSPAN_REMOTE is not set
1054# CONFIG_USB_APPLETOUCH is not set 1079# CONFIG_USB_APPLETOUCH is not set
1080# CONFIG_USB_GTCO is not set
1055 1081
1056# 1082#
1057# USB Imaging devices 1083# USB Imaging devices
@@ -1089,6 +1115,7 @@ CONFIG_USB_MON=y
1089# CONFIG_USB_RIO500 is not set 1115# CONFIG_USB_RIO500 is not set
1090# CONFIG_USB_LEGOTOWER is not set 1116# CONFIG_USB_LEGOTOWER is not set
1091# CONFIG_USB_LCD is not set 1117# CONFIG_USB_LCD is not set
1118# CONFIG_USB_BERRY_CHARGE is not set
1092# CONFIG_USB_LED is not set 1119# CONFIG_USB_LED is not set
1093# CONFIG_USB_CYPRESS_CY7C63 is not set 1120# CONFIG_USB_CYPRESS_CY7C63 is not set
1094# CONFIG_USB_CYTHERM is not set 1121# CONFIG_USB_CYTHERM is not set
@@ -1134,6 +1161,7 @@ CONFIG_RTC_INTF_DEV=y
1134# 1161#
1135# RTC drivers 1162# RTC drivers
1136# 1163#
1164# CONFIG_RTC_DRV_CMOS is not set
1137# CONFIG_RTC_DRV_X1205 is not set 1165# CONFIG_RTC_DRV_X1205 is not set
1138# CONFIG_RTC_DRV_DS1307 is not set 1166# CONFIG_RTC_DRV_DS1307 is not set
1139# CONFIG_RTC_DRV_DS1553 is not set 1167# CONFIG_RTC_DRV_DS1553 is not set
@@ -1339,15 +1367,16 @@ CONFIG_MAGIC_SYSRQ=y
1339# CONFIG_DEBUG_FS is not set 1367# CONFIG_DEBUG_FS is not set
1340# CONFIG_HEADERS_CHECK is not set 1368# CONFIG_HEADERS_CHECK is not set
1341CONFIG_DEBUG_KERNEL=y 1369CONFIG_DEBUG_KERNEL=y
1370# CONFIG_DEBUG_SHIRQ is not set
1342CONFIG_LOG_BUF_SHIFT=16 1371CONFIG_LOG_BUF_SHIFT=16
1343CONFIG_DETECT_SOFTLOCKUP=y 1372CONFIG_DETECT_SOFTLOCKUP=y
1344# CONFIG_SCHEDSTATS is not set 1373# CONFIG_SCHEDSTATS is not set
1374# CONFIG_TIMER_STATS is not set
1345# CONFIG_DEBUG_SLAB is not set 1375# CONFIG_DEBUG_SLAB is not set
1346# CONFIG_DEBUG_RT_MUTEXES is not set 1376# CONFIG_DEBUG_RT_MUTEXES is not set
1347# CONFIG_RT_MUTEX_TESTER is not set 1377# CONFIG_RT_MUTEX_TESTER is not set
1348# CONFIG_DEBUG_SPINLOCK is not set 1378# CONFIG_DEBUG_SPINLOCK is not set
1349CONFIG_DEBUG_MUTEXES=y 1379CONFIG_DEBUG_MUTEXES=y
1350# CONFIG_DEBUG_RWSEMS is not set
1351# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1380# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1352# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1381# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1353# CONFIG_DEBUG_KOBJECT is not set 1382# CONFIG_DEBUG_KOBJECT is not set
@@ -1358,6 +1387,7 @@ CONFIG_DEBUG_INFO=y
1358CONFIG_FRAME_POINTER=y 1387CONFIG_FRAME_POINTER=y
1359CONFIG_FORCED_INLINING=y 1388CONFIG_FORCED_INLINING=y
1360# CONFIG_RCU_TORTURE_TEST is not set 1389# CONFIG_RCU_TORTURE_TEST is not set
1390# CONFIG_FAULT_INJECTION is not set
1361CONFIG_DEBUG_USER=y 1391CONFIG_DEBUG_USER=y
1362# CONFIG_DEBUG_ERRORS is not set 1392# CONFIG_DEBUG_ERRORS is not set
1363CONFIG_DEBUG_LL=y 1393CONFIG_DEBUG_LL=y
@@ -1387,4 +1417,4 @@ CONFIG_CRC32=y
1387CONFIG_ZLIB_INFLATE=y 1417CONFIG_ZLIB_INFLATE=y
1388CONFIG_ZLIB_DEFLATE=y 1418CONFIG_ZLIB_DEFLATE=y
1389CONFIG_PLIST=y 1419CONFIG_PLIST=y
1390CONFIG_IOMAP_COPY=y 1420CONFIG_HAS_IOMEM=y
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index cf495a3084b3..66db0a9bf0bc 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -48,9 +48,11 @@
48 .endm 48 .endm
49 49
50#ifdef CONFIG_XIP_KERNEL 50#ifdef CONFIG_XIP_KERNEL
51#define TEXTADDR XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR) 51#define KERNEL_START XIP_VIRT_ADDR(CONFIG_XIP_PHYS_ADDR)
52#define KERNEL_END _edata_loc
52#else 53#else
53#define TEXTADDR KERNEL_RAM_VADDR 54#define KERNEL_START KERNEL_RAM_VADDR
55#define KERNEL_END _end
54#endif 56#endif
55 57
56/* 58/*
@@ -240,16 +242,32 @@ __create_page_tables:
240 * Now setup the pagetables for our kernel direct 242 * Now setup the pagetables for our kernel direct
241 * mapped region. 243 * mapped region.
242 */ 244 */
243 add r0, r4, #(TEXTADDR & 0xff000000) >> 18 @ start of kernel 245 add r0, r4, #(KERNEL_START & 0xff000000) >> 18
244 str r3, [r0, #(TEXTADDR & 0x00f00000) >> 18]! 246 str r3, [r0, #(KERNEL_START & 0x00f00000) >> 18]!
245 247 ldr r6, =(KERNEL_END - 1)
246 ldr r6, =(_end - PAGE_OFFSET - 1) @ r6 = number of sections 248 add r0, r0, #4
247 mov r6, r6, lsr #20 @ needed for kernel minus 1 249 add r6, r4, r6, lsr #18
2501: cmp r0, r6
251 add r3, r3, #1 << 20
252 strls r3, [r0], #4
253 bls 1b
248 254
2491: add r3, r3, #1 << 20 255#ifdef CONFIG_XIP_KERNEL
250 str r3, [r0, #4]! 256 /*
251 subs r6, r6, #1 257 * Map some ram to cover our .data and .bss areas.
252 bgt 1b 258 */
259 orr r3, r7, #(KERNEL_RAM_PADDR & 0xff000000)
260 orr r3, r3, #(KERNEL_RAM_PADDR & 0x00f00000)
261 add r0, r4, #(KERNEL_RAM_VADDR & 0xff000000) >> 18
262 str r3, [r0, #(KERNEL_RAM_VADDR & 0x00f00000) >> 18]!
263 ldr r6, =(_end - 1)
264 add r0, r0, #4
265 add r6, r4, r6, lsr #18
2661: cmp r0, r6
267 add r3, r3, #1 << 20
268 strls r3, [r0], #4
269 bls 1b
270#endif
253 271
254 /* 272 /*
255 * Then map first 1MB of ram in case it contains our boot params. 273 * Then map first 1MB of ram in case it contains our boot params.
@@ -259,22 +277,6 @@ __create_page_tables:
259 orr r6, r6, #(PHYS_OFFSET & 0x00e00000) 277 orr r6, r6, #(PHYS_OFFSET & 0x00e00000)
260 str r6, [r0] 278 str r6, [r0]
261 279
262#ifdef CONFIG_XIP_KERNEL
263 /*
264 * Map some ram to cover our .data and .bss areas.
265 * Mapping 3MB should be plenty.
266 */
267 sub r3, r4, #PHYS_OFFSET
268 mov r3, r3, lsr #20
269 add r0, r0, r3, lsl #2
270 add r6, r6, r3, lsl #20
271 str r6, [r0], #4
272 add r6, r6, #(1 << 20)
273 str r6, [r0], #4
274 add r6, r6, #(1 << 20)
275 str r6, [r0]
276#endif
277
278#ifdef CONFIG_DEBUG_LL 280#ifdef CONFIG_DEBUG_LL
279 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags 281 ldr r7, [r10, #PROCINFO_IO_MMUFLAGS] @ io_mmuflags
280 /* 282 /*
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
index b929a60f7547..ddbdad48f5b2 100644
--- a/arch/arm/kernel/vmlinux.lds.S
+++ b/arch/arm/kernel/vmlinux.lds.S
@@ -156,6 +156,7 @@ SECTIONS
156 156
157 _edata = .; 157 _edata = .;
158 } 158 }
159 _edata_loc = __data_loc + SIZEOF(.data);
159 160
160 .bss : { 161 .bss : {
161 __bss_start = .; /* BSS */ 162 __bss_start = .; /* BSS */
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index 6aa342e8f1b1..0e89a7fca3fa 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -124,7 +124,7 @@ static struct clk isi_clk = {
124}; 124};
125static struct clk lcdc_clk = { 125static struct clk lcdc_clk = {
126 .name = "lcdc_clk", 126 .name = "lcdc_clk",
127 .pmc_mask = 1 << AT91SAM9263_ID_ISI, 127 .pmc_mask = 1 << AT91SAM9263_ID_LCDC,
128 .type = CLK_TYPE_PERIPHERAL, 128 .type = CLK_TYPE_PERIPHERAL,
129}; 129};
130static struct clk ohci_clk = { 130static struct clk ohci_clk = {
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index d9af7ca58bce..b77121f27f34 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -553,7 +553,7 @@ void __init at91_add_device_spi(struct spi_board_info *devices, int nr_devices)
553 if (enable_spi0) { 553 if (enable_spi0) {
554 at91_set_B_periph(AT91_PIN_PA0, 0); /* SPI0_MISO */ 554 at91_set_B_periph(AT91_PIN_PA0, 0); /* SPI0_MISO */
555 at91_set_B_periph(AT91_PIN_PA1, 0); /* SPI0_MOSI */ 555 at91_set_B_periph(AT91_PIN_PA1, 0); /* SPI0_MOSI */
556 at91_set_B_periph(AT91_PIN_PA2, 0); /* SPI1_SPCK */ 556 at91_set_B_periph(AT91_PIN_PA2, 0); /* SPI0_SPCK */
557 557
558 at91_clock_associate("spi0_clk", &at91sam9263_spi0_device.dev, "spi_clk"); 558 at91_clock_associate("spi0_clk", &at91sam9263_spi0_device.dev, "spi_clk");
559 platform_device_register(&at91sam9263_spi0_device); 559 platform_device_register(&at91sam9263_spi0_device);
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index 7b87f3f101b7..44211a0af19a 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -210,7 +210,7 @@ int gpio_direction_input(unsigned pin)
210 210
211 if (!pio || !(__raw_readl(pio + PIO_PSR) & mask)) 211 if (!pio || !(__raw_readl(pio + PIO_PSR) & mask))
212 return -EINVAL; 212 return -EINVAL;
213 __raw_writel(mask, pio + PIO_OER); 213 __raw_writel(mask, pio + PIO_ODR);
214 return 0; 214 return 0;
215} 215}
216EXPORT_SYMBOL(gpio_direction_input); 216EXPORT_SYMBOL(gpio_direction_input);
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index b1d8cfca245a..f9d1b61e1185 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -20,10 +20,10 @@
20#include <linux/interrupt.h> 20#include <linux/interrupt.h>
21#include <linux/irq.h> 21#include <linux/irq.h>
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/apm-emulation.h>
23 24
24#include <asm/hardware.h> 25#include <asm/hardware.h>
25#include <asm/mach-types.h> 26#include <asm/mach-types.h>
26#include <asm/apm-emulation.h>
27#include <asm/arch/pm.h> 27#include <asm/arch/pm.h>
28#include <asm/arch/pxa-regs.h> 28#include <asm/arch/pxa-regs.h>
29#include <asm/arch/sharpsl.h> 29#include <asm/arch/sharpsl.h>
diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
index 0ddfd6de75c5..5fac4c421a20 100644
--- a/drivers/mtd/nand/s3c2410.c
+++ b/drivers/mtd/nand/s3c2410.c
@@ -473,7 +473,7 @@ static int s3c2440_nand_calculate_ecc(struct mtd_info *mtd, const u_char *dat, u
473 ecc_code[1] = ecc >> 8; 473 ecc_code[1] = ecc >> 8;
474 ecc_code[2] = ecc >> 16; 474 ecc_code[2] = ecc >> 16;
475 475
476 pr_debug("%s: returning ecc %06x\n", __func__, ecc); 476 pr_debug("%s: returning ecc %06lx\n", __func__, ecc);
477 477
478 return 0; 478 return 0;
479} 479}
diff --git a/include/asm-arm/arch-at91/hardware.h b/include/asm-arm/arch-at91/hardware.h
index eaaf1c12b753..28133e0154dd 100644
--- a/include/asm-arm/arch-at91/hardware.h
+++ b/include/asm-arm/arch-at91/hardware.h
@@ -31,7 +31,7 @@
31 31
32/* 32/*
33 * Remap the peripherals from address 0xFFF78000 .. 0xFFFFFFFF 33 * Remap the peripherals from address 0xFFF78000 .. 0xFFFFFFFF
34 * to 0xFEF78000 .. 0xFF000000. (5444Kb) 34 * to 0xFEF78000 .. 0xFF000000. (544Kb)
35 */ 35 */
36#define AT91_IO_PHYS_BASE 0xFFF78000 36#define AT91_IO_PHYS_BASE 0xFFF78000
37#define AT91_IO_SIZE (0xFFFFFFFF - AT91_IO_PHYS_BASE + 1) 37#define AT91_IO_SIZE (0xFFFFFFFF - AT91_IO_PHYS_BASE + 1)
diff --git a/include/asm-arm/arch-at91rm9200/entry-macro.S b/include/asm-arm/arch-at91rm9200/entry-macro.S
deleted file mode 100644
index 0e0aadf2a175..000000000000
--- a/include/asm-arm/arch-at91rm9200/entry-macro.S
+++ /dev/null
@@ -1,32 +0,0 @@
1/*
2 * include/asm-arm/arch-at91rm9200/entry-macro.S
3 *
4 * Copyright (C) 2003-2005 SAN People
5 *
6 * Low-level IRQ helper macros for AT91RM9200 platforms
7 *
8 * This file is licensed under the terms of the GNU General Public
9 * License version 2. This program is licensed "as is" without any
10 * warranty of any kind, whether express or implied.
11 */
12
13#include <asm/hardware.h>
14#include <asm/arch/at91_aic.h>
15
16 .macro disable_fiq
17 .endm
18
19 .macro get_irqnr_preamble, base, tmp
20 .endm
21
22 .macro arch_ret_to_user, tmp1, tmp2
23 .endm
24
25 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
26 ldr \base, =(AT91_VA_BASE_SYS) @ base virtual address of SYS peripherals
27 ldr \irqnr, [\base, #AT91_AIC_IVR] @ read IRQ vector register: de-asserts nIRQ to processor (and clears interrupt)
28 ldr \irqstat, [\base, #AT91_AIC_ISR] @ read interrupt source number
29 teq \irqstat, #0 @ ISR is 0 when no current interrupt, or spurious interrupt
30 streq \tmp, [\base, #AT91_AIC_EOICR] @ not going to be handled further, then ACK it now.
31 .endm
32
diff --git a/include/asm-arm/arch-ns9xxx/entry-macro.S b/include/asm-arm/arch-ns9xxx/entry-macro.S
index 467a1986d259..86aec87303e4 100644
--- a/include/asm-arm/arch-ns9xxx/entry-macro.S
+++ b/include/asm-arm/arch-ns9xxx/entry-macro.S
@@ -11,6 +11,12 @@
11#include <asm/hardware.h> 11#include <asm/hardware.h>
12#include <asm/arch-ns9xxx/regs-sys.h> 12#include <asm/arch-ns9xxx/regs-sys.h>
13 13
14 .macro get_irqnr_preamble, base, tmp
15 .endm
16
17 .macro arch_ret_to_user, tmp1, tmp2
18 .endm
19
14 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 20 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
15 ldr \base, =SYS_ISRADDR 21 ldr \base, =SYS_ISRADDR
16 ldr \irqstat, [\base, #(SYS_ISA - SYS_ISRADDR)] 22 ldr \irqstat, [\base, #(SYS_ISA - SYS_ISRADDR)]