From: Tony Lindgren <tony@atomide.com>
To: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: linux-omap@vger.kernel.org, linux-next@vger.kernel.org,
linux-kernel@vger.kernel.org, Russell King <rmk@arm.linux.org.uk>
Subject: Re: linux-next: manual merge of the omap tree with the arm tree
Date: Thu, 4 Feb 2010 15:30:19 -0800 [thread overview]
Message-ID: <20100204233019.GY22747@atomide.com> (raw)
In-Reply-To: <20100205102030.c8b139a1.sfr@canb.auug.org.au>
* Stephen Rothwell <sfr@canb.auug.org.au> [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 sfr@canb.auug.org.au
>
> 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
next prev parent reply other threads:[~2010-02-04 23:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-04 23:20 linux-next: manual merge of the omap tree with the arm tree Stephen Rothwell
2010-02-04 23:20 ` Stephen Rothwell
2010-02-04 23:30 ` Tony Lindgren [this message]
2010-02-05 0:16 ` Stephen Rothwell
2010-02-05 4:04 ` Tony Lindgren
2010-02-15 15:03 ` Russell King
2010-02-17 19:33 ` Tony Lindgren
-- strict thread matches above, loose matches on Subject: below --
2010-12-26 22:41 Stephen Rothwell
2010-12-26 22:41 ` Stephen Rothwell
2010-07-08 1:37 Stephen Rothwell
2010-07-08 1:37 ` Stephen Rothwell
2010-07-08 10:14 ` Tony Lindgren
2010-07-04 23:20 Stephen Rothwell
2010-07-04 23:20 ` Stephen Rothwell
2010-07-05 1:46 ` Nicolas Pitre
2010-07-05 7:14 ` Stephen Rothwell
2010-07-05 13:44 ` Tony Lindgren
2009-08-19 5:04 Stephen Rothwell
2009-08-19 5:04 ` Stephen Rothwell
2009-08-20 10:20 ` Tony Lindgren
2009-08-20 13:03 ` Shilimkar, Santosh
2009-08-20 13:13 ` Shilimkar, Santosh
2009-08-20 13:55 ` Tony Lindgren
2009-08-24 13:07 ` Tony Lindgren
2009-08-24 13:14 ` Stephen Rothwell
2009-05-28 4:31 Stephen Rothwell
2009-05-28 4:31 ` Stephen Rothwell
2009-05-28 6:25 ` Shilimkar, Santosh
2009-05-28 6:34 ` Stephen Rothwell
2009-05-28 6:40 ` Shilimkar, Santosh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100204233019.GY22747@atomide.com \
--to=tony@atomide.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-next@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=rmk@arm.linux.org.uk \
--cc=sfr@canb.auug.org.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.