On Mon, Mar 12, 2012 at 4:18 PM, Nicolas Pitre <nicolas.pi...@linaro.org> wrote: > On Mon, 12 Mar 2012, jonsm...@gmail.com wrote: > >> I'm working on getting out of tree support for the NXP LPC31xx >> ARM926EJS based CPUs ready for submission. Everything was working fine >> on v3.2 but I lost the ability to boot with v3.3. The boot failure is >> very early in the boot process. I did a bisect and came up with: >> >> [6ee723a6570a897208b76ab3e9a495e9106b2f8c] ARM: simplify __iounmap() >> when dealing with section based mapping >> >> I tried to revert it but there have been a bunch of edits in this >> file. Not sure how to go about debugging this. > > The first thing to look for is any overlap in the virtual memory ranges > used in your struct map_desc array. No overlap is allowed anymore.
There appear to be overlaps. I'll have to study things for a while to figure out how to eliminate them. This is from a three year old NXP BSP. We have a product based on the CPU and want to use a more recent kernel. They've defined multiple large peripheral regions... /* APB4 address range*/ #define IO_APB4_PHYS (0x17000000) #define IO_APB4_SIZE (0x00001000) { .virtual = io_p2v(IO_APB4_PHYS), .pfn = __phys_to_pfn(IO_APB4_PHYS), .length = IO_APB4_SIZE, .type = MT_DEVICE }, and then declared various devices inside of them... /* DMA registers address range*/ #define DMA_PHYS (0x17000000) #define IO_DMA_REG_PHYS (DMA_PHYS) #define IO_DMA_REG_SIZE (0x0000800) { .virtual = io_p2v(IO_DMA_REG_PHYS), .pfn = __phys_to_pfn(IO_DMA_REG_PHYS), .length = IO_DMA_REG_SIZE, .type = MT_DEVICE }, > > Then make sure those virtual addresses are between VMALLOC_START > (typically 0xf0000000 or below depending on the armount of RAM your > system has) and VMALLOC_END which is 0xff000000. > > > Nicolas -- Jon Smirl jonsm...@gmail.com _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev