안녕하세요
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 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 를 어디에서 구조체를 선언해야되는지 아시는 분 도움좀 주세요~~
며칠째 씨름 하고 있는데~~너무 않되네여~~~꼭도와주세여~~~`!!
케이지 (2009년 01월 19일 오후 05:50)
Freescale 계열은 /arch/powerpc/boot/mpc8313erdb.dtd |
'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
개인적으로... 나쁜 기억력에 도움되라고 만들게되었습니다.
,