[PATCH] msm: fix debug-macro.S build failure

Russell King - ARM Linux linux at arm.linux.org.uk
Thu Oct 28 14:46:27 EDT 2010


On Thu, Oct 28, 2010 at 02:43:16PM -0400, Nicolas Pitre wrote:
> On Thu, 28 Oct 2010, Russell King - ARM Linux wrote:
> 
> > On Thu, Oct 28, 2010 at 02:24:33PM -0400, Nicolas Pitre wrote:
> > > On Thu, 28 Oct 2010, Daniel Walker wrote:
> > > 
> > > > This is what the function currently has,
> > > > 
> > > >         .macro  addruart, rp, rv
> > > >         ldr     \rp, =MSM_DEBUG_UART_PHYS
> > > >         ldr     \rv, =MSM_DEBUG_UART_BASE
> > > >         .endm
> > > > 
> > > > So if we have a MSM_DEBUG_UART_PHYS and MSM_DEBUG_UART_BASE we're
> > > > returning it. We don't actually have those values for all the boards
> > > > tho. My understanding was that there are some generic arm changes
> > > > needed, but I need to confirm that.
> > > 
> > > Just return 0 in both registers when you have nothing better to return.
> > 
> > That's not a good idea - it'll cause 512MB of 1:1 mappings to be setup
> > at virtual location 0 using the IO flags, which may conflict on ARMv6+.
> > A better idea would be to return 0xfff00000, which'll cause it to only
> > populate the top-most 1MB.
> 
> Given that this a phony address, better test for 0 explicitly and skip 
> the mapping as well as bailing out early from putchar, etc.

That could be 0 phys, which given there is no defined memory layout on
ARM, I would not put it past someone to put a UART at phys location 0
one day.

As you can wire ARM CPUs to boot with highvecs enabled, this is something
that could realistically happen, with the boot rom at the high address.



More information about the linux-arm-kernel mailing list