Browse Source

Merge master.kernel.org:/home/rmk/linux-2.6-arm

Linus Torvalds 19 years ago
parent
commit
8d5c315059
100 changed files with 767 additions and 157 deletions
  1. 36 1
      arch/arm/Kconfig
  2. 6 1
      arch/arm/Makefile
  3. 5 2
      arch/arm/common/Kconfig
  4. 1 0
      arch/arm/common/Makefile
  5. 92 0
      arch/arm/common/vic.c
  6. 1 0
      arch/arm/kernel/Makefile
  7. 22 0
      arch/arm/kernel/armksyms.c
  8. 29 30
      arch/arm/kernel/calls.S
  9. 24 0
      arch/arm/kernel/entry-armv.S
  10. 131 15
      arch/arm/kernel/entry-common.S
  11. 1 0
      arch/arm/kernel/entry-header.S
  12. 3 4
      arch/arm/kernel/head.S
  13. 12 3
      arch/arm/kernel/ptrace.c
  14. 9 8
      arch/arm/kernel/semaphore.c
  15. 2 0
      arch/arm/kernel/sys_arm.c
  16. 339 0
      arch/arm/kernel/sys_oabi-compat.c
  17. 1 1
      arch/arm/kernel/traps.c
  18. 1 0
      arch/arm/lib/ashldi3.S
  19. 1 0
      arch/arm/lib/ashrdi3.S
  20. 25 2
      arch/arm/lib/lib1funcs.S
  21. 1 0
      arch/arm/lib/lshrdi3.S
  22. 1 0
      arch/arm/lib/muldi3.S
  23. 14 0
      arch/arm/lib/ucmpdi2.S
  24. 0 1
      arch/arm/mach-aaec2000/aaed2000.c
  25. 0 1
      arch/arm/mach-at91rm9200/board-csb337.c
  26. 0 1
      arch/arm/mach-at91rm9200/board-csb637.c
  27. 0 1
      arch/arm/mach-at91rm9200/board-dk.c
  28. 0 1
      arch/arm/mach-at91rm9200/board-ek.c
  29. 0 1
      arch/arm/mach-clps711x/autcpu12.c
  30. 0 1
      arch/arm/mach-clps711x/cdb89712.c
  31. 0 1
      arch/arm/mach-clps711x/ceiva.c
  32. 0 1
      arch/arm/mach-clps711x/clep7312.c
  33. 0 1
      arch/arm/mach-clps711x/edb7211-arch.c
  34. 0 1
      arch/arm/mach-clps711x/fortunet.c
  35. 0 1
      arch/arm/mach-clps711x/p720t.c
  36. 0 1
      arch/arm/mach-clps7500/core.c
  37. 0 1
      arch/arm/mach-ebsa110/core.c
  38. 0 1
      arch/arm/mach-footbridge/cats-hw.c
  39. 0 1
      arch/arm/mach-footbridge/co285.c
  40. 0 1
      arch/arm/mach-footbridge/ebsa285.c
  41. 0 1
      arch/arm/mach-footbridge/netwinder-hw.c
  42. 0 1
      arch/arm/mach-footbridge/personal.c
  43. 0 1
      arch/arm/mach-h720x/h7201-eval.c
  44. 0 1
      arch/arm/mach-h720x/h7202-eval.c
  45. 0 1
      arch/arm/mach-imx/mx1ads.c
  46. 0 1
      arch/arm/mach-integrator/integrator_ap.c
  47. 0 1
      arch/arm/mach-integrator/integrator_cp.c
  48. 0 2
      arch/arm/mach-iop3xx/iop321-setup.c
  49. 0 2
      arch/arm/mach-iop3xx/iop331-setup.c
  50. 10 0
      arch/arm/mach-ixp2000/core.c
  51. 0 1
      arch/arm/mach-ixp2000/enp2611.c
  52. 0 1
      arch/arm/mach-ixp2000/ixdp2400.c
  53. 0 1
      arch/arm/mach-ixp2000/ixdp2800.c
  54. 0 2
      arch/arm/mach-ixp2000/ixdp2x01.c
  55. 0 2
      arch/arm/mach-ixp4xx/coyote-setup.c
  56. 0 1
      arch/arm/mach-ixp4xx/gtwx5715-setup.c
  57. 0 4
      arch/arm/mach-ixp4xx/ixdp425-setup.c
  58. 0 1
      arch/arm/mach-ixp4xx/nas100d-setup.c
  59. 0 1
      arch/arm/mach-ixp4xx/nslu2-setup.c
  60. 0 1
      arch/arm/mach-l7200/core.c
  61. 0 1
      arch/arm/mach-lh7a40x/arch-kev7a400.c
  62. 0 2
      arch/arm/mach-lh7a40x/arch-lpd7a40x.c
  63. 0 1
      arch/arm/mach-omap1/board-generic.c
  64. 0 1
      arch/arm/mach-omap1/board-h2.c
  65. 0 1
      arch/arm/mach-omap1/board-h3.c
  66. 0 1
      arch/arm/mach-omap1/board-innovator.c
  67. 0 1
      arch/arm/mach-omap1/board-netstar.c
  68. 0 1
      arch/arm/mach-omap1/board-osk.c
  69. 0 1
      arch/arm/mach-omap1/board-palmte.c
  70. 0 1
      arch/arm/mach-omap1/board-perseus2.c
  71. 0 1
      arch/arm/mach-omap1/board-voiceblue.c
  72. 0 1
      arch/arm/mach-omap2/board-generic.c
  73. 0 1
      arch/arm/mach-omap2/board-h4.c
  74. 0 3
      arch/arm/mach-pxa/corgi.c
  75. 0 1
      arch/arm/mach-pxa/idp.c
  76. 0 1
      arch/arm/mach-pxa/lubbock.c
  77. 0 1
      arch/arm/mach-pxa/mainstone.c
  78. 0 1
      arch/arm/mach-pxa/poodle.c
  79. 0 3
      arch/arm/mach-pxa/spitz.c
  80. 0 1
      arch/arm/mach-pxa/tosa.c
  81. 0 1
      arch/arm/mach-realview/Kconfig
  82. 0 1
      arch/arm/mach-realview/realview_eb.c
  83. 0 1
      arch/arm/mach-rpc/riscpc.c
  84. 0 1
      arch/arm/mach-s3c2410/mach-anubis.c
  85. 0 1
      arch/arm/mach-s3c2410/mach-bast.c
  86. 0 1
      arch/arm/mach-s3c2410/mach-h1940.c
  87. 0 1
      arch/arm/mach-s3c2410/mach-n30.c
  88. 0 1
      arch/arm/mach-s3c2410/mach-nexcoder.c
  89. 0 1
      arch/arm/mach-s3c2410/mach-otom.c
  90. 0 1
      arch/arm/mach-s3c2410/mach-rx3715.c
  91. 0 1
      arch/arm/mach-s3c2410/mach-smdk2410.c
  92. 0 1
      arch/arm/mach-s3c2410/mach-smdk2440.c
  93. 0 1
      arch/arm/mach-s3c2410/mach-vr1000.c
  94. 0 1
      arch/arm/mach-sa1100/assabet.c
  95. 0 1
      arch/arm/mach-sa1100/badge4.c
  96. 0 1
      arch/arm/mach-sa1100/cerf.c
  97. 0 1
      arch/arm/mach-sa1100/collie.c
  98. 0 3
      arch/arm/mach-sa1100/h3600.c
  99. 0 1
      arch/arm/mach-sa1100/hackkit.c
  100. 0 1
      arch/arm/mach-sa1100/jornada720.c

+ 36 - 1
arch/arm/Kconfig

@@ -180,6 +180,7 @@ config ARCH_OMAP
 config ARCH_VERSATILE
 config ARCH_VERSATILE
 	bool "Versatile"
 	bool "Versatile"
 	select ARM_AMBA
 	select ARM_AMBA
+	select ARM_VIC
 	select ICST307
 	select ICST307
 	help
 	help
 	  This enables support for ARM Ltd Versatile board.
 	  This enables support for ARM Ltd Versatile board.
@@ -400,6 +401,38 @@ config NO_IDLE_HZ
 	  Currently at least OMAP, PXA2xx and SA11x0 platforms are known
 	  Currently at least OMAP, PXA2xx and SA11x0 platforms are known
 	  to have accurate timekeeping with dynamic tick.
 	  to have accurate timekeeping with dynamic tick.
 
 
+config AEABI
+	bool "Use the ARM EABI to compile the kernel"
+	help
+	  This option allows for the kernel to be compiled using the latest
+	  ARM ABI (aka EABI).  This is only useful if you are using a user
+	  space environment that is also compiled with EABI.
+
+	  Since there are major incompatibilities between the legacy ABI and
+	  EABI, especially with regard to structure member alignment, this
+	  option also changes the kernel syscall calling convention to
+	  disambiguate both ABIs and allow for backward compatibility support
+	  (selected with CONFIG_OABI_COMPAT).
+
+	  To use this you need GCC version 4.0.0 or later.
+
+config OABI_COMPAT
+	bool "Allow old ABI binaries to run with this kernel"
+	depends on AEABI
+	default y
+	help
+	  This option preserves the old syscall interface along with the
+	  new (ARM EABI) one. It also provides a compatibility layer to
+	  intercept syscalls that have structure arguments which layout
+	  in memory differs between the legacy ABI and the new ARM EABI
+	  (only for non "thumb" binaries). This option adds a tiny
+	  overhead to all syscalls and produces a slightly larger kernel.
+	  If you know you'll be using only pure EABI user space then you
+	  can say N here. If this option is not selected and you attempt
+	  to execute a legacy ABI binary then the result will be
+	  UNPREDICTABLE (in fact it can be predicted that it won't work
+	  at all). If in doubt say Y.
+
 config ARCH_DISCONTIGMEM_ENABLE
 config ARCH_DISCONTIGMEM_ENABLE
 	bool
 	bool
 	default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
 	default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
@@ -586,6 +619,7 @@ comment "At least one emulation must be selected"
 
 
 config FPE_NWFPE
 config FPE_NWFPE
 	bool "NWFPE math emulation"
 	bool "NWFPE math emulation"
+	depends on !AEABI || OABI_COMPAT
 	---help---
 	---help---
 	  Say Y to include the NWFPE floating point emulator in the kernel.
 	  Say Y to include the NWFPE floating point emulator in the kernel.
 	  This is necessary to run most binaries. Linux does not currently
 	  This is necessary to run most binaries. Linux does not currently
@@ -609,7 +643,7 @@ config FPE_NWFPE_XP
 
 
 config FPE_FASTFPE
 config FPE_FASTFPE
 	bool "FastFPE math emulation (EXPERIMENTAL)"
 	bool "FastFPE math emulation (EXPERIMENTAL)"
-	depends on !CPU_32v3 && EXPERIMENTAL
+	depends on (!AEABI || OABI_COMPAT) && !CPU_32v3 && EXPERIMENTAL
 	---help---
 	---help---
 	  Say Y here to include the FAST floating point emulator in the kernel.
 	  Say Y here to include the FAST floating point emulator in the kernel.
 	  This is an experimental much faster emulator which now also has full
 	  This is an experimental much faster emulator which now also has full
@@ -641,6 +675,7 @@ source "fs/Kconfig.binfmt"
 
 
 config ARTHUR
 config ARTHUR
 	tristate "RISC OS personality"
 	tristate "RISC OS personality"
+	depends on !AEABI
 	help
 	help
 	  Say Y here to include the kernel code necessary if you want to run
 	  Say Y here to include the kernel code necessary if you want to run
 	  Acorn RISC OS/Arthur binaries under Linux. This code is still very
 	  Acorn RISC OS/Arthur binaries under Linux. This code is still very

+ 6 - 1
arch/arm/Makefile

@@ -56,8 +56,13 @@ tune-$(CONFIG_CPU_SA1100)	:=-mtune=strongarm1100
 tune-$(CONFIG_CPU_XSCALE)	:=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
 tune-$(CONFIG_CPU_XSCALE)	:=$(call cc-option,-mtune=xscale,-mtune=strongarm110) -Wa,-mcpu=xscale
 tune-$(CONFIG_CPU_V6)		:=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
 tune-$(CONFIG_CPU_V6)		:=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
 
 
-# Need -Uarm for gcc < 3.x
+ifeq ($(CONFIG_AEABI),y)
+CFLAGS_ABI	:=-mabi=aapcs -mno-thumb-interwork
+else
 CFLAGS_ABI	:=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
 CFLAGS_ABI	:=$(call cc-option,-mapcs-32,-mabi=apcs-gnu) $(call cc-option,-mno-thumb-interwork,)
+endif
+
+# Need -Uarm for gcc < 3.x
 CFLAGS		+=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
 CFLAGS		+=$(CFLAGS_ABI) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm
 AFLAGS		+=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float
 AFLAGS		+=$(CFLAGS_ABI) $(arch-y) $(tune-y) -msoft-float
 
 

+ 5 - 2
arch/arm/common/Kconfig

@@ -1,7 +1,10 @@
-config ICST525
+config ARM_GIC
 	bool
 	bool
 
 
-config ARM_GIC
+config ARM_VIC
+	bool
+
+config ICST525
 	bool
 	bool
 
 
 config ICST307
 config ICST307

+ 1 - 0
arch/arm/common/Makefile

@@ -4,6 +4,7 @@
 
 
 obj-y				+= rtctime.o
 obj-y				+= rtctime.o
 obj-$(CONFIG_ARM_GIC)		+= gic.o
 obj-$(CONFIG_ARM_GIC)		+= gic.o
+obj-$(CONFIG_ARM_VIC)		+= vic.o
 obj-$(CONFIG_ICST525)		+= icst525.o
 obj-$(CONFIG_ICST525)		+= icst525.o
 obj-$(CONFIG_ICST307)		+= icst307.o
 obj-$(CONFIG_ICST307)		+= icst307.o
 obj-$(CONFIG_SA1111)		+= sa1111.o
 obj-$(CONFIG_SA1111)		+= sa1111.o

+ 92 - 0
arch/arm/common/vic.c

