Procházet zdrojové kódy

RealView: Make more vmalloc space by changing IO_ADDRESS

Since boards like PB11MPCore have 512MB of RAM and 128MB of flash, the
virtual space is short on vmalloc memory and mapping the flash fails.
This patch changes the IO_ADDRESS so that static mappings start at
0xfc000000 and moves the PCI virtual addresses higher up. The new
VMALLOC_END is set to 0xf8000000 (512MB higher than the old value).

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Catalin Marinas před 16 roky
rodič
revize
877d1f3389

+ 1 - 1
arch/arm/mach-realview/include/mach/debug-macro.S

@@ -35,7 +35,7 @@
 		mrc	p15, 0, \rx, c1, c0
 		mrc	p15, 0, \rx, c1, c0
 		tst	\rx, #1			@ MMU enabled?
 		tst	\rx, #1			@ MMU enabled?
 		moveq	\rx,      #0x10000000
 		moveq	\rx,      #0x10000000
-		movne	\rx,      #0xf0000000	@ virtual base
+		movne	\rx,      #0xfb000000	@ virtual base
 		orr	\rx, \rx, #DEBUG_LL_UART_OFFSET
 		orr	\rx, \rx, #DEBUG_LL_UART_OFFSET
 		.endm
 		.endm
 
 

+ 8 - 1
arch/arm/mach-realview/include/mach/hardware.h

@@ -25,7 +25,14 @@
 #include <asm/sizes.h>
 #include <asm/sizes.h>
 
 
 /* macro to get at IO space when running virtually */
 /* macro to get at IO space when running virtually */
-#define IO_ADDRESS(x)		(((x) & 0x0fffffff) + 0xf0000000)
+/*
+ * Statically mapped addresses:
+ *
+ * 10xx xxxx -> fbxx xxxx
+ * 1exx xxxx -> fdxx xxxx
+ * 1fxx xxxx -> fexx xxxx
+ */
+#define IO_ADDRESS(x)		(((x) & 0x03ffffff) + 0xfb000000)
 #define __io_address(n)		__io(IO_ADDRESS(n))
 #define __io_address(n)		__io(IO_ADDRESS(n))
 
 
 #endif
 #endif

+ 1 - 1
arch/arm/mach-realview/include/mach/vmalloc.h

@@ -18,4 +18,4 @@
  * along with this program; if not, write to the Free Software
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
  */
-#define VMALLOC_END		(PAGE_OFFSET + 0x18000000)
+#define VMALLOC_END		0xf8000000