Re: [PATCH 3/5] omap: Add support for CONFIG_AUTO_ZRELADDR for DEBUG_LL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Feb 03, 2011 at 10:33:42PM -0500, Nicolas Pitre wrote:
> On Thu, 3 Feb 2011, Tony Lindgren wrote:
> 
> > This way we can have the debug-macro.S be common for omap1 and omap2+
> > and get sensible error messages booting the wrong zImage with
> > CONFIG_AUTO_ZRELADDR selected. Note that this does not seem to work
> > with u-boot and uImage.
> > 
> > Signed-off-by: Tony Lindgren <tony@xxxxxxxxxxx>
> > ---
> >  arch/arm/mach-omap1/include/mach/debug-macro.S |   36 ++++++++++++++++++++----
> >  arch/arm/mach-omap2/include/mach/debug-macro.S |   27 +++++++++++++++++-
> >  2 files changed, 56 insertions(+), 7 deletions(-)
> > 
> > diff --git a/arch/arm/mach-omap1/include/mach/debug-macro.S b/arch/arm/mach-omap1/include/mach/debug-macro.S
> > index 80dcf18..bae924e 100644
> > --- a/arch/arm/mach-omap1/include/mach/debug-macro.S
> > +++ b/arch/arm/mach-omap1/include/mach/debug-macro.S
> > @@ -27,7 +27,15 @@
> >  		.macro	inituart, id, a, v
> >  		mrc	p15, 0, \a, c1, c0
> >  		tst	\a, #1			@ MMU enabled?
> > +#ifdef CONFIG_AUTO_ZRELADDR
> > +		ldreq	\a, =omap_uart_phys
> > +		biceq	\a, \a, #0xf8000000	@ clear top bits of virt addr
> > +		moveq	\v, pc			@ copy pc
> > +		andeq	\v, \v, #0xf8000000	@ clear lower bits
> > +		orreq	\a, \v			@ combile to get phys addr
> > +#else
> >  		ldreq	\a, =omap_uart_v2p(omap_uart_phys)
> > +#endif
> >  		ldrne	\a, =omap_uart_phys
> 
> Gaaaaah!  This is horrible.
> 
> OK, you do want to store data in memory, right?  So the best way to 
> always be position independent, even cross section, is to do the 
> following (inspired by RMK's trick in the p2v series):

The other point to make is that for every machine in OMAP1, the
serial port is located at 0xffXXXXXX virtual, 0xfeXXXXXX physical.
For OMAP2, that's 0xfaXXXXXX virtual and 0x48XXXXXX physical.

So it's pointless storing both the virtual and physical addresses
as we can compute one from the other with a single instruction.
That gets rid of some of the complexity found in the debugging code.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux