Subject: [PATCH 02/11] omap2/3: Fix DEBUG_LL for omap zoom2/3

From: [email-masked] (Kevin Hilman)
Date: Fri, 30 Apr 2010 14:20:42 -0700

Tony Lindgren <[email-masked]> writes:

> * Kevin Hilman <[email-masked]> [100430 13:50]:
>> Tony Lindgren <[email-masked]> writes:
>> 
>> > Zoom2 and 3 have UARTs only on the external debug board.
>> > GPMC needs to be mapped early to use it for DEBUG_LL.
>> >
>> > Additionally, 0xfb000000 overlaps with other areas, so
>> > use 0xfa400000 for the virtual address instead.
>> >
>> > Note that with the pending serial.c patches you need to
>> > set console=ttyS0,115200n8 as it will be the only UART
>> > mapped. To use DEBUG_LL, you need to pass also earlyprintk
>> > in cmdline.
>> >
>> > Cc: Allen Pais <[email-masked]>
>> > Cc: Vikram Pandita <[email-masked]>
>> > Signed-off-by: Tony Lindgren <[email-masked]>
>> > ---
>> >  arch/arm/kernel/head.S                         |   10 ++++++++++
>> >  arch/arm/mach-omap2/board-zoom-debugboard.c    |    2 +-
>> >  arch/arm/mach-omap2/include/mach/debug-macro.S |    4 ++--
>> >  arch/arm/mach-omap2/io.c                       |    9 +++++++++
>> >  arch/arm/plat-omap/include/plat/serial.h       |    2 +-
>> >  5 files changed, 23 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
>> > index eb62bf9..fd870e1 100644
>> > --- a/arch/arm/kernel/head.S
>> > +++ b/arch/arm/kernel/head.S
>> > @@ -328,6 +328,16 @@ __create_page_tables:
>> >  	add	r0, r4, #0xd8000000 >> 18
>> >  	str	r3, [r0]
>> >  #endif
>> > +#if defined(CONFIG_MACH_OMAP_ZOOM2) || defined(CONFIG_MACH_OMAP_ZOOM3)
>> > +	/*
>> > +	 * Zoom2 and Zoom3 have UARTs only on the debug board.
>> > +	 * The debug board is connected to the GPMC.
>> > +	 */
>> > +	add	r0, r4, #0xfa000000 >> 18
>> > +	orr	r0, r0, #0x00400000 >> 18	@ ZOOM_UART_VIRT
>> > +	orr	r3, r7, #0x10000000		@ ZOOM_UART_BASE
>> > +	str	r3, [r0]
>> > +#endif
>> 
>> I don't see why this part is needed.  The same mapping is done using
>> the .io_pg_offset in the machine description which is done just before
>> this in head.S
>
> That mapping does not cover the GPMC area where this UART is.

Hmm, then shouldn't that be fixed?  I understood the .phys_io and and
.io_pg_offset fields of the mach_desc to be specifically for mapping
the early UART, and nothing else.

Kevin