ARM926EJS boot failure on v3.3, __iounmap

jonsmirl at gmail.com jonsmirl at gmail.com
Mon Mar 12 22:13:41 EDT 2012


On Mon, Mar 12, 2012 at 10:07 PM, Jason Cooper <jason at lakedaemon.net> wrote:
> On Mon, Mar 12, 2012 at 07:31:58PM -0400, jonsmirl at gmail.com wrote:
>> The answer to this is that as of v3.3 you can't have overlapping IO
>> regions. The code I was porting has a large define covering peripheral
>> space and then many smaller ones inside the region, one for each
>> device. I needed to delete the defines for those inner devices.
>
> I got bit by this last week with the dreamplug (kirkwood), I worked
> around it by disabling CONFIG_ARM_PATCH_PHYS_VIRT.  Could you elaborate
> on your solution so I can work towards a real fix on
> plat-orion/mach-kirkwood?

Somewhere you are allocating an array of map_desc. These regions can't
overlap anymore.

static struct map_desc lpc313x_io_desc[] __initdata = {
	{
		.virtual	= io_p2v(IO_INTC_PHYS),
		.pfn		= __phys_to_pfn(IO_INTC_PHYS),
		.length		= IO_INTC_SIZE,
		.type		= MT_DEVICE
	},
	{
		.virtual	= io_p2v(IO_APB01_PHYS),
		.pfn		= __phys_to_pfn(IO_APB01_PHYS),
		.length		= IO_APB01_SIZE,
		.type		= MT_DEVICE
	},
....



>
> Thanks,
>
> Jason.



-- 
Jon Smirl
jonsmirl at gmail.com



More information about the linux-arm-kernel mailing list