@@ -0,0 +1,92 @@
+/*
+ *  linux/arch/arm/common/vic.c
+ *
+ *  Copyright (C) 1999 - 2003 ARM Limited
+ *  Copyright (C) 2000 Deep Blue Solutions Ltd
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+#include <linux/init.h>
+#include <linux/list.h>
+
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/mach/irq.h>
+#include <asm/hardware/vic.h>
+
+static void __iomem *vic_base;
+
+static void vic_mask_irq(unsigned int irq)
+{
+	irq -= IRQ_VIC_START;
+	writel(1 << irq, vic_base + VIC_INT_ENABLE_CLEAR);
+}
+
+static void vic_unmask_irq(unsigned int irq)
+{
+	irq -= IRQ_VIC_START;
+	writel(1 << irq, vic_base + VIC_INT_ENABLE);
+}
+
+static struct irqchip vic_chip = {
+	.ack	= vic_mask_irq,
+	.mask	= vic_mask_irq,
+	.unmask	= vic_unmask_irq,
+};
+
+void __init vic_init(void __iomem *base, u32 vic_sources)
+{
+	unsigned int i;
+
+	vic_base = base;
+
+	/* Disable all interrupts initially. */
+
+	writel(0, vic_base + VIC_INT_SELECT);
+	writel(0, vic_base + VIC_INT_ENABLE);
+	writel(~0, vic_base + VIC_INT_ENABLE_CLEAR);
+	writel(0, vic_base + VIC_IRQ_STATUS);
+	writel(0, vic_base + VIC_ITCR);
+	writel(~0, vic_base + VIC_INT_SOFT_CLEAR);
+
+	/*
+	 * Make sure we clear all existing interrupts
+	 */
+	writel(0, vic_base + VIC_VECT_ADDR);
+	for (i = 0; i < 19; i++) {
+		unsigned int value;
+
+		value = readl(vic_base + VIC_VECT_ADDR);
+		writel(value, vic_base + VIC_VECT_ADDR);
+	}
+
+	for (i = 0; i < 16; i++) {
+		void __iomem *reg = vic_base + VIC_VECT_CNTL0 + (i * 4);
+		writel(VIC_VECT_CNTL_ENABLE | i, reg);
+	}
+
+	writel(32, vic_base + VIC_DEF_VECT_ADDR);
+
+	for (i = 0; i < 32; i++) {
+		unsigned int irq = IRQ_VIC_START + i;
+
+		set_irq_chip(irq, &vic_chip);
+
+		if (vic_sources & (1 << i)) {
+			set_irq_handler(irq, do_level_IRQ);
+			set_irq_flags(irq, IRQF_VALID | IRQF_PROBE);
+		}
+	}
+}

+ 1 - 0
arch/arm/kernel/Makefile

@@ -20,6 +20,7 @@ obj-$(CONFIG_ARTHUR)		+= arthur.o
 obj-$(CONFIG_ISA_DMA)		+= dma-isa.o
 obj-$(CONFIG_ISA_DMA)		+= dma-isa.o
 obj-$(CONFIG_PCI)		+= bios32.o
 obj-$(CONFIG_PCI)		+= bios32.o
 obj-$(CONFIG_SMP)		+= smp.o
 obj-$(CONFIG_SMP)		+= smp.o
+obj-$(CONFIG_OABI_COMPAT)	+= sys_oabi-compat.o
 
 
 obj-$(CONFIG_IWMMXT)		+= iwmmxt.o
 obj-$(CONFIG_IWMMXT)		+= iwmmxt.o
 AFLAGS_iwmmxt.o			:= -Wa,-mcpu=iwmmxt
 AFLAGS_iwmmxt.o			:= -Wa,-mcpu=iwmmxt

+ 22 - 0
arch/arm/kernel/armksyms.c

@@ -35,6 +35,16 @@ extern void __udivsi3(void);
 extern void __umodsi3(void);
 extern void __umodsi3(void);
 extern void __do_div64(void);
 extern void __do_div64(void);
 
 
+extern void __aeabi_idiv(void);
+extern void __aeabi_idivmod(void);
+extern void __aeabi_lasr(void);
+extern void __aeabi_llsl(void);
+extern void __aeabi_llsr(void);
+extern void __aeabi_lmul(void);
+extern void __aeabi_uidiv(void);
+extern void __aeabi_uidivmod(void);
+extern void __aeabi_ulcmp(void);
+
 extern void fpundefinstr(void);
 extern void fpundefinstr(void);
 extern void fp_enter(void);
 extern void fp_enter(void);
 
 
@@ -141,6 +151,18 @@ EXPORT_SYMBOL(__udivsi3);
 EXPORT_SYMBOL(__umodsi3);
 EXPORT_SYMBOL(__umodsi3);
 EXPORT_SYMBOL(__do_div64);
 EXPORT_SYMBOL(__do_div64);
 
 
+#ifdef CONFIG_AEABI
+EXPORT_SYMBOL(__aeabi_idiv);
+EXPORT_SYMBOL(__aeabi_idivmod);
+EXPORT_SYMBOL(__aeabi_lasr);
+EXPORT_SYMBOL(__aeabi_llsl);
+EXPORT_SYMBOL(__aeabi_llsr);
+EXPORT_SYMBOL(__aeabi_lmul);
+EXPORT_SYMBOL(__aeabi_uidiv);
+EXPORT_SYMBOL(__aeabi_uidivmod);
+EXPORT_SYMBOL(__aeabi_ulcmp);
+#endif
+
 	/* bitops */
 	/* bitops */
 EXPORT_SYMBOL(_set_bit_le);
 EXPORT_SYMBOL(_set_bit_le);
 EXPORT_SYMBOL(_test_and_set_bit_le);
 EXPORT_SYMBOL(_test_and_set_bit_le);

+ 29 - 30
arch/arm/kernel/calls.S

@@ -13,7 +13,7 @@
 #define NR_syscalls 328
 #define NR_syscalls 328
 #else
 #else
 
 
-__syscall_start:
+100:
 /* 0 */		.long	sys_restart_syscall
 /* 0 */		.long	sys_restart_syscall
 		.long	sys_exit
 		.long	sys_exit
 		.long	sys_fork_wrapper
 		.long	sys_fork_wrapper
@@ -27,7 +27,7 @@ __syscall_start:
 /* 10 */	.long	sys_unlink
 /* 10 */	.long	sys_unlink
 		.long	sys_execve_wrapper
 		.long	sys_execve_wrapper
 		.long	sys_chdir
 		.long	sys_chdir
-		.long	sys_time		/* used by libc4 */
+		.long	OBSOLETE(sys_time)	/* used by libc4 */
 		.long	sys_mknod
 		.long	sys_mknod
 /* 15 */	.long	sys_chmod
 /* 15 */	.long	sys_chmod
 		.long	sys_lchown16
 		.long	sys_lchown16
@@ -36,15 +36,15 @@ __syscall_start:
 		.long	sys_lseek
 		.long	sys_lseek
 /* 20 */	.long	sys_getpid
 /* 20 */	.long	sys_getpid
 		.long	sys_mount
 		.long	sys_mount
-		.long	sys_oldumount		/* used by libc4 */
+		.long	OBSOLETE(sys_oldumount)	/* used by libc4 */
 		.long	sys_setuid16
 		.long	sys_setuid16
 		.long	sys_getuid16
 		.long	sys_getuid16
-/* 25 */	.long	sys_stime
+/* 25 */	.long	OBSOLETE(sys_stime)
 		.long	sys_ptrace
 		.long	sys_ptrace
-		.long	sys_alarm		/* used by libc4 */
+		.long	OBSOLETE(sys_alarm)	/* used by libc4 */
 		.long	sys_ni_syscall		/* was sys_fstat */
 		.long	sys_ni_syscall		/* was sys_fstat */
 		.long	sys_pause
 		.long	sys_pause
-/* 30 */	.long	sys_utime		/* used by libc4 */
+/* 30 */	.long	OBSOLETE(sys_utime)	/* used by libc4 */
 		.long	sys_ni_syscall		/* was sys_stty */
 		.long	sys_ni_syscall		/* was sys_stty */
 		.long	sys_ni_syscall		/* was sys_getty */
 		.long	sys_ni_syscall		/* was sys_getty */
 		.long	sys_access
 		.long	sys_access
@@ -90,21 +90,21 @@ __syscall_start:
 		.long	sys_sigpending
 		.long	sys_sigpending
 		.long	sys_sethostname
 		.long	sys_sethostname
 /* 75 */	.long	sys_setrlimit
 /* 75 */	.long	sys_setrlimit
-		.long	sys_old_getrlimit	/* used by libc4 */
+		.long	OBSOLETE(sys_old_getrlimit) /* used by libc4 */
 		.long	sys_getrusage
 		.long	sys_getrusage
 		.long	sys_gettimeofday
 		.long	sys_gettimeofday
 		.long	sys_settimeofday
 		.long	sys_settimeofday
 /* 80 */	.long	sys_getgroups16
 /* 80 */	.long	sys_getgroups16
 		.long	sys_setgroups16
 		.long	sys_setgroups16
-		.long	old_select		/* used by libc4 */
+		.long	OBSOLETE(old_select)	/* used by libc4 */
 		.long	sys_symlink
 		.long	sys_symlink
 		.long	sys_ni_syscall		/* was sys_lstat */
 		.long	sys_ni_syscall		/* was sys_lstat */
 /* 85 */	.long	sys_readlink
 /* 85 */	.long	sys_readlink
 		.long	sys_uselib
 		.long	sys_uselib
 		.long	sys_swapon
 		.long	sys_swapon
 		.long	sys_reboot
 		.long	sys_reboot
-		.long	old_readdir		/* used by libc4 */
-/* 90 */	.long	old_mmap		/* used by libc4 */
+		.long	OBSOLETE(old_readdir)	/* used by libc4 */
+/* 90 */	.long	OBSOLETE(old_mmap)	/* used by libc4 */
 		.long	sys_munmap
 		.long	sys_munmap
 		.long	sys_truncate
 		.long	sys_truncate
 		.long	sys_ftruncate
 		.long	sys_ftruncate
@@ -116,7 +116,7 @@ __syscall_start:
 		.long	sys_statfs
 		.long	sys_statfs
 /* 100 */	.long	sys_fstatfs
 /* 100 */	.long	sys_fstatfs
 		.long	sys_ni_syscall
 		.long	sys_ni_syscall
-		.long	sys_socketcall
+		.long	OBSOLETE(sys_socketcall)
 		.long	sys_syslog
 		.long	sys_syslog
 		.long	sys_setitimer
 		.long	sys_setitimer
 /* 105 */	.long	sys_getitimer
 /* 105 */	.long	sys_getitimer
@@ -127,11 +127,11 @@ __syscall_start:
 /* 110 */	.long	sys_ni_syscall		/* was sys_iopl */
 /* 110 */	.long	sys_ni_syscall		/* was sys_iopl */
 		.long	sys_vhangup
 		.long	sys_vhangup
 		.long	sys_ni_syscall
 		.long	sys_ni_syscall
-		.long	sys_syscall		/* call a syscall */
+		.long	OBSOLETE(sys_syscall)	/* call a syscall */
 		.long	sys_wait4
 		.long	sys_wait4
 /* 115 */	.long	sys_swapoff
 /* 115 */	.long	sys_swapoff
 		.long	sys_sysinfo
 		.long	sys_sysinfo
-		.long	sys_ipc
+		.long	OBSOLETE(ABI(sys_ipc, sys_oabi_ipc))
 		.long	sys_fsync
 		.long	sys_fsync
 		.long	sys_sigreturn_wrapper
 		.long	sys_sigreturn_wrapper
 /* 120 */	.long	sys_clone_wrapper
 /* 120 */	.long	sys_clone_wrapper
@@ -194,8 +194,8 @@ __syscall_start:
 		.long	sys_rt_sigtimedwait
 		.long	sys_rt_sigtimedwait
 		.long	sys_rt_sigqueueinfo
 		.long	sys_rt_sigqueueinfo
 		.long	sys_rt_sigsuspend_wrapper
 		.long	sys_rt_sigsuspend_wrapper
-/* 180 */	.long	sys_pread64
-		.long	sys_pwrite64
+/* 180 */	.long	ABI(sys_pread64, sys_oabi_pread64)
+		.long	ABI(sys_pwrite64, sys_oabi_pwrite64)
 		.long	sys_chown16
 		.long	sys_chown16
 		.long	sys_getcwd
 		.long	sys_getcwd
 		.long	sys_capget
 		.long	sys_capget
@@ -207,11 +207,11 @@ __syscall_start:
 /* 190 */	.long	sys_vfork_wrapper
 /* 190 */	.long	sys_vfork_wrapper
 		.long	sys_getrlimit
 		.long	sys_getrlimit
 		.long	sys_mmap2
 		.long	sys_mmap2
-		.long	sys_truncate64
-		.long	sys_ftruncate64
-/* 195 */	.long	sys_stat64
-		.long	sys_lstat64
-		.long	sys_fstat64
+		.long	ABI(sys_truncate64, sys_oabi_truncate64)
+		.long	ABI(sys_ftruncate64, sys_oabi_ftruncate64)
+/* 195 */	.long	ABI(sys_stat64, sys_oabi_stat64)
+		.long	ABI(sys_lstat64, sys_oabi_lstat64)
+		.long	ABI(sys_fstat64, sys_oabi_fstat64)
 		.long	sys_lchown
 		.long	sys_lchown
 		.long	sys_getuid
 		.long	sys_getuid
 /* 200 */	.long	sys_getgid
 /* 200 */	.long	sys_getgid
@@ -235,11 +235,11 @@ __syscall_start:
 		.long	sys_pivot_root
 		.long	sys_pivot_root
 		.long	sys_mincore
 		.long	sys_mincore
 /* 220 */	.long	sys_madvise
 /* 220 */	.long	sys_madvise
-		.long	sys_fcntl64
+		.long	ABI(sys_fcntl64, sys_oabi_fcntl64)
 		.long	sys_ni_syscall /* TUX */
 		.long	sys_ni_syscall /* TUX */
 		.long	sys_ni_syscall
 		.long	sys_ni_syscall
 		.long	sys_gettid
 		.long	sys_gettid
-/* 225 */	.long	sys_readahead
+/* 225 */	.long	ABI(sys_readahead, sys_oabi_readahead)
 		.long	sys_setxattr
 		.long	sys_setxattr
 		.long	sys_lsetxattr
 		.long	sys_lsetxattr
 		.long	sys_fsetxattr
 		.long	sys_fsetxattr
@@ -265,8 +265,8 @@ __syscall_start:
 		.long	sys_exit_group
 		.long	sys_exit_group
 		.long	sys_lookup_dcookie
 		.long	sys_lookup_dcookie
 /* 250 */	.long	sys_epoll_create
 /* 250 */	.long	sys_epoll_create
-		.long	sys_epoll_ctl
-		.long	sys_epoll_wait
+		.long	ABI(sys_epoll_ctl, sys_oabi_epoll_ctl)
+		.long	ABI(sys_epoll_wait, sys_oabi_epoll_wait)
 	 	.long	sys_remap_file_pages
 	 	.long	sys_remap_file_pages
 		.long	sys_ni_syscall	/* sys_set_thread_area */
 		.long	sys_ni_syscall	/* sys_set_thread_area */
 /* 255 */	.long	sys_ni_syscall	/* sys_get_thread_area */
 /* 255 */	.long	sys_ni_syscall	/* sys_get_thread_area */
