9
0
Fork 0

ARM: i.MX: Make debug UART selectable from Kconfig

To make early debugging on i.MX a bit simpler. This uses a similar
magic than the kernel does.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2013-06-23 10:01:54 +02:00
parent 2e6bbb4065
commit 549ccf4d0c
2 changed files with 110 additions and 6 deletions

View File

@ -13,13 +13,31 @@
#include <mach/imx53-regs.h>
#include <mach/imx6-regs.h>
/* #define IMX_DEBUG_LL_UART_BASE MXxy_UARTx_BASE_ADDR */
#ifndef IMX_DEBUG_LL_UART_BASE
#warning define IMX_DEBUG_LL_UART_BASE properly for debug_ll
#define IMX_DEBUG_LL_UART_BASE 0
#ifdef CONFIG_DEBUG_IMX1_UART
#define IMX_DEBUG_SOC MX1
#elif defined CONFIG_DEBUG_IMX21_UART
#define IMX_DEBUG_SOC MX21
#elif defined CONFIG_DEBUG_IMX25_UART
#define IMX_DEBUG_SOC MX25
#elif defined CONFIG_DEBUG_IMX27_UART
#define IMX_DEBUG_SOC MX27
#elif defined CONFIG_DEBUG_IMX31_UART
#define IMX_DEBUG_SOC MX31
#elif defined CONFIG_DEBUG_IMX35_UART
#define IMX_DEBUG_SOC MX35
#elif defined CONFIG_DEBUG_IMX51_UART
#define IMX_DEBUG_SOC MX51
#elif defined CONFIG_DEBUG_IMX53_UART
#define IMX_DEBUG_SOC MX53
#elif defined CONFIG_DEBUG_IMX6Q_UART
#define IMX_DEBUG_SOC MX6
#else
#error "unknown i.MX debug uart soc type"
#endif
#define __IMX_UART_BASE(soc, num) soc##_UART##num##_BASE_ADDR
#define IMX_UART_BASE(soc, num) __IMX_UART_BASE(soc, num)
#define URTX0 0x40 /* Transmitter Register */
#define UCR1 0x80 /* Control Register 1 */
@ -30,7 +48,8 @@
static inline void PUTC_LL(int c)
{
void __iomem *base = (void *)IMX_DEBUG_LL_UART_BASE;
void __iomem *base = (void *)IMX_UART_BASE(IMX_DEBUG_SOC,
CONFIG_DEBUG_IMX_UART_PORT);
if (!base)
return;

View File

@ -618,6 +618,91 @@ config DEBUG_LL
This requires SoC specific support. Most SoCs require the debug UART to be
initialized by a debugger or first stage bootloader.
choice
prompt "Kernel low-level debugging port"
depends on DEBUG_LL
config DEBUG_IMX1_UART
bool "i.MX1 Debug UART"
depends on ARCH_IMX1
help
Say Y here if you want kernel low-level debugging support
on i.MX1.
config DEBUG_IMX21_UART
bool "i.MX21 Debug UART"
depends on ARCH_IMX21
help
Say Y here if you want kernel low-level debugging support
on i.MX21.
config DEBUG_IMX25_UART
bool "i.MX25 Debug UART"
depends on ARCH_IMX25
help
Say Y here if you want kernel low-level debugging support
on i.MX25.
config DEBUG_IMX27_UART
bool "i.MX27 Debug UART"
depends on ARCH_IMX1
help
Say Y here if you want kernel low-level debugging support
on i.MX27.
config DEBUG_IMX31_UART
bool "i.MX31 Debug UART"
depends on ARCH_IMX31
help
Say Y here if you want kernel low-level debugging support
on i.MX31.
config DEBUG_IMX35_UART
bool "i.MX35 Debug UART"
depends on ARCH_IMX35
help
Say Y here if you want kernel low-level debugging support
on i.MX35.
config DEBUG_IMX51_UART
bool "i.MX51 Debug UART"
depends on ARCH_IMX51
help
Say Y here if you want kernel low-level debugging support
on i.MX51.
config DEBUG_IMX53_UART
bool "i.MX53 Debug UART"
depends on ARCH_IMX53
help
Say Y here if you want kernel low-level debugging support
on i.MX53.
config DEBUG_IMX6Q_UART
bool "i.MX6Q Debug UART"
depends on ARCH_IMX6
help
Say Y here if you want kernel low-level debugging support
on i.MX6Q.
endchoice
config DEBUG_IMX_UART_PORT
int "i.MX Debug UART Port Selection" if DEBUG_IMX1_UART || \
DEBUG_IMX25_UART || \
DEBUG_IMX21_IMX27_UART || \
DEBUG_IMX31_UART || \
DEBUG_IMX35_UART || \
DEBUG_IMX51_UART || \
DEBUG_IMX53_UART || \
DEBUG_IMX6Q_UART || \
DEBUG_IMX6SL_UART
default 1
depends on ARCH_IMX
help
Choose UART port on which kernel low-level debug messages
should be output.
endmenu
config HAS_DEBUG_LL