On Thu, Jan 7, 2010 at 3:27 AM, Prashant Bhole <prashantsmailcenter@xxxxxxxxx> wrote: > Hi, > We have a custom board (arm/mach-iop331) and linux kernel (2.6.24) > ported for it. I saw following message while booting: > > BUG: mapping for 0xce800000 at 0xce800000 overlaps vmalloc space > > Can anybody please tell me seriousness of this message? This message comes from > arch/arm/mm/mmu.c: create_mapping() function. > w.r.t this function, The IO mapping descriptor md has following values: > > md->virtual = 0xce800000 > md->pfn = 0xce800000 > md->type = MT_DEVICE > > PAGE_OFFSET is 0xc0000000 > VMALLOC_END is 0xce800000 > > Also, To fix this problem which value I should change, VMALLOC_END or > md->virtual? > Where I can get correct values? > > P.S.- I haven't ported this kernel, just trying to figure out the problem. > > Thanks, > Prashant To give you a background on these things let me give you an example of how these macros should be defined: Imagine you are having a ARM board with 32MB of SDRAM. The physical base for this is 0x8000 0000 till 0x81FF FFFF. With this information let us start to define initial arch specific Linux kernel parameters: Now In include/asm/arch/memory.h #define PHYS_OFFSET (0x80000000UL) #define VMALLOC_OFFSET (8*1024*1024) 8MB hole to catch out of bounds memory #define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET)& ~(VMALLOC_OFFSET-1)) high_memory is a global variable exported by mm/memory. It represents the highest virtual RAM address. #define VMALLOC_END (PAGE_OFFSET + 0x10000000) 16MB above 3G The space between VMALLOC_START and VMALLOC_END is used by vmalloc() In asm/arm/memory.h. #define PAGE_OFFSET (0xc0000000UL) ~3G #define TASK_SIZE (0xbf000000UL) default task size Now coming to kernel module space, it can be between TASK_SIZE and PAGE_OFFSET-1, default values are #define MODULE_END (PAGE_OFFSET) #define MODULE_START (MODULE_END – 16*1048756) The kernel sits at PHYS_OFFSET+0x8000 which is 0x80008000 so In arm/arch/Makefile.boot we add zreladdr-y := 0x80008000 You need to cross check with your particular machine settings and see if you are doing it correctly. The above settings are typical but can be changed to suit your needs. But I wanted to give you a background on how these are used. If still in doubt you can post your query on arm-linux mailing list(ofcourse check the archives first if you can get the information you need) -syed -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