@@ -280,8 +280,8 @@ __syscall_start:
 		.long	sys_clock_gettime
 		.long	sys_clock_gettime
 		.long	sys_clock_getres
 		.long	sys_clock_getres
 /* 265 */	.long	sys_clock_nanosleep
 /* 265 */	.long	sys_clock_nanosleep
-		.long	sys_statfs64
-		.long	sys_fstatfs64
+		.long	sys_statfs64_wrapper
+		.long	sys_fstatfs64_wrapper
 		.long	sys_tgkill
 		.long	sys_tgkill
 		.long	sys_utimes
 		.long	sys_utimes
 /* 270 */	.long	sys_arm_fadvise64_64
 /* 270 */	.long	sys_arm_fadvise64_64
@@ -312,7 +312,7 @@ __syscall_start:
 /* 295 */	.long	sys_getsockopt
 /* 295 */	.long	sys_getsockopt
 		.long	sys_sendmsg
 		.long	sys_sendmsg
 		.long	sys_recvmsg
 		.long	sys_recvmsg
-		.long	sys_semop
+		.long	ABI(sys_semop, sys_oabi_semop)
 		.long	sys_semget
 		.long	sys_semget
 /* 300 */	.long	sys_semctl
 /* 300 */	.long	sys_semctl
 		.long	sys_msgsnd
 		.long	sys_msgsnd
@@ -326,7 +326,7 @@ __syscall_start:
 		.long	sys_add_key
 		.long	sys_add_key
 /* 310 */	.long	sys_request_key
 /* 310 */	.long	sys_request_key
 		.long	sys_keyctl
 		.long	sys_keyctl
-		.long	sys_semtimedop
+		.long	ABI(sys_semtimedop, sys_oabi_semtimedop)
 /* vserver */	.long	sys_ni_syscall
 /* vserver */	.long	sys_ni_syscall
 		.long	sys_ioprio_set
 		.long	sys_ioprio_set
 /* 315 */	.long	sys_ioprio_get
 /* 315 */	.long	sys_ioprio_get
@@ -336,9 +336,8 @@ __syscall_start:
 		.long	sys_mbind
 		.long	sys_mbind
 /* 320 */	.long	sys_get_mempolicy
 /* 320 */	.long	sys_get_mempolicy
 		.long	sys_set_mempolicy
 		.long	sys_set_mempolicy
-__syscall_end:
 
 
-		.rept	NR_syscalls - (__syscall_end - __syscall_start) / 4
+		.rept	NR_syscalls - (. - 100b) / 4
 			.long	sys_ni_syscall
 			.long	sys_ni_syscall
 		.endr
 		.endr
 #endif
 #endif

+ 24 - 0
arch/arm/kernel/entry-armv.S

@@ -3,6 +3,7 @@
  *
  *
  *  Copyright (C) 1996,1997,1998 Russell King.
  *  Copyright (C) 1996,1997,1998 Russell King.
  *  ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk)
  *  ARM700 fix by Matthew Godbolt (linux-user@willothewisp.demon.co.uk)
+ *  nommu support by Hyok S. Choi (hyok.choi@samsung.com)
  *
  *
  * This program is free software; you can redistribute it and/or modify
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
  * it under the terms of the GNU General Public License version 2 as
@@ -104,14 +105,24 @@ common_invalid:
 /*
 /*
  * SVC mode handlers
  * SVC mode handlers
  */
  */
+
+#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5)
+#define SPFIX(code...) code
+#else
+#define SPFIX(code...)
+#endif
+
 	.macro	svc_entry
 	.macro	svc_entry
 	sub	sp, sp, #S_FRAME_SIZE
 	sub	sp, sp, #S_FRAME_SIZE
