DM368(5)-EVM 보드를 사용해서 개발하였을 경우 기본 디버깅 콘솔을 UART0로 사용하게 되어 있다.
이를 UART1으로 사용하기 위해서는 다음과 같이 수정해 주면 된다.
* dvsdk_dm368-evm_4_02_00_06 기준

/include/configs/davinci_dm365evm.h

:
#define CONFIG_SYS_NS16550_COM1  0x01c20000
#define CONFIG_SYS_NS16550_COM2  0x01D06000
#define CONFIG_SYS_NS16550_CLK  121500000
#define CONFIG_CONS_INDEX  2   // 1: UART0, 2:UART1

/drivers/serial/serial.c 에서 UART 클락 설정.

static int calc_divisor (NS16550_t port)
{
:
:
#ifdef CONFIG_APTIX
#define MODE_X_DIV 13
#else
#define MODE_X_DIV 16
#endif

#define PLL1_PLLM    *(volatile unsigned int *)0x01c40910
#define PLL1_PREDIV  *(volatile unsigned int *)0x01c40914
#define PLL1_POSTDIV *(volatile unsigned int *)0x01C40928
#define PLL1_DIV4    *(volatile unsigned char *)0x01c40960
#define SYS_PERI_CLKCTL *(volatile unsigned int *)0x01C40048
 unsigned int pll1_clk;
    pll1_clk = ((PLL1_PLLM & 0x1ff) *2 *24) / ((PLL1_PREDIV & 0x1F) + 1)/((PLL1_POSTDIV & 0x1F) + 1);

 return ((pll1_clk*(1000000/(PLL1_DIV4+1))) + (gd->baudrate * (MODE_X_DIV / 2))) /
  (MODE_X_DIV * gd->baudrate);
}


/arch/arm/cpu/arm926ejs/davinci/dm365.c

 

void davinci_enable_uart0(void)
{
 lpsc_on(DAVINCI_LPSC_UART1);

 

Posted by 다크쌍피