On Fri, Feb 4, 2011 at 3:27 AM, Tony Lindgren <[email protected]> wrote:
> Set the debug serial port based on machine ID. Note that most
> of the patch is just trivial checking for the machine ID.
>
> Also note that this code won't work for debugging the uncompress code.
>
> Signed-off-by: Tony Lindgren <[email protected]>
> ---

<snip>
> diff --git a/arch/arm/mach-omap2/include/mach/debug-macro.S 
> b/arch/arm/mach-omap2/include/mach/debug-macro.S
> index 336a838..45c29e3 100644
> --- a/arch/arm/mach-omap2/include/mach/debug-macro.S
> +++ b/arch/arm/mach-omap2/include/mach/debug-macro.S
<snip>

> +
> +               /* omap3 based boards using uart3 */
> +               ldr     \v, =MACH_TYPE_CM_T35
> +               cmp     \id, \v
> +               ldrne   \v, =MACH_TYPE_CM_T3517
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_CRANEBOARD
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_DEVKIT8000
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_IGEP0020
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_IGEP0030
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_NOKIA_RM680
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_NOKIA_RX51
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_OMAP3517EVM
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_OMAP3_BEAGLE
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_OMAP3_PANDORA
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_OMAP_LDP
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_OVERO
> +               cmpne   \id, \v
> +               ldrne   \v, =MACH_TYPE_TOUCHBOOK
> +               cmpne   \id, \v
> +               ldreq   \v, =OMAP3_UART3_BASE
> +               streq   \v, [\a, #0]            @ save port phys addr
> +               ldreq   \v, =(OMAP3_UART3_BASE + OMAP2_L4_IO_OFFSET)
> +               streq   \v, [\a, #4]            @ save port virt addr
> +               beq     999f

This looks a bit wasteful not only because of repeated CMPs, but also
LDRs are generating a large literal pool. Maybe something like that be
better:

    adr     r0, uart3_machines
0:
    ldrh    \v, [r0], #2
    tst     \v, \v
    beq     999f                    @ end of list
    cmp     \id, \v
    bne     0b
    ldr     \v, =OMAP3_UART3_BASE
    str     \v, [\a, #0]            @ save port phys addr
    ldr     \v, =(OMAP3_UART3_BASE + OMAP2_L4_IO_OFFSET)
    str     \v, [\a, #4]            @ save port virt addr
    b       999f

    uart3_machines:
    .short MACH_TYPE_CM_T35
    .short MACH_TYPE_CM_T3517
    ...
    .short 0

of course this needs an extra register..
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to