+ SPFIX(	tst	sp, #4		)
+ SPFIX(	bicne	sp, sp, #4	)
 	stmib	sp, {r1 - r12}
 	stmib	sp, {r1 - r12}
 
 
 	ldmia	r0, {r1 - r3}
 	ldmia	r0, {r1 - r3}
 	add	r5, sp, #S_SP		@ here for interlock avoidance
 	add	r5, sp, #S_SP		@ here for interlock avoidance
 	mov	r4, #-1			@  ""  ""      ""       ""
 	mov	r4, #-1			@  ""  ""      ""       ""
 	add	r0, sp, #S_FRAME_SIZE   @  ""  ""      ""       ""
 	add	r0, sp, #S_FRAME_SIZE   @  ""  ""      ""       ""
+ SPFIX(	addne	r0, r0, #4	)
 	str	r1, [sp]		@ save the "real" r0 copied
 	str	r1, [sp]		@ save the "real" r0 copied
 					@ from the exception stack
 					@ from the exception stack
 
 
@@ -302,7 +313,14 @@ __pabt_svc:
 
 
 /*
 /*
  * User mode handlers
  * User mode handlers
+ *
+ * EABI note: sp_svc is always 64-bit aligned here, so should S_FRAME_SIZE
  */
  */
+
+#if defined(CONFIG_AEABI) && (__LINUX_ARM_ARCH__ >= 5) && (S_FRAME_SIZE & 7)
+#error "sizeof(struct pt_regs) must be a multiple of 8"
+#endif
+
 	.macro	usr_entry
 	.macro	usr_entry
 	sub	sp, sp, #S_FRAME_SIZE
 	sub	sp, sp, #S_FRAME_SIZE
 	stmib	sp, {r1 - r12}
 	stmib	sp, {r1 - r12}
@@ -538,7 +556,11 @@ ENTRY(__switch_to)
 	add	ip, r1, #TI_CPU_SAVE
 	add	ip, r1, #TI_CPU_SAVE
 	ldr	r3, [r2, #TI_TP_VALUE]
 	ldr	r3, [r2, #TI_TP_VALUE]
 	stmia	ip!, {r4 - sl, fp, sp, lr}	@ Store most regs on stack
 	stmia	ip!, {r4 - sl, fp, sp, lr}	@ Store most regs on stack
+#ifndef CONFIG_MMU
+	add	r2, r2, #TI_CPU_DOMAIN
+#else
 	ldr	r6, [r2, #TI_CPU_DOMAIN]!
 	ldr	r6, [r2, #TI_CPU_DOMAIN]!
+#endif
 #if __LINUX_ARM_ARCH__ >= 6
 #if __LINUX_ARM_ARCH__ >= 6
 #ifdef CONFIG_CPU_MPCORE
 #ifdef CONFIG_CPU_MPCORE
 	clrex
 	clrex
@@ -556,7 +578,9 @@ ENTRY(__switch_to)
 	mov	r4, #0xffff0fff
 	mov	r4, #0xffff0fff
 	str	r3, [r4, #-15]			@ TLS val at 0xffff0ff0
 	str	r3, [r4, #-15]			@ TLS val at 0xffff0ff0
 #endif
 #endif
+#ifdef CONFIG_MMU
 	mcr	p15, 0, r6, c3, c0, 0		@ Set domain register
 	mcr	p15, 0, r6, c3, c0, 0		@ Set domain register
+#endif
 #ifdef CONFIG_VFP
 #ifdef CONFIG_VFP
 	@ Always disable VFP so we can lazily save/restore the old
 	@ Always disable VFP so we can lazily save/restore the old
 	@ state. This occurs in the context of the previous thread.
 	@ state. This occurs in the context of the previous thread.

+ 131 - 15
arch/arm/kernel/entry-common.S

@@ -98,20 +98,14 @@ ENTRY(ret_from_fork)
 	   run on an ARM7 and we can save a couple of instructions.  
 	   run on an ARM7 and we can save a couple of instructions.  
 								--pb */
 								--pb */
 #ifdef CONFIG_CPU_ARM710
 #ifdef CONFIG_CPU_ARM710
-	.macro	arm710_bug_check, instr, temp
-	and	\temp, \instr, #0x0f000000	@ check for SWI
-	teq	\temp, #0x0f000000
-	bne	.Larm700bug
-	.endm
-
-.Larm700bug:
+#define A710(code...) code
+.Larm710bug:
 	ldmia	sp, {r0 - lr}^			@ Get calling r0 - lr
 	ldmia	sp, {r0 - lr}^			@ Get calling r0 - lr
 	mov	r0, r0
 	mov	r0, r0
 	add	sp, sp, #S_FRAME_SIZE
 	add	sp, sp, #S_FRAME_SIZE
 	subs	pc, lr, #4
 	subs	pc, lr, #4
 #else
 #else
-	.macro	arm710_bug_check, instr, temp
-	.endm
+#define A710(code...)
 #endif
 #endif
 
 
 	.align	5
 	.align	5
@@ -129,14 +123,50 @@ ENTRY(vector_swi)
 	/*
 	/*
 	 * Get the system call number.
 	 * Get the system call number.
 	 */
 	 */
+
+#if defined(CONFIG_OABI_COMPAT)
+
+	/*
+	 * If we have CONFIG_OABI_COMPAT then we need to look at the swi
+	 * value to determine if it is an EABI or an old ABI call.
+	 */
 #ifdef CONFIG_ARM_THUMB
 #ifdef CONFIG_ARM_THUMB
+	tst	r8, #PSR_T_BIT
+	movne	r10, #0				@ no thumb OABI emulation
+	ldreq	r10, [lr, #-4]			@ get SWI instruction
+#else
+	ldr	r10, [lr, #-4]			@ get SWI instruction
+  A710(	and	ip, r10, #0x0f000000		@ check for SWI		)
+  A710(	teq	ip, #0x0f000000						)
+  A710(	bne	.Larm710bug						)
+#endif
+
+#elif defined(CONFIG_AEABI)
+
+	/*
+	 * Pure EABI user space always put syscall number into scno (r7).
+	 */
+  A710(	ldr	ip, [lr, #-4]			@ get SWI instruction	)
+  A710(	and	ip, ip, #0x0f000000		@ check for SWI		)
+  A710(	teq	ip, #0x0f000000						)
+  A710(	bne	.Larm710bug						)
+
+#elif defined(CONFIG_ARM_THUMB)
+
+	/* Legacy ABI only, possibly thumb mode. */
 	tst	r8, #PSR_T_BIT			@ this is SPSR from save_user_regs
 	tst	r8, #PSR_T_BIT			@ this is SPSR from save_user_regs
 	addne	scno, r7, #__NR_SYSCALL_BASE	@ put OS number in
 	addne	scno, r7, #__NR_SYSCALL_BASE	@ put OS number in
 	ldreq	scno, [lr, #-4]
 	ldreq	scno, [lr, #-4]
+
 #else
 #else
+
+	/* Legacy ABI only. */
 	ldr	scno, [lr, #-4]			@ get SWI instruction
 	ldr	scno, [lr, #-4]			@ get SWI instruction
+  A710(	and	ip, scno, #0x0f000000		@ check for SWI		)
+  A710(	teq	ip, #0x0f000000						)
+  A710(	bne	.Larm710bug						)
+
 #endif
 #endif
-	arm710_bug_check scno, ip
 
 
 #ifdef CONFIG_ALIGNMENT_TRAP
 #ifdef CONFIG_ALIGNMENT_TRAP
 	ldr	ip, __cr_alignment
 	ldr	ip, __cr_alignment
@@ -145,18 +175,31 @@ ENTRY(vector_swi)
 #endif
 #endif
 	enable_irq
 	enable_irq
 
 
-	stmdb	sp!, {r4, r5}			@ push fifth and sixth args
-
 	get_thread_info tsk
 	get_thread_info tsk
+	adr	tbl, sys_call_table		@ load syscall table pointer
 	ldr	ip, [tsk, #TI_FLAGS]		@ check for syscall tracing
 	ldr	ip, [tsk, #TI_FLAGS]		@ check for syscall tracing
+
+#if defined(CONFIG_OABI_COMPAT)
+	/*
+	 * If the swi argument is zero, this is an EABI call and we do nothing.
+	 *
+	 * If this is an old ABI call, get the syscall number into scno and
+	 * get the old ABI syscall table address.
+	 */
+	bics	r10, r10, #0xff000000
+	eorne	scno, r10, #__NR_OABI_SYSCALL_BASE
+	ldrne	tbl, =sys_oabi_call_table
+#elif !defined(CONFIG_AEABI)
 	bic	scno, scno, #0xff000000		@ mask off SWI op-code
 	bic	scno, scno, #0xff000000		@ mask off SWI op-code
 	eor	scno, scno, #__NR_SYSCALL_BASE	@ check OS number
 	eor	scno, scno, #__NR_SYSCALL_BASE	@ check OS number
-	adr	tbl, sys_call_table		@ load syscall table pointer
+#endif
+
+	stmdb	sp!, {r4, r5}			@ push fifth and sixth args
 	tst	ip, #_TIF_SYSCALL_TRACE		@ are we tracing syscalls?
 	tst	ip, #_TIF_SYSCALL_TRACE		@ are we tracing syscalls?
 	bne	__sys_trace
 	bne	__sys_trace
 
 
-	adr	lr, ret_fast_syscall		@ return address
 	cmp	scno, #NR_syscalls		@ check upper syscall limit
 	cmp	scno, #NR_syscalls		@ check upper syscall limit
+	adr	lr, ret_fast_syscall		@ return address
 	ldrcc	pc, [tbl, scno, lsl #2]		@ call sys_* routine
 	ldrcc	pc, [tbl, scno, lsl #2]		@ call sys_* routine
 
 
 	add	r1, sp, #S_OFF
 	add	r1, sp, #S_OFF
@@ -171,11 +214,13 @@ ENTRY(vector_swi)
 	 * context switches, and waiting for our parent to respond.
 	 * context switches, and waiting for our parent to respond.
 	 */
 	 */
 __sys_trace:
 __sys_trace:
+	mov	r2, scno
 	add	r1, sp, #S_OFF
 	add	r1, sp, #S_OFF
 	mov	r0, #0				@ trace entry [IP = 0]
 	mov	r0, #0				@ trace entry [IP = 0]
 	bl	syscall_trace
 	bl	syscall_trace
 
 
 	adr	lr, __sys_trace_return		@ return address
 	adr	lr, __sys_trace_return		@ return address
+	mov	scno, r0			@ syscall number (possibly new)
 	add	r1, sp, #S_R0 + S_OFF		@ pointer to regs
 	add	r1, sp, #S_R0 + S_OFF		@ pointer to regs
 	cmp	scno, #NR_syscalls		@ check upper syscall limit
 	cmp	scno, #NR_syscalls		@ check upper syscall limit
 	ldmccia	r1, {r0 - r3}			@ have to reload r0 - r3
 	ldmccia	r1, {r0 - r3}			@ have to reload r0 - r3
@@ -184,6 +229,7 @@ __sys_trace:
 
 
 __sys_trace_return:
 __sys_trace_return:
 	str	r0, [sp, #S_R0 + S_OFF]!	@ save returned r0
 	str	r0, [sp, #S_R0 + S_OFF]!	@ save returned r0
+	mov	r2, scno
 	mov	r1, sp
 	mov	r1, sp
 	mov	r0, #1				@ trace exit [IP = 1]
 	mov	r0, #1				@ trace exit [IP = 1]
 	bl	syscall_trace
 	bl	syscall_trace
@@ -194,11 +240,25 @@ __sys_trace_return:
 	.type	__cr_alignment, #object
 	.type	__cr_alignment, #object
 __cr_alignment:
 __cr_alignment:
 	.word	cr_alignment
 	.word	cr_alignment
+#endif
+	.ltorg
+
+/*
+ * This is the syscall table declaration for native ABI syscalls.
+ * With EABI a couple syscalls are obsolete and defined as sys_ni_syscall.
+ */
+#define ABI(native, compat) native
+#ifdef CONFIG_AEABI
+#define OBSOLETE(syscall) sys_ni_syscall
+#else
+#define OBSOLETE(syscall) syscall
 #endif
 #endif
 
 
 	.type	sys_call_table, #object
 	.type	sys_call_table, #object
 ENTRY(sys_call_table)
 ENTRY(sys_call_table)
 #include "calls.S"
 #include "calls.S"
+#undef ABI
+#undef OBSOLETE
 
 
 /*============================================================================
 /*============================================================================
  * Special system call wrappers
  * Special system call wrappers
@@ -207,7 +267,7 @@ ENTRY(sys_call_table)
 @ r8 = syscall table
 @ r8 = syscall table
 		.type	sys_syscall, #function
 		.type	sys_syscall, #function
 sys_syscall:
 sys_syscall:
-		eor	scno, r0, #__NR_SYSCALL_BASE
+		eor	scno, r0, #__NR_OABI_SYSCALL_BASE
 		cmp	scno, #__NR_syscall - __NR_SYSCALL_BASE
 		cmp	scno, #__NR_syscall - __NR_SYSCALL_BASE
 		cmpne	scno, #NR_syscalls	@ check range
 		cmpne	scno, #NR_syscalls	@ check range
 		stmloia	sp, {r5, r6}		@ shuffle args
 		stmloia	sp, {r5, r6}		@ shuffle args
@@ -255,6 +315,16 @@ sys_sigaltstack_wrapper:
 		ldr	r2, [sp, #S_OFF + S_SP]
 		ldr	r2, [sp, #S_OFF + S_SP]
 		b	do_sigaltstack
 		b	do_sigaltstack
 
 
+sys_statfs64_wrapper:
+		teq	r1, #88
+		moveq	r1, #84
+		b	sys_statfs64
+
+sys_fstatfs64_wrapper:
+		teq	r1, #88
+		moveq	r1, #84
+		b	sys_fstatfs64
+
 /*
 /*
  * Note: off_4k (r5) is always units of 4K.  If we can't do the requested
  * Note: off_4k (r5) is always units of 4K.  If we can't do the requested
  * offset, we return EINVAL.
  * offset, we return EINVAL.
@@ -271,3 +341,49 @@ sys_mmap2:
 		str	r5, [sp, #4]
 		str	r5, [sp, #4]
 		b	do_mmap2
 		b	do_mmap2
 #endif
 #endif
+
+#ifdef CONFIG_OABI_COMPAT
+
+/*
+ * These are syscalls with argument register differences
+ */
+
+sys_oabi_pread64:
+		stmia	sp, {r3, r4}
+		b	sys_pread64
+
+sys_oabi_pwrite64:
+		stmia	sp, {r3, r4}
+		b	sys_pwrite64
+
+sys_oabi_truncate64:
+		mov	r3, r2
+		mov	r2, r1
+		b	sys_truncate64
+
+sys_oabi_ftruncate64:
+		mov	r3, r2
+		mov	r2, r1
+		b	sys_ftruncate64
+
+sys_oabi_readahead:
+		str	r3, [sp]
+		mov	r3, r2
+		mov	r2, r1
+		b	sys_readahead
+
+/*
+ * Let's declare a second syscall table for old ABI binaries
+ * using the compatibility syscall entries.
+ */
+#define ABI(native, compat) compat
+#define OBSOLETE(syscall) syscall
+
+	.type	sys_oabi_call_table, #object
+ENTRY(sys_oabi_call_table)
+#include "calls.S"
+#undef ABI
+#undef OBSOLETE
+
+#endif
+

+ 1 - 0
arch/arm/kernel/entry-header.S

@@ -19,6 +19,7 @@
 @
 @
 @ Most of the stack format comes from struct pt_regs, but with
 @ Most of the stack format comes from struct pt_regs, but with
 @ the addition of 8 bytes for storing syscall args 5 and 6.
 @ the addition of 8 bytes for storing syscall args 5 and 6.
+@ This _must_ remain a multiple of 8 for EABI.
 @
 @
 #define S_OFF		8
 #define S_OFF		8
 
 

+ 3 - 4
arch/arm/kernel/head.S

@@ -251,12 +251,11 @@ __turn_mmu_on:
  * r10 = procinfo
  * r10 = procinfo
  *
  *
  * Returns:
  * Returns:
- *  r0, r3, r5, r6, r7 corrupted
+ *  r0, r3, r6, r7 corrupted
  *  r4 = physical page table address
  *  r4 = physical page table address
  */
  */
 	.type	__create_page_tables, %function
 	.type	__create_page_tables, %function
 __create_page_tables:
 __create_page_tables:
-	ldr	r5, [r8, #MACHINFO_PHYSRAM]	@ physram
 	pgtbl	r4				@ page table address
 	pgtbl	r4				@ page table address
 
 
 	/*
 	/*
@@ -303,7 +302,7 @@ __create_page_tables:
 	 * Then map first 1MB of ram in case it contains our boot params.
 	 * Then map first 1MB of ram in case it contains our boot params.
 	 */
 	 */
 	add	r0, r4, #PAGE_OFFSET >> 18
 	add	r0, r4, #PAGE_OFFSET >> 18
-	orr	r6, r5, r7
+	orr	r6, r7, #PHYS_OFFSET
 	str	r6, [r0]
 	str	r6, [r0]
 
 
 #ifdef CONFIG_XIP_KERNEL
 #ifdef CONFIG_XIP_KERNEL
@@ -311,7 +310,7 @@ __create_page_tables:
 	 * Map some ram to cover our .data and .bss areas.
 	 * Map some ram to cover our .data and .bss areas.
 	 * Mapping 3MB should be plenty.
 	 * Mapping 3MB should be plenty.
 	 */
 	 */
-	sub	r3, r4, r5
+	sub	r3, r4, #PHYS_OFFSET
 	mov	r3, r3, lsr #20
 	mov	r3, r3, lsr #20
 	add	r0, r0, r3, lsl #2
 	add	r0, r0, r3, lsl #2
 	add	r6, r6, r3, lsl #20
 	add	r6, r6, r3, lsl #20

+ 12 - 3
arch/arm/kernel/ptrace.c

@@ -766,6 +766,11 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
 				       (unsigned long __user *) data);
 				       (unsigned long __user *) data);
 			break;
 			break;
 
 
+		case PTRACE_SET_SYSCALL:
+			ret = 0;
+			child->ptrace_message = data;
+			break;
+
 		default:
 		default:
 			ret = ptrace_request(child, request, addr, data);
 			ret = ptrace_request(child, request, addr, data);
 			break;
 			break;
@@ -774,14 +779,14 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
 	return ret;
 	return ret;
 }
 }
 
 
-asmlinkage void syscall_trace(int why, struct pt_regs *regs)
+asmlinkage int syscall_trace(int why, struct pt_regs *regs, int scno)
 {
 {
 	unsigned long ip;
 	unsigned long ip;
 
 
 	if (!test_thread_flag(TIF_SYSCALL_TRACE))
 	if (!test_thread_flag(TIF_SYSCALL_TRACE))
-		return;
+		return scno;
 	if (!(current->ptrace & PT_PTRACED))
 	if (!(current->ptrace & PT_PTRACED))
-		return;
+		return scno;
 
 
 	/*
 	/*
 	 * Save IP.  IP is used to denote syscall entry/exit:
 	 * Save IP.  IP is used to denote syscall entry/exit:
@@ -790,6 +795,8 @@ asmlinkage void syscall_trace(int why, struct pt_regs *regs)
 	ip = regs->ARM_ip;
 	ip = regs->ARM_ip;
 	regs->ARM_ip = why;
 	regs->ARM_ip = why;
 
 
+	current->ptrace_message = scno;
+
 	/* the 0x80 provides a way for the tracing parent to distinguish
 	/* the 0x80 provides a way for the tracing parent to distinguish
 	   between a syscall stop and SIGTRAP delivery */
 	   between a syscall stop and SIGTRAP delivery */
 	ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
 	ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD)
@@ -804,4 +811,6 @@ asmlinkage void syscall_trace(int why, struct pt_regs *regs)
 		current->exit_code = 0;
 		current->exit_code = 0;
 	}
 	}
 	regs->ARM_ip = ip;
 	regs->ARM_ip = ip;
+
+	return current->ptrace_message;
 }
 }

+ 9 - 8
arch/arm/kernel/semaphore.c

@@ -177,41 +177,42 @@ int __down_trylock(struct semaphore * sem)
  * ip contains the semaphore pointer on entry. Save the C-clobbered
  * ip contains the semaphore pointer on entry. Save the C-clobbered
  * registers (r0 to r3 and lr), but not ip, as we use it as a return
  * registers (r0 to r3 and lr), but not ip, as we use it as a return
  * value in some cases..
  * value in some cases..
+ * To remain AAPCS compliant (64-bit stack align) we save r4 as well.
  */
  */
 asm("	.section .sched.text,\"ax\",%progbits	\n\
 asm("	.section .sched.text,\"ax\",%progbits	\n\
 	.align	5				\n\
 	.align	5				\n\
 	.globl	__down_failed			\n\
 	.globl	__down_failed			\n\
 __down_failed:					\n\
 __down_failed:					\n\
-	stmfd	sp!, {r0 - r3, lr}		\n\
+	stmfd	sp!, {r0 - r4, lr}		\n\
 	mov	r0, ip				\n\
 	mov	r0, ip				\n\
 	bl	__down				\n\
 	bl	__down				\n\
-	ldmfd	sp!, {r0 - r3, pc}		\n\
+	ldmfd	sp!, {r0 - r4, pc}		\n\
 						\n\
 						\n\
 	.align	5				\n\
 	.align	5				\n\
 	.globl	__down_interruptible_failed	\n\
 	.globl	__down_interruptible_failed	\n\
 __down_interruptible_failed:			\n\
 __down_interruptible_failed:			\n\
-	stmfd	sp!, {r0 - r3, lr}		\n\
+	stmfd	sp!, {r0 - r4, lr}		\n\
 	mov	r0, ip				\n\
 	mov	r0, ip				\n\
 	bl	__down_interruptible		\n\
 	bl	__down_interruptible		\n\
 	mov	ip, r0				\n\
 	mov	ip, r0				\n\
-	ldmfd	sp!, {r0 - r3, pc}		\n\
+	ldmfd	sp!, {r0 - r4, pc}		\n\
 						\n\
 						\n\
 	.align	5				\n\
 	.align	5				\n\
 	.globl	__down_trylock_failed		\n\
 	.globl	__down_trylock_failed		\n\
 __down_trylock_failed:				\n\
 __down_trylock_failed:				\n\
-	stmfd	sp!, {r0 - r3, lr}		\n\
+	stmfd	sp!, {r0 - r4, lr}		\n\
 	mov	r0, ip				\n\
 	mov	r0, ip				\n\
 	bl	__down_trylock			\n\
 	bl	__down_trylock			\n\
 	mov	ip, r0				\n\
 	mov	ip, r0				\n\
-	ldmfd	sp!, {r0 - r3, pc}		\n\
+	ldmfd	sp!, {r0 - r4, pc}		\n\
 						\n\
 						\n\
 	.align	5				\n\
 	.align	5				\n\
 	.globl	__up_wakeup			\n\
 	.globl	__up_wakeup			\n\
 __up_wakeup:					\n\
 __up_wakeup:					\n\
-	stmfd	sp!, {r0 - r3, lr}		\n\
+	stmfd	sp!, {r0 - r4, lr}		\n\
 	mov	r0, ip				\n\
 	mov	r0, ip				\n\
 	bl	__up				\n\
 	bl	__up				\n\
-	ldmfd	sp!, {r0 - r3, pc}		\n\
+	ldmfd	sp!, {r0 - r4, pc}		\n\
 	");
 	");
 
 
 EXPORT_SYMBOL(__down_failed);
 EXPORT_SYMBOL(__down_failed);

+ 2 - 0
arch/arm/kernel/sys_arm.c

@@ -147,6 +147,7 @@ asmlinkage int old_select(struct sel_arg_struct __user *arg)
 	return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp);
 	return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp);
 }
 }
 
 
+#if !defined(CONFIG_AEABI) || defined(CONFIG_OABI_COMPAT)
 /*
 /*
  * sys_ipc() is the de-multiplexer for the SysV IPC calls..
  * sys_ipc() is the de-multiplexer for the SysV IPC calls..
  *
  *
@@ -226,6 +227,7 @@ asmlinkage int sys_ipc(uint call, int first, int second, int third,
 		return -ENOSYS;
 		return -ENOSYS;
 	}
 	}
 }
 }
+#endif
 
 
 /* Fork a new task - this creates a new program thread.
 /* Fork a new task - this creates a new program thread.
  * This is called indirectly via a small wrapper
  * This is called indirectly via a small wrapper

+ 339 - 0
arch/arm/kernel/sys_oabi-compat.c

@@ -0,0 +1,339 @@
+/*
+ *  arch/arm/kernel/sys_oabi-compat.c
+ *
+ *  Compatibility wrappers for syscalls that are used from
+ *  old ABI user space binaries with an EABI kernel.
+ *
+ *  Author:	Nicolas Pitre
+ *  Created:	Oct 7, 2005
+ *  Copyright:	MontaVista Software, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License version 2 as
+ *  published by the Free Software Foundation.
+ */
+
+/*
+ * The legacy ABI and the new ARM EABI have different rules making some
+ * syscalls incompatible especially with structure arguments.
+ * Most notably, Eabi says 64-bit members should be 64-bit aligned instead of
+ * simply word aligned.  EABI also pads structures to the size of the largest
+ * member it contains instead of the invariant 32-bit.
+ *
+ * The following syscalls are affected:
+ *
+ * sys_stat64:
+ * sys_lstat64:
+ * sys_fstat64:
+ *
+ *   struct stat64 has different sizes and some members are shifted
+ *   Compatibility wrappers are needed for them and provided below.
+ *
+ * sys_fcntl64:
+ *
+ *   struct flock64 has different sizes and some members are shifted
+ *   A compatibility wrapper is needed and provided below.
+ *
+ * sys_statfs64:
+ * sys_fstatfs64:
+ *
+ *   struct statfs64 has extra padding with EABI growing its size from
+ *   84 to 88.  This struct is now __attribute__((packed,aligned(4)))
+ *   with a small assembly wrapper to force the sz argument to 84 if it is 88
+ *   to avoid copying the extra padding over user space unexpecting it.
+ *
+ * sys_newuname:
+ *
+ *   struct new_utsname has no padding with EABI.  No problem there.
+ *
+ * sys_epoll_ctl:
+ * sys_epoll_wait:
+ *
+ *   struct epoll_event has its second member shifted also affecting the
+ *   structure size. Compatibility wrappers are needed and provided below.
+ *
+ * sys_ipc:
+ * sys_semop:
+ * sys_semtimedop:
+ *
+ *   struct sembuf loses its padding with EABI.  Since arrays of them are
+ *   used they have to be copyed to remove the padding. Compatibility wrappers
+ *   provided below.
+ */
+
+#include <linux/syscalls.h>
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/fcntl.h>
+#include <linux/eventpoll.h>
+#include <linux/sem.h>
+#include <asm/ipc.h>
+#include <asm/uaccess.h>
+
+struct oldabi_stat64 {
+	unsigned long long st_dev;
+	unsigned int	__pad1;
+	unsigned long	__st_ino;
+	unsigned int	st_mode;
+	unsigned int	st_nlink;
+
+	unsigned long	st_uid;
+	unsigned long	st_gid;
+
+	unsigned long long st_rdev;
+	unsigned int	__pad2;
+
+	long long	st_size;
+	unsigned long	st_blksize;
+	unsigned long long st_blocks;
+
+	unsigned long	st_atime;
+	unsigned long	st_atime_nsec;
+
+	unsigned long	st_mtime;
+	unsigned long	st_mtime_nsec;
+
+	unsigned long	st_ctime;
+	unsigned long	st_ctime_nsec;
+
+	unsigned long long st_ino;
+} __attribute__ ((packed,aligned(4)));
+
+static long cp_oldabi_stat64(struct kstat *stat,
+			     struct oldabi_stat64 __user *statbuf)
+{
+	struct oldabi_stat64 tmp;
+
+	tmp.st_dev = huge_encode_dev(stat->dev);
+	tmp.__pad1 = 0;
+	tmp.__st_ino = stat->ino;
+	tmp.st_mode = stat->mode;
+	tmp.st_nlink = stat->nlink;
+	tmp.st_uid = stat->uid;
+	tmp.st_gid = stat->gid;
+	tmp.st_rdev = huge_encode_dev(stat->rdev);
+	tmp.st_size = stat->size;
+	tmp.st_blocks = stat->blocks;
+	tmp.__pad2 = 0;
+	tmp.st_blksize = stat->blksize;
+	tmp.st_atime = stat->atime.tv_sec;
+	tmp.st_atime_nsec = stat->atime.tv_nsec;
+	tmp.st_mtime = stat->mtime.tv_sec;
+	tmp.st_mtime_nsec = stat->mtime.tv_nsec;
+	tmp.st_ctime = stat->ctime.tv_sec;
+	tmp.st_ctime_nsec = stat->ctime.tv_nsec;
+	tmp.st_ino = stat->ino;
+	return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
+}
+
+asmlinkage long sys_oabi_stat64(char __user * filename,
+				struct oldabi_stat64 __user * statbuf)
+{
+	struct kstat stat;
+	int error = vfs_stat(filename, &stat);
+	if (!error)
+		error = cp_oldabi_stat64(&stat, statbuf);
+	return error;
+}
+
+asmlinkage long sys_oabi_lstat64(char __user * filename,
+				 struct oldabi_stat64 __user * statbuf)
+{
+	struct kstat stat;
+	int error = vfs_lstat(filename, &stat);
+	if (!error)
+		error = cp_oldabi_stat64(&stat, statbuf);
+	return error;
+}
+
+asmlinkage long sys_oabi_fstat64(unsigned long fd,
+				 struct oldabi_stat64 __user * statbuf)
+{
+	struct kstat stat;
+	int error = vfs_fstat(fd, &stat);
+	if (!error)
+		error = cp_oldabi_stat64(&stat, statbuf);
+	return error;
+}
+
+struct oabi_flock64 {
+	short	l_type;
+	short	l_whence;
+	loff_t	l_start;
+	loff_t	l_len;
+	pid_t	l_pid;
+} __attribute__ ((packed,aligned(4)));
+
+asmlinkage long sys_oabi_fcntl64(unsigned int fd, unsigned int cmd,
+				 unsigned long arg)
+{
+	struct oabi_flock64 user;
+	struct flock64 kernel;
+	mm_segment_t fs = USER_DS; /* initialized to kill a warning */
+	unsigned long local_arg = arg;
+	int ret;
+
+	switch (cmd) {
+	case F_GETLK64:
+	case F_SETLK64:
+	case F_SETLKW64:
+		if (copy_from_user(&user, (struct oabi_flock64 __user *)arg,
+				   sizeof(user)))
+			return -EFAULT;
+		kernel.l_type	= user.l_type;
+		kernel.l_whence	= user.l_whence;
+		kernel.l_start	= user.l_start;
+		kernel.l_len	= user.l_len;
+		kernel.l_pid	= user.l_pid;
+		local_arg = (unsigned long)&kernel;
+		fs = get_fs();
+		set_fs(KERNEL_DS);
+	}
+
+	ret = sys_fcntl64(fd, cmd, local_arg);
+
+	switch (cmd) {
+	case F_GETLK64:
+		if (!ret) {
+			user.l_type	= kernel.l_type;
+			user.l_whence	= kernel.l_whence;
+			user.l_start	= kernel.l_start;
+			user.l_len	= kernel.l_len;
+			user.l_pid	= kernel.l_pid;
+			if (copy_to_user((struct oabi_flock64 __user *)arg,
+					 &user, sizeof(user)))
+				ret = -EFAULT;
+		}
+	case F_SETLK64:
+	case F_SETLKW64:
+		set_fs(fs);
+	}
+
+	return ret;
+}
+
+struct oabi_epoll_event {
+	__u32 events;
+	__u64 data;
+} __attribute__ ((packed,aligned(4)));
+
+asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd,
+				   struct oabi_epoll_event __user *event)
+{
+	struct oabi_epoll_event user;
+	struct epoll_event kernel;
+	mm_segment_t fs;
+	long ret;
+
+	if (op == EPOLL_CTL_DEL)
+		return sys_epoll_ctl(epfd, op, fd, NULL);
+	if (copy_from_user(&user, event, sizeof(user)))
+		return -EFAULT;
+	kernel.events = user.events;
+	kernel.data   = user.data;
+	fs = get_fs();
+	set_fs(KERNEL_DS);
+	ret = sys_epoll_ctl(epfd, op, fd, &kernel);
+	set_fs(fs);
+	return ret;
+}
+
+asmlinkage long sys_oabi_epoll_wait(int epfd,
+				    struct oabi_epoll_event __user *events,
+				    int maxevents, int timeout)
+{
+	struct epoll_event *kbuf;
+	mm_segment_t fs;
+	long ret, err, i;
+
+	if (maxevents <= 0 || maxevents > (INT_MAX/sizeof(struct epoll_event)))
+		return -EINVAL;
+	kbuf = kmalloc(sizeof(*kbuf) * maxevents, GFP_KERNEL);
+	if (!kbuf)
+		return -ENOMEM;
+	fs = get_fs();
+	set_fs(KERNEL_DS);
+	ret = sys_epoll_wait(epfd, kbuf, maxevents, timeout);
+	set_fs(fs);
+	err = 0;
+	for (i = 0; i < ret; i++) {
+		__put_user_error(kbuf[i].events, &events->events, err);
+		__put_user_error(kbuf[i].data,   &events->data,   err);
+		events++;
+	}
+	kfree(kbuf);
+	return err ? -EFAULT : ret;
+}
+
+struct oabi_sembuf {
+	unsigned short	sem_num;
+	short		sem_op;
+	short		sem_flg;
+	unsigned short	__pad;
+};
+
+asmlinkage long sys_oabi_semtimedop(int semid,
+				    struct oabi_sembuf __user *tsops,
+				    unsigned nsops,
+				    const struct timespec __user *timeout)
+{
+	struct sembuf *sops;
+	struct timespec local_timeout;
+	long err;
+	int i;
+
+	if (nsops < 1)
+		return -EINVAL;
+	sops = kmalloc(sizeof(*sops) * nsops, GFP_KERNEL);
+	if (!sops)
+		return -ENOMEM;
+	err = 0;
+	for (i = 0; i < nsops; i++) {
+		__get_user_error(sops[i].sem_num, &tsops->sem_num, err);
+		__get_user_error(sops[i].sem_op,  &tsops->sem_op,  err);
+		__get_user_error(sops[i].sem_flg, &tsops->sem_flg, err);
+		tsops++;
+	}
+	if (timeout) {
+		/* copy this as well before changing domain protection */
+		err |= copy_from_user(&local_timeout, timeout, sizeof(*timeout));
+		timeout = &local_timeout;
+	}
+	if (err) {
+		err = -EFAULT;
+	} else {
+		mm_segment_t fs = get_fs();
+		set_fs(KERNEL_DS);
+		err = sys_semtimedop(semid, sops, nsops, timeout);
+		set_fs(fs);
+	}
+	kfree(sops);
+	return err;
+}
+
+asmlinkage long sys_oabi_semop(int semid, struct oabi_sembuf __user *tsops,
+			       unsigned nsops)
+{
+	return sys_oabi_semtimedop(semid, tsops, nsops, NULL);
+}
+
+extern asmlinkage int sys_ipc(uint call, int first, int second, int third,
+			      void __user *ptr, long fifth);
+
+asmlinkage int sys_oabi_ipc(uint call, int first, int second, int third,
+			    void __user *ptr, long fifth)
+{
+	switch (call & 0xffff) {
+	case SEMOP:
+		return  sys_oabi_semtimedop(first,
+					    (struct oabi_sembuf __user *)ptr,
+					    second, NULL);
+	case SEMTIMEDOP:
+		return  sys_oabi_semtimedop(first,
+					    (struct oabi_sembuf __user *)ptr,
+					    second,
+					    (const struct timespec __user *)fifth);
+	default:
+		return sys_ipc(call, first, second, third, ptr, fifth);
+	}
+}

+ 1 - 1
arch/arm/kernel/traps.c

@@ -404,7 +404,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
 	struct thread_info *thread = current_thread_info();
 	struct thread_info *thread = current_thread_info();
 	siginfo_t info;
 	siginfo_t info;
 
 
-	if ((no >> 16) != 0x9f)
+	if ((no >> 16) != (__ARM_NR_BASE>> 16))
 		return bad_syscall(no, regs);
 		return bad_syscall(no, regs);
 
 
 	switch (no & 0xffff) {
 	switch (no & 0xffff) {

+ 1 - 0
arch/arm/lib/ashldi3.S

@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA.  */
 #endif
 #endif
 
 
 ENTRY(__ashldi3)
 ENTRY(__ashldi3)
+ENTRY(__aeabi_llsl)
 
 
 	subs	r3, r2, #32
 	subs	r3, r2, #32
 	rsb	ip, r2, #32
 	rsb	ip, r2, #32

+ 1 - 0
arch/arm/lib/ashrdi3.S

@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA.  */
 #endif
 #endif
 
 
 ENTRY(__ashrdi3)
 ENTRY(__ashrdi3)
+ENTRY(__aeabi_lasr)
 
 
 	subs	r3, r2, #32
 	subs	r3, r2, #32
 	rsb	ip, r2, #32
 	rsb	ip, r2, #32

+ 25 - 2
arch/arm/lib/lib1funcs.S

@@ -206,6 +206,7 @@ Boston, MA 02111-1307, USA.  */
 
 
 
 
 ENTRY(__udivsi3)
 ENTRY(__udivsi3)
+ENTRY(__aeabi_uidiv)
 
 
 	subs	r2, r1, #1
 	subs	r2, r1, #1
 	moveq	pc, lr
 	moveq	pc, lr
@@ -246,6 +247,7 @@ ENTRY(__umodsi3)
 
 
 
 
 ENTRY(__divsi3)
 ENTRY(__divsi3)
+ENTRY(__aeabi_idiv)
 
 
 	cmp	r1, #0
 	cmp	r1, #0
 	eor	ip, r0, r1			@ save the sign of the result.
 	eor	ip, r0, r1			@ save the sign of the result.
@@ -303,12 +305,33 @@ ENTRY(__modsi3)
 	rsbmi	r0, r0, #0
 	rsbmi	r0, r0, #0
 	mov	pc, lr
 	mov	pc, lr
 
 
+#ifdef CONFIG_AEABI
+
+ENTRY(__aeabi_uidivmod)
+
+	stmfd	sp!, {r0, r1, ip, lr}
+	bl	__aeabi_uidiv
+	ldmfd	sp!, {r1, r2, ip, lr}
+	mul	r3, r0, r2
+	sub	r1, r1, r3
+	mov	pc, lr
+
+ENTRY(__aeabi_idivmod)
+
+	stmfd	sp!, {r0, r1, ip, lr}
+	bl	__aeabi_idiv
+	ldmfd	sp!, {r1, r2, ip, lr}
+	mul	r3, r0, r2
+	sub	r1, r1, r3
+	mov	pc, lr
+
+#endif
 
 
 Ldiv0:
 Ldiv0:
 
 
-	str	lr, [sp, #-4]!
+	str	lr, [sp, #-8]!
 	bl	__div0
 	bl	__div0
 	mov	r0, #0			@ About as wrong as it could be.
 	mov	r0, #0			@ About as wrong as it could be.
-	ldr	pc, [sp], #4
+	ldr	pc, [sp], #8
 
 
 
 

+ 1 - 0
arch/arm/lib/lshrdi3.S

@@ -37,6 +37,7 @@ Boston, MA 02110-1301, USA.  */
 #endif
 #endif
 
 
 ENTRY(__lshrdi3)
 ENTRY(__lshrdi3)
+ENTRY(__aeabi_llsr)
 
 
 	subs	r3, r2, #32
 	subs	r3, r2, #32
 	rsb	ip, r2, #32
 	rsb	ip, r2, #32

+ 1 - 0
arch/arm/lib/muldi3.S

@@ -25,6 +25,7 @@
 #endif
 #endif
 
 
 ENTRY(__muldi3)
 ENTRY(__muldi3)
+ENTRY(__aeabi_lmul)
 
 
 	mul	xh, yl, xh
 	mul	xh, yl, xh
 	mla	xh, xl, yh, xh
 	mla	xh, xl, yh, xh

+ 14 - 0
arch/arm/lib/ucmpdi2.S

@@ -10,6 +10,7 @@
  *  published by the Free Software Foundation.
  *  published by the Free Software Foundation.
  */
  */
 
 
+#include <linux/config.h>
 #include <linux/linkage.h>
 #include <linux/linkage.h>
 
 
 #ifdef __ARMEB__
 #ifdef __ARMEB__
@@ -33,3 +34,16 @@ ENTRY(__ucmpdi2)
 	movhi	r0, #2
 	movhi	r0, #2
 	mov	pc, lr
 	mov	pc, lr
 
 
+#ifdef CONFIG_AEABI
+
+ENTRY(__aeabi_ulcmp)
+
+	cmp	xh, yh
+	cmpeq	xl, yl
+	movlo	r0, #-1
+	moveq	r0, #0
+	movhi	r0, #1
+	mov	pc, lr
+
+#endif
+

+ 0 - 1
arch/arm/mach-aaec2000/aaed2000.c

@@ -90,7 +90,6 @@ static void __init aaed2000_map_io(void)
 
 
 MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform")
 MACHINE_START(AAED2000, "Agilent AAED-2000 Development Platform")
 	/* Maintainer: Nicolas Bellido Y Ortega */
 	/* Maintainer: Nicolas Bellido Y Ortega */
-	.phys_ram	= 0xf0000000,
 	.phys_io	= PIO_BASE,
 	.phys_io	= PIO_BASE,
 	.io_pg_offst	= ((VIO_BASE) >> 18) & 0xfffc,
 	.io_pg_offst	= ((VIO_BASE) >> 18) & 0xfffc,
 	.map_io		= aaed2000_map_io,
 	.map_io		= aaed2000_map_io,

+ 0 - 1
arch/arm/mach-at91rm9200/board-csb337.c

@@ -132,7 +132,6 @@ static void __init csb337_board_init(void)
 
 
 MACHINE_START(CSB337, "Cogent CSB337")
 MACHINE_START(CSB337, "Cogent CSB337")
 	/* Maintainer: Bill Gatliff */
 	/* Maintainer: Bill Gatliff */
-	.phys_ram	= AT91_SDRAM_BASE,
 	.phys_io	= AT91_BASE_SYS,
 	.phys_io	= AT91_BASE_SYS,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,

+ 0 - 1
arch/arm/mach-at91rm9200/board-csb637.c

@@ -105,7 +105,6 @@ static void __init csb637_board_init(void)
 
 
 MACHINE_START(CSB637, "Cogent CSB637")
 MACHINE_START(CSB637, "Cogent CSB637")
 	/* Maintainer: Bill Gatliff */
 	/* Maintainer: Bill Gatliff */
-	.phys_ram	= AT91_SDRAM_BASE,
 	.phys_io	= AT91_BASE_SYS,
 	.phys_io	= AT91_BASE_SYS,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,

+ 0 - 1
arch/arm/mach-at91rm9200/board-dk.c

@@ -127,7 +127,6 @@ static void __init dk_board_init(void)
 
 
 MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK")
 MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK")
 	/* Maintainer: SAN People/Atmel */
 	/* Maintainer: SAN People/Atmel */
-	.phys_ram	= AT91_SDRAM_BASE,
 	.phys_io	= AT91_BASE_SYS,
 	.phys_io	= AT91_BASE_SYS,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,

+ 0 - 1
arch/arm/mach-at91rm9200/board-ek.c

@@ -120,7 +120,6 @@ static void __init ek_board_init(void)
 
 
 MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK")
 MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK")
 	/* Maintainer: SAN People/Atmel */
 	/* Maintainer: SAN People/Atmel */
-	.phys_ram	= AT91_SDRAM_BASE,
 	.phys_io	= AT91_BASE_SYS,
 	.phys_io	= AT91_BASE_SYS,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.io_pg_offst	= (AT91_VA_BASE_SYS >> 18) & 0xfffc,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,
 	.boot_params	= AT91_SDRAM_BASE + 0x100,

+ 0 - 1
arch/arm/mach-clps711x/autcpu12.c

@@ -64,7 +64,6 @@ void __init autcpu12_map_io(void)
 
 
 MACHINE_START(AUTCPU12, "autronix autcpu12")
 MACHINE_START(AUTCPU12, "autronix autcpu12")
 	/* Maintainer: Thomas Gleixner */
 	/* Maintainer: Thomas Gleixner */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0020000,
 	.boot_params	= 0xc0020000,

+ 0 - 1
arch/arm/mach-clps711x/cdb89712.c

@@ -55,7 +55,6 @@ static void __init cdb89712_map_io(void)
 
 
 MACHINE_START(CDB89712, "Cirrus-CDB89712")
 MACHINE_START(CDB89712, "Cirrus-CDB89712")
 	/* Maintainer: Ray Lehtiniemi */
 	/* Maintainer: Ray Lehtiniemi */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-clps711x/ceiva.c

@@ -56,7 +56,6 @@ static void __init ceiva_map_io(void)
 
 
 MACHINE_START(CEIVA, "CEIVA/Polaroid Photo MAX Digital Picture Frame")
 MACHINE_START(CEIVA, "CEIVA/Polaroid Photo MAX Digital Picture Frame")
 	/* Maintainer: Rob Scott */
 	/* Maintainer: Rob Scott */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-clps711x/clep7312.c

@@ -38,7 +38,6 @@ fixup_clep7312(struct machine_desc *desc, struct tag *tags,
 
 
 MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312")
 MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312")
 	/* Maintainer: Nobody */
 	/* Maintainer: Nobody */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-clps711x/edb7211-arch.c

@@ -52,7 +52,6 @@ fixup_edb7211(struct machine_desc *desc, struct tag *tags,
 
 
 MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)")
 MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)")
 	/* Maintainer: Jon McClintock */
 	/* Maintainer: Jon McClintock */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0020100,	/* 0xc0000000 - 0xc001ffff can be video RAM */
 	.boot_params	= 0xc0020100,	/* 0xc0000000 - 0xc001ffff can be video RAM */

+ 0 - 1
arch/arm/mach-clps711x/fortunet.c

@@ -78,7 +78,6 @@ fortunet_fixup(struct machine_desc *desc, struct tag *tags,
 
 
 MACHINE_START(FORTUNET, "ARM-FortuNet")
 MACHINE_START(FORTUNET, "ARM-FortuNet")
 	/* Maintainer: FortuNet Inc. */
 	/* Maintainer: FortuNet Inc. */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf0000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf0000000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000000,
 	.boot_params	= 0x00000000,

+ 0 - 1
arch/arm/mach-clps711x/p720t.c

@@ -90,7 +90,6 @@ static void __init p720t_map_io(void)
 
 
 MACHINE_START(P720T, "ARM-Prospector720T")
 MACHINE_START(P720T, "ARM-Prospector720T")
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xff000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-clps7500/core.c

@@ -384,7 +384,6 @@ static void __init clps7500_init(void)
 
 
 MACHINE_START(CLPS7500, "CL-PS7500")
 MACHINE_START(CLPS7500, "CL-PS7500")
 	/* Maintainer: Philip Blundell */
 	/* Maintainer: Philip Blundell */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0x03000000,
 	.phys_io	= 0x03000000,
 	.io_pg_offst	= ((0xe0000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xe0000000) >> 18) & 0xfffc,
 	.map_io		= clps7500_map_io,
 	.map_io		= clps7500_map_io,

+ 0 - 1
arch/arm/mach-ebsa110/core.c

@@ -284,7 +284,6 @@ arch_initcall(ebsa110_init);
 
 
 MACHINE_START(EBSA110, "EBSA110")
 MACHINE_START(EBSA110, "EBSA110")
 	/* Maintainer: Russell King */
 	/* Maintainer: Russell King */
-	.phys_ram	= 0x00000000,
 	.phys_io	= 0xe0000000,
 	.phys_io	= 0xe0000000,
 	.io_pg_offst	= ((0xe0000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xe0000000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000400,
 	.boot_params	= 0x00000400,

+ 0 - 1
arch/arm/mach-footbridge/cats-hw.c

@@ -85,7 +85,6 @@ fixup_cats(struct machine_desc *desc, struct tag *tags,
 
 
 MACHINE_START(CATS, "Chalice-CATS")
 MACHINE_START(CATS, "Chalice-CATS")
 	/* Maintainer: Philip Blundell */
 	/* Maintainer: Philip Blundell */
-	.phys_ram	= 0x00000000,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-footbridge/co285.c

@@ -29,7 +29,6 @@ fixup_coebsa285(struct machine_desc *desc, struct tag *tags,
 
 
 MACHINE_START(CO285, "co-EBSA285")
 MACHINE_START(CO285, "co-EBSA285")
 	/* Maintainer: Mark van Doesburg */
 	/* Maintainer: Mark van Doesburg */
-	.phys_ram	= 0x00000000,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.io_pg_offst	= ((0x7cf00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0x7cf00000) >> 18) & 0xfffc,
 	.fixup		= fixup_coebsa285,
 	.fixup		= fixup_coebsa285,

+ 0 - 1
arch/arm/mach-footbridge/ebsa285.c

@@ -14,7 +14,6 @@
 
 
 MACHINE_START(EBSA285, "EBSA285")
 MACHINE_START(EBSA285, "EBSA285")
 	/* Maintainer: Russell King */
 	/* Maintainer: Russell King */
-	.phys_ram	= 0x00000000,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-footbridge/netwinder-hw.c

@@ -649,7 +649,6 @@ fixup_netwinder(struct machine_desc *desc, struct tag *tags,
 
 
 MACHINE_START(NETWINDER, "Rebel-NetWinder")
 MACHINE_START(NETWINDER, "Rebel-NetWinder")
 	/* Maintainer: Russell King/Rebel.com */
 	/* Maintainer: Russell King/Rebel.com */
-	.phys_ram	= 0x00000000,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-footbridge/personal.c

@@ -14,7 +14,6 @@
 
 
 MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer")
 MACHINE_START(PERSONAL_SERVER, "Compaq-PersonalServer")
 	/* Maintainer: Jamey Hicks / George France */
 	/* Maintainer: Jamey Hicks / George France */
-	.phys_ram	= 0x00000000,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.phys_io	= DC21285_ARMCSR_BASE,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfe000000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-h720x/h7201-eval.c

@@ -31,7 +31,6 @@
 
 
 MACHINE_START(H7201, "Hynix GMS30C7201")
 MACHINE_START(H7201, "Hynix GMS30C7201")
 	/* Maintainer: Robert Schwebel, Pengutronix */
 	/* Maintainer: Robert Schwebel, Pengutronix */
-	.phys_ram	= 0x40000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf0000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf0000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0001000,
 	.boot_params	= 0xc0001000,

+ 0 - 1
arch/arm/mach-h720x/h7202-eval.c

@@ -72,7 +72,6 @@ static void __init init_eval_h7202(void)
 
 
 MACHINE_START(H7202, "Hynix HMS30C7202")
 MACHINE_START(H7202, "Hynix HMS30C7202")
 	/* Maintainer: Robert Schwebel, Pengutronix */
 	/* Maintainer: Robert Schwebel, Pengutronix */
-	.phys_ram	= 0x40000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf0000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf0000000) >> 18) & 0xfffc,
 	.boot_params	= 0x40000100,
 	.boot_params	= 0x40000100,

+ 0 - 1
arch/arm/mach-imx/mx1ads.c

@@ -69,7 +69,6 @@ mx1ads_map_io(void)
 
 
 MACHINE_START(MX1ADS, "Motorola MX1ADS")
 MACHINE_START(MX1ADS, "Motorola MX1ADS")
 	/* Maintainer: Sascha Hauer, Pengutronix */
 	/* Maintainer: Sascha Hauer, Pengutronix */
-	.phys_ram	= 0x08000000,
 	.phys_io	= 0x00200000,
 	.phys_io	= 0x00200000,
 	.io_pg_offst	= ((0xe0200000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xe0200000) >> 18) & 0xfffc,
 	.boot_params	= 0x08000100,
 	.boot_params	= 0x08000100,

+ 0 - 1
arch/arm/mach-integrator/integrator_ap.c

@@ -347,7 +347,6 @@ static struct sys_timer ap_timer = {
 
 
 MACHINE_START(INTEGRATOR, "ARM-Integrator")
 MACHINE_START(INTEGRATOR, "ARM-Integrator")
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
-	.phys_ram	= 0x00000000,
 	.phys_io	= 0x16000000,
 	.phys_io	= 0x16000000,
 	.io_pg_offst	= ((0xf1600000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf1600000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-integrator/integrator_cp.c

@@ -578,7 +578,6 @@ static struct sys_timer cp_timer = {
 
 
 MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP")
 MACHINE_START(CINTEGRATOR, "ARM-IntegratorCP")
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
-	.phys_ram	= 0x00000000,
 	.phys_io	= 0x16000000,
 	.phys_io	= 0x16000000,
 	.io_pg_offst	= ((0xf1600000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf1600000) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 2
arch/arm/mach-iop3xx/iop321-setup.c

@@ -151,7 +151,6 @@ extern void iop321_init_time(void);
 #if defined(CONFIG_ARCH_IQ80321)
 #if defined(CONFIG_ARCH_IQ80321)
 MACHINE_START(IQ80321, "Intel IQ80321")
 MACHINE_START(IQ80321, "Intel IQ80321")
 	/* Maintainer: Intel Corporation */
 	/* Maintainer: Intel Corporation */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IQ80321_UART,
 	.phys_io	= IQ80321_UART,
 	.io_pg_offst	= ((IQ80321_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IQ80321_UART) >> 18) & 0xfffc,
 	.map_io		= iq80321_map_io,
 	.map_io		= iq80321_map_io,
@@ -163,7 +162,6 @@ MACHINE_END
 #elif defined(CONFIG_ARCH_IQ31244)
 #elif defined(CONFIG_ARCH_IQ31244)
 MACHINE_START(IQ31244, "Intel IQ31244")
 MACHINE_START(IQ31244, "Intel IQ31244")
 	/* Maintainer: Intel Corp. */
 	/* Maintainer: Intel Corp. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IQ31244_UART,
 	.phys_io	= IQ31244_UART,
 	.io_pg_offst	= ((IQ31244_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IQ31244_UART) >> 18) & 0xfffc,
 	.map_io		= iq31244_map_io,
 	.map_io		= iq31244_map_io,

+ 0 - 2
arch/arm/mach-iop3xx/iop331-setup.c

@@ -195,7 +195,6 @@ extern void iq80332_map_io(void);
 #if defined(CONFIG_ARCH_IQ80331)
 #if defined(CONFIG_ARCH_IQ80331)
 MACHINE_START(IQ80331, "Intel IQ80331")
 MACHINE_START(IQ80331, "Intel IQ80331")
 	/* Maintainer: Intel Corp. */
 	/* Maintainer: Intel Corp. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= 0xfefff000,
 	.phys_io	= 0xfefff000,
 	.io_pg_offst	= ((0xfffff000) >> 18) & 0xfffc, // virtual, physical
 	.io_pg_offst	= ((0xfffff000) >> 18) & 0xfffc, // virtual, physical
 	.map_io		= iq80331_map_io,
 	.map_io		= iq80331_map_io,
@@ -208,7 +207,6 @@ MACHINE_END
 #elif defined(CONFIG_MACH_IQ80332)
 #elif defined(CONFIG_MACH_IQ80332)
 MACHINE_START(IQ80332, "Intel IQ80332")
 MACHINE_START(IQ80332, "Intel IQ80332")
 	/* Maintainer: Intel Corp. */
 	/* Maintainer: Intel Corp. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= 0xfefff000,
 	.phys_io	= 0xfefff000,
 	.io_pg_offst	= ((0xfffff000) >> 18) & 0xfffc, // virtual, physical
 	.io_pg_offst	= ((0xfffff000) >> 18) & 0xfffc, // virtual, physical
 	.map_io		= iq80332_map_io,
 	.map_io		= iq80332_map_io,

+ 10 - 0
arch/arm/mach-ixp2000/core.c

@@ -105,6 +105,16 @@ static struct map_desc ixp2000_io_desc[] __initdata = {
 		.pfn		= __phys_to_pfn(IXP2000_MSF_PHYS_BASE),
 		.pfn		= __phys_to_pfn(IXP2000_MSF_PHYS_BASE),
 		.length		= IXP2000_MSF_SIZE,
 		.length		= IXP2000_MSF_SIZE,
 		.type		= MT_IXP2000_DEVICE,
 		.type		= MT_IXP2000_DEVICE,
+	}, {
+		.virtual	= IXP2000_SCRATCH_RING_VIRT_BASE,
+		.pfn		= __phys_to_pfn(IXP2000_SCRATCH_RING_PHYS_BASE),
+		.length		= IXP2000_SCRATCH_RING_SIZE,
+		.type		= MT_IXP2000_DEVICE,
+	}, {
+		.virtual	= IXP2000_SRAM0_VIRT_BASE,
+		.pfn		= __phys_to_pfn(IXP2000_SRAM0_PHYS_BASE),
+		.length		= IXP2000_SRAM0_SIZE,
+		.type		= MT_IXP2000_DEVICE,
 	}, {
 	}, {
 		.virtual	= IXP2000_PCI_IO_VIRT_BASE,
 		.virtual	= IXP2000_PCI_IO_VIRT_BASE,
 		.pfn		= __phys_to_pfn(IXP2000_PCI_IO_PHYS_BASE),
 		.pfn		= __phys_to_pfn(IXP2000_PCI_IO_PHYS_BASE),

+ 0 - 1
arch/arm/mach-ixp2000/enp2611.c

@@ -254,7 +254,6 @@ static void __init enp2611_init_machine(void)
 
 
 MACHINE_START(ENP2611, "Radisys ENP-2611 PCI network processor board")
 MACHINE_START(ENP2611, "Radisys ENP-2611 PCI network processor board")
 	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
 	/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
-	.phys_ram	= 0x00000000,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-ixp2000/ixdp2400.c

@@ -169,7 +169,6 @@ void ixdp2400_init_irq(void)
 
 
 MACHINE_START(IXDP2400, "Intel IXDP2400 Development Platform")
 MACHINE_START(IXDP2400, "Intel IXDP2400 Development Platform")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= 0x00000000,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-ixp2000/ixdp2800.c

@@ -285,7 +285,6 @@ void ixdp2800_init_irq(void)
 
 
 MACHINE_START(IXDP2800, "Intel IXDP2800 Development Platform")
 MACHINE_START(IXDP2800, "Intel IXDP2800 Development Platform")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= 0x00000000,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 2
arch/arm/mach-ixp2000/ixdp2x01.c

@@ -376,7 +376,6 @@ static void __init ixdp2x01_init_machine(void)
 #ifdef CONFIG_ARCH_IXDP2401
 #ifdef CONFIG_ARCH_IXDP2401
 MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform")
 MACHINE_START(IXDP2401, "Intel IXDP2401 Development Platform")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= 0x00000000,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,
@@ -390,7 +389,6 @@ MACHINE_END
 #ifdef CONFIG_ARCH_IXDP2801
 #ifdef CONFIG_ARCH_IXDP2801
 MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
 MACHINE_START(IXDP2801, "Intel IXDP2801 Development Platform")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= 0x00000000,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.phys_io	= IXP2000_UART_PHYS_BASE,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP2000_UART_VIRT_BASE) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 2
arch/arm/mach-ixp4xx/coyote-setup.c

@@ -101,7 +101,6 @@ static void __init coyote_init(void)
 #ifdef CONFIG_ARCH_ADI_COYOTE
 #ifdef CONFIG_ARCH_ADI_COYOTE
 MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote")
 MACHINE_START(ADI_COYOTE, "ADI Engineering Coyote")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.map_io		= ixp4xx_map_io,
 	.map_io		= ixp4xx_map_io,
@@ -119,7 +118,6 @@ MACHINE_END
 #ifdef CONFIG_MACH_IXDPG425
 #ifdef CONFIG_MACH_IXDPG425
 MACHINE_START(IXDPG425, "Intel IXDPG425")
 MACHINE_START(IXDPG425, "Intel IXDPG425")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.map_io		= ixp4xx_map_io,
 	.map_io		= ixp4xx_map_io,

+ 0 - 1
arch/arm/mach-ixp4xx/gtwx5715-setup.c

@@ -142,7 +142,6 @@ static void __init gtwx5715_init(void)
 
 
 MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)")
 MACHINE_START(GTWX5715, "Gemtek GTWX5715 (Linksys WRV54G)")
 	/* Maintainer: George Joseph */
 	/* Maintainer: George Joseph */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_UART2_BASE_PHYS,
 	.phys_io	= IXP4XX_UART2_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_UART2_BASE_VIRT) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP4XX_UART2_BASE_VIRT) >> 18) & 0xfffc,
 	.map_io		= ixp4xx_map_io,
 	.map_io		= ixp4xx_map_io,

+ 0 - 4
arch/arm/mach-ixp4xx/ixdp425-setup.c

@@ -121,7 +121,6 @@ static void __init ixdp425_init(void)
 #ifdef CONFIG_ARCH_IXDP425
 #ifdef CONFIG_ARCH_IXDP425
 MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
 MACHINE_START(IXDP425, "Intel IXDP425 Development Platform")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.map_io		= ixp4xx_map_io,
 	.map_io		= ixp4xx_map_io,
@@ -135,7 +134,6 @@ MACHINE_END
 #ifdef CONFIG_MACH_IXDP465
 #ifdef CONFIG_MACH_IXDP465
 MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
 MACHINE_START(IXDP465, "Intel IXDP465 Development Platform")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.map_io		= ixp4xx_map_io,
 	.map_io		= ixp4xx_map_io,
@@ -149,7 +147,6 @@ MACHINE_END
 #ifdef CONFIG_ARCH_PRPMC1100
 #ifdef CONFIG_ARCH_PRPMC1100
 MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
 MACHINE_START(IXCDP1100, "Intel IXCDP1100 Development Platform")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.map_io		= ixp4xx_map_io,
 	.map_io		= ixp4xx_map_io,
@@ -169,7 +166,6 @@ MACHINE_END
 #ifdef CONFIG_ARCH_AVILA
 #ifdef CONFIG_ARCH_AVILA
 MACHINE_START(AVILA, "Gateworks Avila Network Platform")
 MACHINE_START(AVILA, "Gateworks Avila Network Platform")
 	/* Maintainer: Deepak Saxena <dsaxena@plexity.net> */
 	/* Maintainer: Deepak Saxena <dsaxena@plexity.net> */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xfffc,
 	.map_io		= ixp4xx_map_io,
 	.map_io		= ixp4xx_map_io,

+ 0 - 1
arch/arm/mach-ixp4xx/nas100d-setup.c

@@ -124,7 +124,6 @@ static void __init nas100d_init(void)
 
 
 MACHINE_START(NAS100D, "Iomega NAS 100d")
 MACHINE_START(NAS100D, "Iomega NAS 100d")
 	/* Maintainer: www.nslu2-linux.org */
 	/* Maintainer: www.nslu2-linux.org */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-ixp4xx/nslu2-setup.c

@@ -123,7 +123,6 @@ static void __init nslu2_init(void)
 
 
 MACHINE_START(NSLU2, "Linksys NSLU2")
 MACHINE_START(NSLU2, "Linksys NSLU2")
 	/* Maintainer: www.nslu2-linux.org */
 	/* Maintainer: www.nslu2-linux.org */
-	.phys_ram	= PHYS_OFFSET,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.phys_io	= IXP4XX_PERIPHERAL_BASE_PHYS,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC,
 	.io_pg_offst	= ((IXP4XX_PERIPHERAL_BASE_VIRT) >> 18) & 0xFFFC,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-l7200/core.c

@@ -91,7 +91,6 @@ static void __init l7200_map_io(void)
 
 
 MACHINE_START(L7200, "LinkUp Systems L7200")
 MACHINE_START(L7200, "LinkUp Systems L7200")
 	/* Maintainer: Steve Hill / Scott McConnell */
 	/* Maintainer: Steve Hill / Scott McConnell */
-	.phys_ram	= 0xf0000000,
 	.phys_io	= 0x80040000,
 	.phys_io	= 0x80040000,
 	.io_pg_offst	= ((0xd0000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xd0000000) >> 18) & 0xfffc,
 	.map_io		= l7200_map_io,
 	.map_io		= l7200_map_io,

+ 0 - 1
arch/arm/mach-lh7a40x/arch-kev7a400.c

@@ -112,7 +112,6 @@ void __init lh7a40x_init_board_irq (void)
 
 
 MACHINE_START (KEV7A400, "Sharp KEV7a400")
 MACHINE_START (KEV7A400, "Sharp KEV7a400")
 	/* Maintainer: Marc Singer */
 	/* Maintainer: Marc Singer */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((io_p2v (0x80000000))>>18) & 0xfffc,
 	.io_pg_offst	= ((io_p2v (0x80000000))>>18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 2
arch/arm/mach-lh7a40x/arch-lpd7a40x.c

@@ -317,7 +317,6 @@ lpd7a400_map_io(void)
 
 
 MACHINE_START (LPD7A400, "Logic Product Development LPD7A400-10")
 MACHINE_START (LPD7A400, "Logic Product Development LPD7A400-10")
 	/* Maintainer: Marc Singer */
 	/* Maintainer: Marc Singer */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((io_p2v (0x80000000))>>18) & 0xfffc,
 	.io_pg_offst	= ((io_p2v (0x80000000))>>18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,
@@ -333,7 +332,6 @@ MACHINE_END
 
 
 MACHINE_START (LPD7A404, "Logic Product Development LPD7A404-10")
 MACHINE_START (LPD7A404, "Logic Product Development LPD7A404-10")
 	/* Maintainer: Marc Singer */
 	/* Maintainer: Marc Singer */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((io_p2v (0x80000000))>>18) & 0xfffc,
 	.io_pg_offst	= ((io_p2v (0x80000000))>>18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-omap1/board-generic.c

@@ -109,7 +109,6 @@ static void __init omap_generic_map_io(void)
 
 
 MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
 MACHINE_START(OMAP_GENERIC, "Generic OMAP1510/1610/1710")
 	/* Maintainer: Tony Lindgren <tony@atomide.com> */
 	/* Maintainer: Tony Lindgren <tony@atomide.com> */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-h2.c

@@ -199,7 +199,6 @@ static void __init h2_map_io(void)
 
 
 MACHINE_START(OMAP_H2, "TI-H2")
 MACHINE_START(OMAP_H2, "TI-H2")
 	/* Maintainer: Imre Deak <imre.deak@nokia.com> */
 	/* Maintainer: Imre Deak <imre.deak@nokia.com> */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-h3.c

@@ -215,7 +215,6 @@ static void __init h3_map_io(void)
 
 
 MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board")
 MACHINE_START(OMAP_H3, "TI OMAP1710 H3 board")
 	/* Maintainer: Texas Instruments, Inc. */
 	/* Maintainer: Texas Instruments, Inc. */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-innovator.c

@@ -303,7 +303,6 @@ static void __init innovator_map_io(void)
 
 
 MACHINE_START(OMAP_INNOVATOR, "TI-Innovator")
 MACHINE_START(OMAP_INNOVATOR, "TI-Innovator")
 	/* Maintainer: MontaVista Software, Inc. */
 	/* Maintainer: MontaVista Software, Inc. */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-netstar.c

@@ -149,7 +149,6 @@ postcore_initcall(netstar_late_init);
 
 
 MACHINE_START(NETSTAR, "NetStar OMAP5910")
 MACHINE_START(NETSTAR, "NetStar OMAP5910")
 	/* Maintainer: Ladislav Michl <michl@2n.cz> */
 	/* Maintainer: Ladislav Michl <michl@2n.cz> */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-osk.c

@@ -274,7 +274,6 @@ static void __init osk_map_io(void)
 
 
 MACHINE_START(OMAP_OSK, "TI-OSK")
 MACHINE_START(OMAP_OSK, "TI-OSK")
 	/* Maintainer: Dirk Behme <dirk.behme@de.bosch.com> */
 	/* Maintainer: Dirk Behme <dirk.behme@de.bosch.com> */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-palmte.c

@@ -76,7 +76,6 @@ static void __init omap_generic_map_io(void)
 }
 }
 
 
 MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E")
 MACHINE_START(OMAP_PALMTE, "OMAP310 based Palm Tungsten E")
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-perseus2.c

@@ -199,7 +199,6 @@ static void __init omap_perseus2_map_io(void)
 
 
 MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2")
 MACHINE_START(OMAP_PERSEUS2, "OMAP730 Perseus2")
 	/* Maintainer: Kevin Hilman <kjh@hilman.org> */
 	/* Maintainer: Kevin Hilman <kjh@hilman.org> */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap1/board-voiceblue.c

@@ -281,7 +281,6 @@ EXPORT_SYMBOL(voiceblue_wdt_ping);
 
 
 MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910")
 MACHINE_START(VOICEBLUE, "VoiceBlue OMAP5910")
 	/* Maintainer: Ladislav Michl <michl@2n.cz> */
 	/* Maintainer: Ladislav Michl <michl@2n.cz> */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0xfff00000,
 	.phys_io	= 0xfff00000,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xfef00000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-omap2/board-generic.c

@@ -69,7 +69,6 @@ static void __init omap_generic_map_io(void)
 
 
 MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
 MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
 	/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
 	/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
-	.phys_ram	= 0x80000000,
 	.phys_io	= 0x48000000,
 	.phys_io	= 0x48000000,
 	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
 	.boot_params	= 0x80000100,
 	.boot_params	= 0x80000100,

+ 0 - 1
arch/arm/mach-omap2/board-h4.c

@@ -186,7 +186,6 @@ static void __init omap_h4_map_io(void)
 
 
 MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
 MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
 	/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
 	/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
-	.phys_ram	= 0x80000000,
 	.phys_io	= 0x48000000,
 	.phys_io	= 0x48000000,
 	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xd8000000) >> 18) & 0xfffc,
 	.boot_params	= 0x80000100,
 	.boot_params	= 0x80000100,

+ 0 - 3
arch/arm/mach-pxa/corgi.c

@@ -342,7 +342,6 @@ static void __init fixup_corgi(struct machine_desc *desc,
 
 
 #ifdef CONFIG_MACH_CORGI
 #ifdef CONFIG_MACH_CORGI
 MACHINE_START(CORGI, "SHARP Corgi")
 MACHINE_START(CORGI, "SHARP Corgi")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup		= fixup_corgi,
 	.fixup		= fixup_corgi,
@@ -355,7 +354,6 @@ MACHINE_END
 
 
 #ifdef CONFIG_MACH_SHEPHERD
 #ifdef CONFIG_MACH_SHEPHERD
 MACHINE_START(SHEPHERD, "SHARP Shepherd")
 MACHINE_START(SHEPHERD, "SHARP Shepherd")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup		= fixup_corgi,
 	.fixup		= fixup_corgi,
@@ -368,7 +366,6 @@ MACHINE_END
 
 
 #ifdef CONFIG_MACH_HUSKY
 #ifdef CONFIG_MACH_HUSKY
 MACHINE_START(HUSKY, "SHARP Husky")
 MACHINE_START(HUSKY, "SHARP Husky")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup		= fixup_corgi,
 	.fixup		= fixup_corgi,

+ 0 - 1
arch/arm/mach-pxa/idp.c

@@ -183,7 +183,6 @@ static void __init idp_map_io(void)
 
 
 MACHINE_START(PXA_IDP, "Vibren PXA255 IDP")
 MACHINE_START(PXA_IDP, "Vibren PXA255 IDP")
 	/* Maintainer: Vibren Technologies */
 	/* Maintainer: Vibren Technologies */
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.map_io		= idp_map_io,
 	.map_io		= idp_map_io,

+ 0 - 1
arch/arm/mach-pxa/lubbock.c

@@ -437,7 +437,6 @@ static void __init lubbock_map_io(void)
 
 
 MACHINE_START(LUBBOCK, "Intel DBPXA250 Development Platform (aka Lubbock)")
 MACHINE_START(LUBBOCK, "Intel DBPXA250 Development Platform (aka Lubbock)")
 	/* Maintainer: MontaVista Software Inc. */
 	/* Maintainer: MontaVista Software Inc. */
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.map_io		= lubbock_map_io,
 	.map_io		= lubbock_map_io,

+ 0 - 1
arch/arm/mach-pxa/mainstone.c

@@ -489,7 +489,6 @@ static void __init mainstone_map_io(void)
 
 
 MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)")
 MACHINE_START(MAINSTONE, "Intel HCDDBBVA0 Development Platform (aka Mainstone)")
 	/* Maintainer: MontaVista Software Inc. */
 	/* Maintainer: MontaVista Software Inc. */
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.map_io		= mainstone_map_io,
 	.map_io		= mainstone_map_io,

+ 0 - 1
arch/arm/mach-pxa/poodle.c

@@ -311,7 +311,6 @@ static void __init fixup_poodle(struct machine_desc *desc,
 }
 }
 
 
 MACHINE_START(POODLE, "SHARP Poodle")
 MACHINE_START(POODLE, "SHARP Poodle")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup		= fixup_poodle,
 	.fixup		= fixup_poodle,

+ 0 - 3
arch/arm/mach-pxa/spitz.c

@@ -497,7 +497,6 @@ static void __init fixup_spitz(struct machine_desc *desc,
 
 
 #ifdef CONFIG_MACH_SPITZ
 #ifdef CONFIG_MACH_SPITZ
 MACHINE_START(SPITZ, "SHARP Spitz")
 MACHINE_START(SPITZ, "SHARP Spitz")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup		= fixup_spitz,
 	.fixup		= fixup_spitz,
@@ -510,7 +509,6 @@ MACHINE_END
 
 
 #ifdef CONFIG_MACH_BORZOI
 #ifdef CONFIG_MACH_BORZOI
 MACHINE_START(BORZOI, "SHARP Borzoi")
 MACHINE_START(BORZOI, "SHARP Borzoi")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup		= fixup_spitz,
 	.fixup		= fixup_spitz,
@@ -523,7 +521,6 @@ MACHINE_END
 
 
 #ifdef CONFIG_MACH_AKITA
 #ifdef CONFIG_MACH_AKITA
 MACHINE_START(AKITA, "SHARP Akita")
 MACHINE_START(AKITA, "SHARP Akita")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup		= fixup_spitz,
 	.fixup		= fixup_spitz,

+ 0 - 1
arch/arm/mach-pxa/tosa.c

@@ -295,7 +295,6 @@ static void __init fixup_tosa(struct machine_desc *desc,
 }
 }
 
 
 MACHINE_START(TOSA, "SHARP Tosa")
 MACHINE_START(TOSA, "SHARP Tosa")
-	.phys_ram	= 0xa0000000,
 	.phys_io	= 0x40000000,
 	.phys_io	= 0x40000000,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.io_pg_offst	= (io_p2v(0x40000000) >> 18) & 0xfffc,
 	.fixup          = fixup_tosa,
 	.fixup          = fixup_tosa,

+ 0 - 1
arch/arm/mach-realview/Kconfig

@@ -3,7 +3,6 @@ menu "RealView platform type"
 
 
 config MACH_REALVIEW_EB
 config MACH_REALVIEW_EB
 	bool "Support RealView/EB platform"
 	bool "Support RealView/EB platform"
-	default n
 	select ARM_GIC
 	select ARM_GIC
 	help
 	help
 	  Include support for the ARM(R) RealView Emulation Baseboard platform.
 	  Include support for the ARM(R) RealView Emulation Baseboard platform.

+ 0 - 1
arch/arm/mach-realview/realview_eb.c

@@ -166,7 +166,6 @@ static void __init realview_eb_init(void)
 
 
 MACHINE_START(REALVIEW_EB, "ARM-RealView EB")
 MACHINE_START(REALVIEW_EB, "ARM-RealView EB")
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
 	/* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */
-	.phys_ram	= 0x00000000,
 	.phys_io	= REALVIEW_UART0_BASE,
 	.phys_io	= REALVIEW_UART0_BASE,
 	.io_pg_offst	= (IO_ADDRESS(REALVIEW_UART0_BASE) >> 18) & 0xfffc,
 	.io_pg_offst	= (IO_ADDRESS(REALVIEW_UART0_BASE) >> 18) & 0xfffc,
 	.boot_params	= 0x00000100,
 	.boot_params	= 0x00000100,

+ 0 - 1
arch/arm/mach-rpc/riscpc.c

@@ -177,7 +177,6 @@ extern struct sys_timer ioc_timer;
 
 
 MACHINE_START(RISCPC, "Acorn-RiscPC")
 MACHINE_START(RISCPC, "Acorn-RiscPC")
 	/* Maintainer: Russell King */
 	/* Maintainer: Russell King */
-	.phys_ram	= 0x10000000,
 	.phys_io	= 0x03000000,
 	.phys_io	= 0x03000000,
 	.io_pg_offst	= ((0xe0000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xe0000000) >> 18) & 0xfffc,
 	.boot_params	= 0x10000100,
 	.boot_params	= 0x10000100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-anubis.c

@@ -294,7 +294,6 @@ static void __init anubis_map_io(void)
 
 
 MACHINE_START(ANUBIS, "Simtec-Anubis")
 MACHINE_START(ANUBIS, "Simtec-Anubis")
 	/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
 	/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-bast.c

@@ -527,7 +527,6 @@ static void __init bast_init(void)
 
 
 MACHINE_START(BAST, "Simtec-BAST")
 MACHINE_START(BAST, "Simtec-BAST")
 	/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
 	/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-h1940.c

@@ -171,7 +171,6 @@ static void __init h1940_init(void)
 
 
 MACHINE_START(H1940, "IPAQ-H1940")
 MACHINE_START(H1940, "IPAQ-H1940")
 	/* Maintainer: Ben Dooks <ben@fluff.org> */
 	/* Maintainer: Ben Dooks <ben@fluff.org> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-n30.c

@@ -128,7 +128,6 @@ MACHINE_START(N30, "Acer-N30")
 	/* Maintainer: Christer Weinigel <christer@weinigel.se>,
 	/* Maintainer: Christer Weinigel <christer@weinigel.se>,
 				Ben Dooks <ben-linux@fluff.org>
 				Ben Dooks <ben-linux@fluff.org>
 	*/
 	*/
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-nexcoder.c

@@ -148,7 +148,6 @@ static void __init nexcoder_map_io(void)
 
 
 MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440")
 MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440")
 	/* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */
 	/* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-otom.c

@@ -116,7 +116,6 @@ static void __init otom11_map_io(void)
 
 
 MACHINE_START(OTOM, "Nex Vision - Otom 1.1")
 MACHINE_START(OTOM, "Nex Vision - Otom 1.1")
 	/* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */
 	/* Maintainer: Guillaume GOURAT <guillaume.gourat@nexvision.tv> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-rx3715.c

@@ -205,7 +205,6 @@ static void __init rx3715_init_machine(void)
 
 
 MACHINE_START(RX3715, "IPAQ-RX3715")
 MACHINE_START(RX3715, "IPAQ-RX3715")
 	/* Maintainer: Ben Dooks <ben@fluff.org> */
 	/* Maintainer: Ben Dooks <ben@fluff.org> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-smdk2410.c

@@ -115,7 +115,6 @@ static void __init smdk2410_init_irq(void)
 MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch
 MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch
 				    * to SMDK2410 */
 				    * to SMDK2410 */
 	/* Maintainer: Jonas Dietsche */
 	/* Maintainer: Jonas Dietsche */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-smdk2440.c

@@ -216,7 +216,6 @@ static void __init smdk2440_machine_init(void)
 
 
 MACHINE_START(S3C2440, "SMDK2440")
 MACHINE_START(S3C2440, "SMDK2440")
 	/* Maintainer: Ben Dooks <ben@fluff.org> */
 	/* Maintainer: Ben Dooks <ben@fluff.org> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-s3c2410/mach-vr1000.c

@@ -395,7 +395,6 @@ static void __init vr1000_map_io(void)
 
 
 MACHINE_START(VR1000, "Thorcom-VR1000")
 MACHINE_START(VR1000, "Thorcom-VR1000")
 	/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
 	/* Maintainer: Ben Dooks <ben@simtec.co.uk> */
-	.phys_ram	= S3C2410_SDRAM_PA,
 	.phys_io	= S3C2410_PA_UART,
 	.phys_io	= S3C2410_PA_UART,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.io_pg_offst	= (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,
 	.boot_params	= S3C2410_SDRAM_PA + 0x100,

+ 0 - 1
arch/arm/mach-sa1100/assabet.c

@@ -447,7 +447,6 @@ static void __init assabet_map_io(void)
 
 
 
 
 MACHINE_START(ASSABET, "Intel-Assabet")
 MACHINE_START(ASSABET, "Intel-Assabet")
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-sa1100/badge4.c

@@ -297,7 +297,6 @@ static void __init badge4_map_io(void)
 }
 }
 
 
 MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4")
 MACHINE_START(BADGE4, "Hewlett-Packard Laboratories BadgePAD 4")
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-sa1100/cerf.c

@@ -135,7 +135,6 @@ static void __init cerf_init(void)
 
 
 MACHINE_START(CERF, "Intrinsyc CerfBoard/CerfCube")
 MACHINE_START(CERF, "Intrinsyc CerfBoard/CerfCube")
 	/* Maintainer: support@intrinsyc.com */
 	/* Maintainer: support@intrinsyc.com */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.map_io		= cerf_map_io,
 	.map_io		= cerf_map_io,

+ 0 - 1
arch/arm/mach-sa1100/collie.c

@@ -191,7 +191,6 @@ static void __init collie_map_io(void)
 }
 }
 
 
 MACHINE_START(COLLIE, "Sharp-Collie")
 MACHINE_START(COLLIE, "Sharp-Collie")
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.map_io		= collie_map_io,
 	.map_io		= collie_map_io,

+ 0 - 3
arch/arm/mach-sa1100/h3600.c

@@ -392,7 +392,6 @@ static void __init h3100_map_io(void)
 }
 }
 
 
 MACHINE_START(H3100, "Compaq iPAQ H3100")
 MACHINE_START(H3100, "Compaq iPAQ H3100")
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,
@@ -510,7 +509,6 @@ static void __init h3600_map_io(void)
 }
 }
 
 
 MACHINE_START(H3600, "Compaq iPAQ H3600")
 MACHINE_START(H3600, "Compaq iPAQ H3600")
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,
@@ -897,7 +895,6 @@ static void __init h3800_map_io(void)
 }
 }
 
 
 MACHINE_START(H3800, "Compaq iPAQ H3800")
 MACHINE_START(H3800, "Compaq iPAQ H3800")
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-sa1100/hackkit.c

@@ -195,7 +195,6 @@ static void __init hackkit_init(void)
  */
  */
 
 
 MACHINE_START(HACKKIT, "HackKit Cpu Board")
 MACHINE_START(HACKKIT, "HackKit Cpu Board")
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

+ 0 - 1
arch/arm/mach-sa1100/jornada720.c

@@ -173,7 +173,6 @@ static void __init jornada720_mach_init(void)
 
 
 MACHINE_START(JORNADA720, "HP Jornada 720")
 MACHINE_START(JORNADA720, "HP Jornada 720")
 	/* Maintainer: Michael Gernoth <michael@gernoth.net> */
 	/* Maintainer: Michael Gernoth <michael@gernoth.net> */
-	.phys_ram	= 0xc0000000,
 	.phys_io	= 0x80000000,
 	.phys_io	= 0x80000000,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.io_pg_offst	= ((0xf8000000) >> 18) & 0xfffc,
 	.boot_params	= 0xc0000100,
 	.boot_params	= 0xc0000100,

Some files were not shown because too many files changed in this diff