Hi Cyril,

On Fri, Mar 26, 2010 at 03:13:56, Chemparathy, Cyril wrote:
> Simplified UART base address calculation for low-level debug macros.  This
> makes it much easier to add in support for other SOCs.
>
> Signed-off-by: Cyril Chemparathy <[email protected]>
> ---
>  arch/arm/mach-davinci/include/mach/debug-macro.S |   28 +++++++++++++--------
>  arch/arm/mach-davinci/include/mach/hardware.h    |    4 ++-
>  arch/arm/mach-davinci/include/mach/serial.h      |    2 +
>  3 files changed, 22 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/include/mach/debug-macro.S 
> b/arch/arm/mach-davinci/include/mach/debug-macro.S
> index 3cd93a8..b8b47a4 100644
> --- a/arch/arm/mach-davinci/include/mach/debug-macro.S
> +++ b/arch/arm/mach-davinci/include/mach/debug-macro.S
> @@ -17,22 +17,28 @@
>   */
>
>  #include <linux/serial_reg.h>
> +#include <mach/serial.h>
> +
> +#if defined(CONFIG_ARCH_DAVINCI_DMx)
> +#define UART_PHYS    DAVINCI_UART0_BASE
> +#define UART_VIRT    IO_ADDRESS(UART_PHYS)
> +#endif
> +
> +#if defined(CONFIG_ARCH_DAVINCI_DA8XX)
> +#ifdef UART_PHYS
> +#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
> +#endif
> +#define UART_PHYS    DA8XX_UART2_BASE
> +#define UART_VIRT    IO_ADDRESS(UART_PHYS)
> +#endif
> +
>  #define UART_SHIFT   2
>
>               .macro addruart, rx, tmp
>               mrc     p15, 0, \rx, c1, c0
>               tst     \rx, #1                 @ MMU enabled?
> -             moveq   \rx, #0x01000000        @ physical base address
> -             movne   \rx, #0xfe000000        @ virtual base
> -#if defined(CONFIG_ARCH_DAVINCI_DA8XX) && defined(CONFIG_ARCH_DAVINCI_DMx)
> -#error Cannot enable DaVinci and DA8XX platforms concurrently
> -#elif defined(CONFIG_MACH_DAVINCI_DA830_EVM) || \
> -     defined(CONFIG_MACH_DAVINCI_DA850_EVM)
> -             orr     \rx, \rx, #0x00d00000   @ physical base address
> -             orr     \rx, \rx, #0x0000d000   @ of UART 2
> -#else
> -             orr     \rx, \rx, #0x00c20000   @ UART 0
> -#endif
> +             ldreq   \rx, =UART_PHYS
> +             ldrne   \rx, =UART_VIRT


As Sergei pointed out, this is making the debug
UART dependent on the architecture which would be
an incorrect thing to do.

IMHO, a better simplification would be to let the debug
UART number on a board be defined by Kconfig entry for that
board and the code here could compute the UART base using
that number.

Thanks,
Sekhar

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to