summaryrefslogtreecommitdiffstats
path: root/target/linux/ixp4xx/patches-3.3/000-adjust_virtual_addresses.patch
blob: 0091fa4ad2c6f3bd8557b481a6afd12122826ca5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
The current fixed physical/virtual mappings for the internal peripherals
of the ixp4xx SoC devices is using a virtual address outside of the vmalloc
region. This results in kernel warnings like this on the boot console:

  BUG: mapping for 0xc8000000 at 0xffbeb000 out of vmalloc space
  BUG: mapping for 0xc4000000 at 0xffbfe000 out of vmalloc space
  BUG: mapping for 0xc0000000 at 0xffbff000 out of vmalloc space

The virtual kernel memory layout lists this for the vmalloc region:

    ...
    vmalloc : 0xc2800000 - 0xff000000   ( 968 MB)
    ...

With a little adjustment to the virtual address used we can map these
internal devices in the vmalloc region.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>

---
arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

--- a/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h
+++ b/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h
@@ -32,11 +32,11 @@
  *
  * 0x6000000	0x00004000	ioremap'd	QMgr
  *
- * 0xC0000000	0x00001000	0xffbff000	PCI CFG
+ * 0xC0000000	0x00001000	0xfebff000	PCI CFG
  *
- * 0xC4000000	0x00001000	0xffbfe000	EXP CFG
+ * 0xC4000000	0x00001000	0xfebfe000	EXP CFG
  *
- * 0xC8000000	0x00013000	0xffbeb000	On-Chip Peripherals
+ * 0xC8000000	0x00013000	0xfebeb000	On-Chip Peripherals
  */
 
 /*
@@ -49,21 +49,21 @@
  * Expansion BUS Configuration registers
  */
 #define IXP4XX_EXP_CFG_BASE_PHYS	(0xC4000000)
-#define IXP4XX_EXP_CFG_BASE_VIRT	(0xFFBFE000)
+#define IXP4XX_EXP_CFG_BASE_VIRT	(0xFEBFE000)
 #define IXP4XX_EXP_CFG_REGION_SIZE	(0x00001000)
 
 /*
  * PCI Config registers
  */
 #define IXP4XX_PCI_CFG_BASE_PHYS	(0xC0000000)
-#define	IXP4XX_PCI_CFG_BASE_VIRT	(0xFFBFF000)
+#define	IXP4XX_PCI_CFG_BASE_VIRT	(0xFEBFF000)
 #define IXP4XX_PCI_CFG_REGION_SIZE	(0x00001000)
 
 /*
  * Peripheral space
  */
 #define IXP4XX_PERIPHERAL_BASE_PHYS	(0xC8000000)
-#define IXP4XX_PERIPHERAL_BASE_VIRT	(0xFFBEB000)
+#define IXP4XX_PERIPHERAL_BASE_VIRT	(0xFEBEB000)
 #define IXP4XX_PERIPHERAL_REGION_SIZE	(0x00013000)
 
 /*
@@ -73,7 +73,7 @@
  * aligned so that it * can be used with the low-level debug code.
  */
 #define	IXP4XX_DEBUG_UART_BASE_PHYS	(0xC8000000)
-#define	IXP4XX_DEBUG_UART_BASE_VIRT	(0xffb00000)
+#define	IXP4XX_DEBUG_UART_BASE_VIRT	(0xfeb00000)
 #define	IXP4XX_DEBUG_UART_REGION_SIZE	(0x00001000)
 
 #define IXP4XX_EXP_CS0_OFFSET	0x00