diff mbox

ARM: ixp4xx: move fixed mapping of internal devices into vmalloc region

Message ID 1346996400-5824-1-git-send-email-gerg@snapgear.com (mailing list archive)
State New, archived
Headers show

Commit Message

Greg Ungerer Sept. 7, 2012, 5:40 a.m. UTC
From: Greg Ungerer <gerg@uclinux.org>

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(-)

Comments

Arnd Bergmann Sept. 7, 2012, 12:23 p.m. UTC | #1
On Friday 07 September 2012, gerg@snapgear.com wrote:
> 
> From: Greg Ungerer <gerg@uclinux.org>
> 
> 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>

Acked-by: Arnd Bergmann <arnd@arndb.de>

Imre, Krzysztof: do you prefer to take this patch into a branch of yours
and send a pull request, or should we just apply it directly into arm-soc.
In the former case, can you provide an Ack?

	Arnd
Krzysztof Halasa Sept. 7, 2012, 1:13 p.m. UTC | #2
Arnd Bergmann <arnd@arndb.de> writes:

>>   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

> Imre, Krzysztof: do you prefer to take this patch into a branch of yours
> and send a pull request, or should we just apply it directly into arm-soc.
> In the former case, can you provide an Ack?

My intention is to push the following instead:

http://git.kernel.org/?p=linux/kernel/git/chris/linux.git;a=commitdiff;h=f62736b567ff532fb772afea76fccdbcd92ab473;hp=23e3b6cf1c37ef0615d90681d3705a8821305b5f
Arnd Bergmann Sept. 7, 2012, 1:23 p.m. UTC | #3
On Friday 07 September 2012, Krzysztof Halasa wrote:
> >>   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
> 
> > Imre, Krzysztof: do you prefer to take this patch into a branch of yours
> > and send a pull request, or should we just apply it directly into arm-soc.
> > In the former case, can you provide an Ack?
> 
> My intention is to push the following instead:
> 
> http://git.kernel.org/?p=linux/kernel/git/chris/linux.git;a=commitdiff;h=f62736b567ff532fb772afea76fccdbcd92ab473;hp=23e3b6cf1c37ef0615d90681d3705a8821305b5f
> 

Ok, fine with me. I noticed however that this is missing
a changelog. Maybe you can take the text that Greg sent.

I also wonder if this patch needs to be applied to earlier
versions as well. Is linux-3.6 still working?

	Arnd
Greg Ungerer Sept. 7, 2012, 2:15 p.m. UTC | #4
On 09/07/2012 11:23 PM, Arnd Bergmann wrote:
> On Friday 07 September 2012, Krzysztof Halasa wrote:
>>>>    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
>>
>>> Imre, Krzysztof: do you prefer to take this patch into a branch of yours
>>> and send a pull request, or should we just apply it directly into arm-soc.
>>> In the former case, can you provide an Ack?
>>
>> My intention is to push the following instead:
>>
>> http://git.kernel.org/?p=linux/kernel/git/chris/linux.git;a=commitdiff;h=f62736b567ff532fb772afea76fccdbcd92ab473;hp=23e3b6cf1c37ef0615d90681d3705a8821305b5f
>>
>
> Ok, fine with me. I noticed however that this is missing
> a changelog. Maybe you can take the text that Greg sent.
>
> I also wonder if this patch needs to be applied to earlier
> versions as well. Is linux-3.6 still working?

It only seemed to be a warning. The boards I tested on worked with
no problems that I could see. That was on a linux-3.5 kernel.

Regards
Greg
diff mbox

Patch

diff --git a/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h b/arch/arm/mach-ixp4xx/include/mach/ixp4xx-regs.h
index 97c530f..ad66605 100644
--- 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