* Stephen Rothwell <[email protected]> [100204 15:17]:
> Hi all,
> 
> Today's linux-next merge of the omap tree got a conflict in
> arch/arm/mach-omap1/include/mach/debug-macro.S
> arch/arm/mach-omap2/include/mach/debug-macro.S between commit
> 7f62dc4756eaf761570b96250630d48f80397d64 ("ARM: 5910/1: ARM: Add tmp
> register for addruart and loadsp") from the arm tree and commit 
> 209f5d2d2c8e385834d138ac593df86504a28ffe ("omap: Make
> uncompress code and DEBUG_LL code generic") from the omap tree.
> 
> I fixed it up (see below) and can carry the fix as necessary.

Thanks, I'll sort it out in omap for-next tree so they merge
cleanly.

Tony

> -- 
> Cheers,
> Stephen Rothwell                    [email protected]
> 
> diff --cc arch/arm/mach-omap1/include/mach/debug-macro.S
> index 8c74cab,0187391..0000000
> --- a/arch/arm/mach-omap1/include/mach/debug-macro.S
> +++ b/arch/arm/mach-omap1/include/mach/debug-macro.S
> @@@ -11,7 -11,43 +11,43 @@@
>    *
>   */
>   
> + #include <linux/serial_reg.h>
> + 
> + #include <plat/serial.h>
> + 
> +             .pushsection .data
> + omap_uart_phys:     .word   0x0
> + omap_uart_virt:     .word   0x0
> +             .popsection
> + 
> +             /*
> +              * Note that this code won't work if the bootloader passes
> +              * a wrong machine ID number in r1. To debug, just hardcode
> +              * the desired UART phys and virt addresses temporarily into
> +              * the omap_uart_phys and omap_uart_virt above.
> +              */
>  -            .macro  addruart,rx
>  +            .macro  addruart, rx, tmp
> + 
> +             /* Use omap_uart_phys/virt if already configured */
> + 9:          mrc     p15, 0, \rx, c1, c0
> +             tst     \rx, #1                 @ MMU enabled?
> +             ldreq   \rx, =omap_uart_phys    @ physical base address
> +             ldrne   \rx, =omap_uart_virt    @ virtual base
> +             ldr     \rx, [\rx, #0]
> +             cmp     \rx, #0                 @ is port configured?
> +             bne     99f                     @ already configured
> + 
> +             /* Check 7XX UART1 scratchpad register for uart to use */
> +             mrc     p15, 0, \rx, c1, c0
> +             tst     \rx, #1                 @ MMU enabled?
> +             moveq   \rx, #0xff000000        @ physical base address
> +             movne   \rx, #0xfe000000        @ virtual base
> +             orr     \rx, \rx, #0x00fb0000   @ OMAP1UART1
> +             ldrb    \rx, [\rx, #(UART_SCR << OMAP7XX_PORT_SHIFT)]
> +             cmp     \rx, #0                 @ anything in 7XX scratchpad?
> +             bne     10f                     @ found 7XX uart
> + 
> +             /* Check 15xx/16xx UART1 scratchpad register for uart to use */
>               mrc     p15, 0, \rx, c1, c0
>               tst     \rx, #1                 @ MMU enabled?
>               moveq   \rx, #0xff000000        @ physical base address
> diff --cc arch/arm/mach-omap2/include/mach/debug-macro.S
> index 86979d7,eb05a22..0000000
> --- a/arch/arm/mach-omap2/include/mach/debug-macro.S
> +++ b/arch/arm/mach-omap2/include/mach/debug-macro.S
> @@@ -11,32 -11,107 +11,107 @@@
>    *
>   */
>   
> + #include <linux/serial_reg.h>
> + 
> + #include <plat/serial.h>
> + 
> + #define UART_OFFSET(addr)   ((addr) & 0x00ffffff)
> + 
> +             .pushsection .data
> + omap_uart_phys:     .word   0
> + omap_uart_virt:     .word   0
> + omap_uart_lsr:      .word   0
> +             .popsection
> + 
> +             /*
> +              * Note that this code won't work if the bootloader passes
> +              * a wrong machine ID number in r1. To debug, just hardcode
> +              * the desired UART phys and virt addresses temporarily into
> +              * the omap_uart_phys and omap_uart_virt above.
> +              */
>  -            .macro  addruart,rx
>  +            .macro  addruart, rx, tmp
> + 
> +             /* Use omap_uart_phys/virt if already configured */
> + 10:         mrc     p15, 0, \rx, c1, c0
> +             tst     \rx, #1                 @ MMU enabled?
> +             ldreq   \rx, =omap_uart_phys    @ physical base address
> +             ldrne   \rx, =omap_uart_virt    @ virtual base address
> +             ldr     \rx, [\rx, #0]
> +             cmp     \rx, #0                 @ is port configured?
> +             bne     99f                     @ already configured
> + 
> +             /* Check UART1 scratchpad register for uart to use */
>               mrc     p15, 0, \rx, c1, c0
>               tst     \rx, #1                 @ MMU enabled?
> - #ifdef  CONFIG_ARCH_OMAP2
>               moveq   \rx, #0x48000000        @ physical base address
>               movne   \rx, #0xfa000000        @ virtual base
> -             orr     \rx, \rx, #0x0006a000
> - #ifdef CONFIG_OMAP_LL_DEBUG_UART2
> -             add     \rx, \rx, #0x00002000   @ UART 2
> - #endif
> - #ifdef CONFIG_OMAP_LL_DEBUG_UART3
> -             add     \rx, \rx, #0x00004000   @ UART 3
> - #endif
> - 
> - #elif defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
> -             moveq   \rx, #0x48000000        @ physical base address
> -             movne   \rx, #0xfa000000        @ virtual base
> -             orr     \rx, \rx, #0x0006a000
> - #ifdef CONFIG_OMAP_LL_DEBUG_UART2
> -             add     \rx, \rx, #0x00002000   @ UART 2
> - #endif
> - #ifdef CONFIG_OMAP_LL_DEBUG_UART3
> -             add     \rx, \rx, #0x00fb0000   @ UART 3
> -             add     \rx, \rx, #0x00006000
> - #endif
> - #endif
> +             orr     \rx, \rx, #0x0006a000   @ uart1 on omap2/3/4
> +             ldrb    \rx, [\rx, #(UART_SCR << OMAP_PORT_SHIFT)] @ scratchpad
> + 
> +             /* Select the UART to use based on the UART1 scratchpad value */
> +             cmp     \rx, #0                 @ no port configured?
> +             beq     21f                     @ if none, try to use UART1
> +             cmp     \rx, #OMAP2UART1        @ OMAP2/3/4UART1
> +             beq     21f                     @ configure OMAP2/3/4UART1
> +             cmp     \rx, #OMAP2UART2        @ OMAP2/3/4UART2
> +             beq     22f                     @ configure OMAP2/3/4UART2
> +             cmp     \rx, #OMAP2UART3        @ only on 24xx
> +             beq     23f                     @ configure OMAP2UART3
> +             cmp     \rx, #OMAP3UART3        @ only on 34xx
> +             beq     33f                     @ configure OMAP3UART3
> +             cmp     \rx, #OMAP4UART3        @ only on 44xx
> +             beq     43f                     @ configure OMAP4UART3
> +             cmp     \rx, #OMAP3UART4        @ only on 36xx
> +             beq     34f                     @ configure OMAP3UART4
> +             cmp     \rx, #OMAP4UART4        @ only on 44xx
> +             beq     44f                     @ configure OMAP4UART4
> +             cmp     \rx, #ZOOM_UART         @ only on zoom2/3
> +             beq     95f                     @ configure ZOOM_UART
> + 
> +             /* Configure the UART offset from the phys/virt base */
> + 21:         mov     \rx, #UART_OFFSET(OMAP2_UART1_BASE)     @ omap2/3/4
> +             b       98f
> + 22:         mov     \rx, #UART_OFFSET(OMAP2_UART2_BASE)     @ omap2/3/4
> +             b       98f
> + 23:         mov     \rx, #UART_OFFSET(OMAP2_UART3_BASE)
> +             b       98f
> + 33:         mov     \rx, #UART_OFFSET(OMAP3_UART1_BASE)
> +             add     \rx, \rx, #0x00fb0000
> +             add     \rx, \rx, #0x00006000           @ OMAP3_UART3_BASE
> +             b       98f
> + 34:         mov     \rx, #UART_OFFSET(OMAP3_UART1_BASE)
> +             add     \rx, \rx, #0x00fb0000
> +             add     \rx, \rx, #0x00028000           @ OMAP3_UART4_BASE
> +             b       98f
> + 43:         mov     \rx, #UART_OFFSET(OMAP4_UART3_BASE)
> +             b       98f
> + 44:         mov     \rx, #UART_OFFSET(OMAP4_UART4_BASE)
> +             b       98f
> + 95:         mov     \rx, #ZOOM_UART_BASE
> +             ldr     r1, =omap_uart_phys
> +             str     \rx, [r1, #0]
> +             mov     \rx, #ZOOM_UART_VIRT
> +             ldr     r1, =omap_uart_virt
> +             str     \rx, [r1, #0]
> +             mov     \rx, #(UART_LSR << ZOOM_PORT_SHIFT)
> +             ldr     r1, =omap_uart_lsr
> +             str     \rx, [r1, #0]
> +             b       10b
> + 
> +             /* Store both phys and virt address for the uart */
> + 98:         add     \rx, \rx, #0x48000000   @ phys base
> +             ldr     r1, =omap_uart_phys
> +             str     \rx, [r1, #0]
> +             sub     \rx, \rx, #0x48000000   @ phys base
> +             add     \rx, \rx, #0xfa000000   @ virt base
> +             ldr     r1, =omap_uart_virt
> +             str     \rx, [r1, #0]
> +             mov     \rx, #(UART_LSR << OMAP_PORT_SHIFT)
> +             ldr     r1, =omap_uart_lsr
> +             str     \rx, [r1, #0]
> + 
> +             b       10b
> + 99:
>               .endm
>   
>               .macro  senduart,rd,rx
--
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