diff options
author | Barry Song <Baohua.Song@csr.com> | 2012-12-20 12:45:25 +0100 |
---|---|---|
committer | Barry Song <Barry.Song@csr.com> | 2013-01-22 12:53:36 +0100 |
commit | 7f46a10724e0d31c83029436e54298be2cc558fa (patch) | |
tree | 1de423733f7e72ceefa45ee08c7e5d5ab1df8681 /arch/arm/mach-prima2/include | |
parent | ARM: PRIMA2: add new SiRFmarco SMP SoC infrastructures (diff) | |
download | linux-7f46a10724e0d31c83029436e54298be2cc558fa.tar.xz linux-7f46a10724e0d31c83029436e54298be2cc558fa.zip |
ARM: PRIMA2: provide two DEBUG_LL ports for prima2 and marco
prima2 and marco has different memory base, the old code will
fail if we enable DEBUG_LL in marco.
this patch adds two debuf port, while debugging, we select one
of PRIMA2 and MARCO debug ports, in the products, we disable
DEBUG_LL.
Signed-off-by: Barry Song <Baohua.Song@csr.com>
Diffstat (limited to 'arch/arm/mach-prima2/include')
-rw-r--r-- | arch/arm/mach-prima2/include/mach/uart.h | 6 | ||||
-rw-r--r-- | arch/arm/mach-prima2/include/mach/uncompress.h | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-prima2/include/mach/uart.h b/arch/arm/mach-prima2/include/mach/uart.h index c98b4d5ac24a..c10510d01a44 100644 --- a/arch/arm/mach-prima2/include/mach/uart.h +++ b/arch/arm/mach-prima2/include/mach/uart.h @@ -10,7 +10,13 @@ #define __MACH_PRIMA2_SIRFSOC_UART_H /* UART-1: used as serial debug port */ +#if defined(CONFIG_DEBUG_SIRFPRIMA2_UART1) #define SIRFSOC_UART1_PA_BASE 0xb0060000 +#elif defined(CONFIG_DEBUG_SIRFMARCO_UART1) +#define SIRFSOC_UART1_PA_BASE 0xcc060000 +#else +#define SIRFSOC_UART1_PA_BASE 0 +#endif #define SIRFSOC_UART1_VA_BASE SIRFSOC_VA(0x060000) #define SIRFSOC_UART1_SIZE SZ_4K diff --git a/arch/arm/mach-prima2/include/mach/uncompress.h b/arch/arm/mach-prima2/include/mach/uncompress.h index 0c898fcf909c..15f3edcfbb47 100644 --- a/arch/arm/mach-prima2/include/mach/uncompress.h +++ b/arch/arm/mach-prima2/include/mach/uncompress.h @@ -25,6 +25,9 @@ static __inline__ void putc(char c) * during kernel decompression, all mappings are flat: * virt_addr == phys_addr */ + if (!SIRFSOC_UART1_PA_BASE) + return; + while (__raw_readl((void __iomem *)SIRFSOC_UART1_PA_BASE + SIRFSOC_UART_TXFIFO_STATUS) & SIRFSOC_UART1_TXFIFO_FULL) barrier(); |