안녕하세요
16c554 UART 칩 포팅관련하여 질문을 드립니다.
먼저 프로세서는 MPC8313 이며(POWER PC)
Linux 2.6.20 을 씁니다.

기존에 프로세서에서 지원하는 2개의 UART 를 썼는데,
UART 가 추가 로 필요하게 되어 16C554 칩을 쓰게 되었습니다.
16550 4개를 CS 4개를 통하여 제어한다고 생각하면 편합니다.
회로 연결은 Local BUS 에 칩의 Address ,Data,Irq 를 연결하였습니다.
그리고 Local BUS 의 OE,WE 을 칩의 Read,Write Enable 에 연결하였습니다.
그런데 기존 버전 2.4때에서는 Serial.h 에서
#define EXTRA_SERIAL_PORT_DEFNS
, {
type: PORT_16C550,
xmit_fifo_size: 16,
baud_base: EXTRA_BAUD_BASE,
iomem_base: (void *)&EXT_UART1,
iomem_reg_shift: 1,
io_type: SERIAL_IO_MEM,
irq: IRQ_UART1,
flags: EXTRA_STD_COM_FLAGS,
}, {
type: PORT_16C550,
xmit_fifo_size: 16,
baud_base: EXTRA_BAUD_BASE,
iomem_base: (void *)&EXT_UART2,
iomem_reg_shift: 1,
io_type: SERIAL_IO_MEM,
irq: IRQ_UART2,
flags: EXTRA_STD_COM_FLAGS,
}, {
type: PORT_16C550,
xmit_fifo_size: 16,
baud_base: EXTRA_BAUD_BASE,
iomem_base: (void *)&EXT_UART3,
iomem_reg_shift: 1,
io_type: SERIAL_IO_MEM,
irq: IRQ_UART3,
flags: EXTRA_STD_COM_FLAGS,
}, {
type: PORT_16C550,
xmit_fifo_size: 16,
baud_base: EXTRA_BAUD_BASE,
iomem_base: (void *)&EXT_UART4,
iomem_reg_shift: 1,
io_type: SERIAL_IO_MEM,
irq: IRQ_UART4,
flags: EXTRA_STD_COM_FLAGS,
}

#else
#define EXTRA_SERIAL_PORT_DEFNS
#endif

위와 같이 포트를 추가하여주었는데 2.6 에서는 어디에 추가 를 해야될지모르겠습니다.
추가 하는 곳만 알면 거기에 추가 해볼텐데 drivers/serial/8250.c 에 추가 해야하는건가여?
2.6 에 외부 Serial Port 를 어디에서 구조체를 선언해야되는지 아시는 분 도움좀 주세요~~
며칠째 씨름 하고 있는데~~너무 않되네여~~~꼭도와주세여~~~`!!

16C554 칩(4CH UART) 포팅 관련질문입니다. | 답장: 1개(RSS) | 본문에 답장
정렬 :  

답장 케이지 (2009년 01월 19일 오후 05:50)
Freescale 계열은 /arch/powerpc/boot/mpc8313erdb.dtd
파일을 수정해야할거같은데 너무 막막하네여
이 DTD 파일이 Kernel 보다 먼저 실행되는거같습니다.

'QnA' 카테고리의 다른 글

external memory interface  (0) 2009.07.16
UART 콘트롤러 칩 추가..  (0) 2009.07.16
level shifter??  (0) 2009.07.16
serial 통신 속도 변경에 따른 데이터 손상 현상  (0) 2009.07.13
Hardware flow control Vs. Software flow contorl  (0) 2009.07.06

WRITTEN BY
RootFriend
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.

,