Git pull request: mach/vmalloc.h removal, and ioremap optimizations

Rob Herring robherring2 at gmail.com
Thu Sep 29 16:26:39 EDT 2011


On 09/29/2011 01:42 PM, Nicolas Pitre wrote:
> On Thu, 29 Sep 2011, Rob Herring wrote:
> 
>> On 09/29/2011 12:37 PM, Russell King - ARM Linux wrote:
>>> My guess would be:
>>>
>>>         }, {
>>>                 .virtual        =  IO_ADDRESS(VERSATILE_SCTL_BASE),
>>>                 .pfn            = __phys_to_pfn(VERSATILE_SCTL_BASE),
>>>                 .length         = SZ_4K * 9,
>>>                 .type           = MT_DEVICE
>>>         },
>>> #ifdef CONFIG_MACH_VERSATILE_AB
>>>         {
>>>                 .virtual        =  IO_ADDRESS(VERSATILE_GPIO0_BASE),
>>>                 .pfn            = __phys_to_pfn(VERSATILE_GPIO0_BASE),
>>>                 .length         = SZ_4K,
>>>                 .type           = MT_DEVICE
>>>
>>> #define VERSATILE_SCTL_BASE            0x101E0000	/* System controller */
>>> #define VERSATILE_GPIO0_BASE           0x101E4000	/* GPIO port 0 */
>>>
>>> I don't see why GPIO0 is explicitly listed here.
>>
>> It works for PB and AB with that removed. Here's a patch:
> [...]
> 
> Thanks for testing and the patch.  I've inserted it in my patch series 
> and pushed the result out.

So it was really Realview PBX I wanted to test my GIC changes on. Well,
turns out it's got a similar problem, too.

However, the fix for it should perhaps be a bit different. The problem
is that the virtual address of REALVIEW_PBX_TILE_GIC_CPU_BASE is not
aligned. Then 0x100 + 4KB length overlaps into the DIST_BASE. So do we
fix it in the platform or should the core code mask out the lower bits
of the virt addr before doing any size calculations?

Rob



More information about the linux-arm-kernel mailing list