Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f46a107 authored by Barry Song's avatar Barry Song Committed by Barry Song
Browse files

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: default avatarBarry Song <Baohua.Song@csr.com>
parent 4898de3d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -386,6 +386,20 @@ choice
		  Say Y here if you want kernel low-level debugging support
		  on Tegra based platforms.

	config DEBUG_SIRFPRIMA2_UART1
		bool "Kernel low-level debugging messages via SiRFprimaII UART1"
		depends on ARCH_PRIMA2
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the uart1 port on SiRFprimaII devices.

	config DEBUG_SIRFMARCO_UART1
		bool "Kernel low-level debugging messages via SiRFmarco UART1"
		depends on ARCH_MARCO
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the uart1 port on SiRFmarco devices.

	config DEBUG_VEXPRESS_UART0_DETECT
		bool "Autodetect UART0 on Versatile Express Cortex-A core tiles"
		depends on ARCH_VEXPRESS && CPU_CP15_MMU
+6 −0
Original line number Diff line number Diff line
@@ -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

+3 −0
Original line number Diff line number Diff line
@@ -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();