PXA255에 16c554이용해 UART확장 문의 드립니다..
우선 serial.c와 serial.h를 수정하여 아래와 같이
포트는 설정이 됩니다.. dmesg화면상에 아래와 같으 출력이 나옵니다.

Serial driver version 5.05c (2008-12-11) with no serial options enabled
ttyS00 at 0x0000 (irq = 14) is a PXA UART
ttyS01 at 0x0000 (irq = 13) is a PXA UART
ttyS02 at 0x0000 (irq = 12) is a PXA UART
ttyS03 at 0xf5010000x (irq = 41) is a 16C550
ttyS04 at 0xf5020000x (irq = 42) is a 16C550
ttyS05 at 0xf5030000x (irq = 43) is a 16C550
ttyS06 at 0xf5040000x (irq = 44) is a 16C550

문제는 실제 칩셀렉트가 안되고 있습니다.
가상주소에 대한 정의를 아래와 같이 하였습니다.
{ 0xF5010000, 0x16000000, 0x00010000, DOMAIN_IO, 0, 1, 0, 0 }, // CS5 : Serial CS1 A23:L, A24:L, A25:H
{ 0xF5020000, 0x16800000, 0x00010000, DOMAIN_IO, 0, 1, 0, 0 }, // CS5 : Serial CS2 A23:H, A24:L, A25:H
{ 0xF5030000, 0x17000000, 0x00010000, DOMAIN_IO, 0, 1, 0, 0 }, // CS5 : Serial CS3 A23:L, A24:H, A25:H
{ 0xF5040000, 0x17800000, 0x00010000, DOMAIN_IO, 0, 1, 0, 0 }, // CS5 : Serial CS4 A23:H, A24:H, A25:H

그리고 serial.h에서 확장 UART부분을 아래와 같이 정의하였습니다.

#define EXTRA_BAUD_BASE (3686400/16)
#define EXTRA_STD_COM_FLAGS (ASYNC_SKIP_TEST | ASYNC_LOW_LATENCY)

#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


그런데.. 오실로 스코프를 찍어보면
실제CPU의 cs5가 활성화가 안되고 있습니다.
몇리째 삽질중인데..

조언부탁드립니다..
많이 어렵네요..ㅠㅠ

=================================================================================================================
이미 체크해보셨을 수도 있겠지만 혹시나해서...
cs5 의 어드레스 영역에 정상적으로 접근이 되는지 보셨나요?
아직 안해보셨다면 cs5 의 어드레스 영역에 읽고 쓰기가 정상적으로 되는지 mmap 같은 걸 이용한 간단한 프로그램을 돌리신 후에 오실로스코프로 확인해 보셔도 될 것 같은데요...
=================================================================================================================답변감사합니다..
CS5가 살지 않아
임의의 디바이스드라이버를 많들어 같은 가상주소와 같은 물리주소를주고
칩셀렉트가 되는지를 확인해봤습니다...


시그널 아주 잘 뜹니다.. 그래서 더 미치겠슴다..ㅠㅠ

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

,