UART 확장 이후...
UART을 확장을 위해 XR16L2550M UART 2 channel 을 사용합니다.
그리고 커널 소스 부분에서 시리얼 관련 헤드 파일을 수정하였습니다.
include/asm/serial.h에 UART 관련 설정을 추가하였습니다.
#ifdef CONFIG_MIPS_ADMXXX
#include
#define ADMxxx_SERIAL_PORT_DEFNS \
{ .baud_base = ( 3686400 /16 ), \
.flags = STD_COM_FLAGS, \
.iomem_reg_shift = 2, \
.io_type = SERIAL_IO_MEM }, \
{ .baud_base = (14745600 / 16), \
.irq = INT_LVL_UART1, \
.flags = STD_COM_FLAGS, \
.iomem_base = KSEG1ADDR(ADMxxx_UART1_BASE), \
.iomem_reg_shift = 2, \
.io_type = SERIAL_IO_MEM }, \
{ .baud_base = (14745600 / 16), \
.irq = INT_LVL_UART2, \
.flags = STD_COM_FLAGS, \
.iomem_base = KSEG1ADDR(ADMxxx_UART2_BASE), \
.iomem_reg_shift = 2, \
.io_type = SERIAL_IO_MEM },
#else
#define ADMxxx_SERIAL_PORT_DEFNS
#endif
재부팅후 아래와 같이 시리얼이 설정되었습니다.
dmesg | grep tty
ttyS01 at 0xb0000000 (irq = 12) is a 8250
ttyS02 at 0xb0800000 (irq = 12) is a 8250
쉘에서 echo '12345' > /dev/ttyS1 을 하면 아래와 같은 에러 메시지가 발생합니다.
ttyS: 1 input overrun(s)
ttyS: 66306 input overrun(s)
혹시 해결책이 있다면 답변 부탁드립니다.
댓글 달기