[PATCH 2/4] omap: Make uncompress code and DEBUG_LL code generic
Tony Lindgren
tony at atomide.com
Sat Jan 16 15:00:03 EST 2010
* Russell King - ARM Linux <linux at arm.linux.org.uk> [100116 11:31]:
> On Sat, Jan 16, 2010 at 11:18:20AM -0800, Tony Lindgren wrote:
> > * Russell King - ARM Linux <linux at arm.linux.org.uk> [100116 01:33]:
> > > On Fri, Jan 15, 2010 at 05:35:15PM -0800, Tony Lindgren wrote:
> > > > diff --git a/arch/arm/mach-omap1/include/mach/debug-macro.S b/arch/arm/mach-omap1/include/mach/debug-macro.S
> > > > index 23e4724..0174858 100644
> > > > --- a/arch/arm/mach-omap1/include/mach/debug-macro.S
> > > > +++ b/arch/arm/mach-omap1/include/mach/debug-macro.S
> > > > @@ -15,18 +15,71 @@
> > > >
> > > > #include <plat/serial.h>
> > > >
> > > > +omap_uart_phys: .word 0x0
> > > > +omap_uart_virt: .word 0x0
> > >
> > > I assume that you have no plans for XIP kernel support on OMAP, since
> > > these will be placed in the .text section, and is therefore read-only
> > > on XIP kernels.
> >
> > Did not think of that.. Maybe some addruart_premable solution here would.
> > Or adding \tmp register for addruart and just do the detection for each
> > character.
>
> How does doing it per-character help? The code is:
>
> ENTRY(printascii)
> addruart r3
> b 2f
> 1: waituart r2, r3
> senduart r1, r3
> busyuart r2, r3
> teq r1, #'\n'
> moveq r1, #'\r'
> beq 1b
> 2: teq r0, #0
> ldrneb r1, [r0], #1
> teqne r1, #0
> bne 1b
> mov pc, lr
>
> Your wait/send/busy macros are just using the already provided base
> address which comes via r3 from addruart. That much is fine.
>
> I'm at a loss to understand why you think moving the address-getting
> functionality out of addruart into the individual wait/send/busy
> macros is going to help in any way.
Sorry, I meant doing the detection each time addruart is run, not
for each character.
> Why not do something like this:
>
> .pushsection .data
> omap_uart_phys: .word 0
> omap_uart_virt: .word 0
> .popsection
>
> .macro addruart, rx
> ...
> + ldreq \rx, =omap_uart_phys @ physical base address
> + ldrne \rx, =omap_uart_virt @ virtual base
> ldr \rx, [\rx]
> + cmp \rx, #0 @ is port configured?
> + bne 99f @ already configured
> ...
>
> ?
Sounds good to me. Will play with them and post refreshed patches.
Regards,
Tony
More information about the linux-arm-kernel
mailing list