JAEHOON LEE wrote: > Hi All. > > With helps by Dirk Behme, I got the messages like this. > > > Linux version : Current GIT kernel > UBoot version : Current GIT uboot > Root File System : provided by DVEVM > > > [When kernel boots, I got the messages.] > > serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A > console [ttyS0] enabled > serial8250.0: ttyS1 at MMIO 0x1c20400 (irq = 41) is a 16550A > serial8250.0: ttyS2 at MMIO 0x1c20800 (irq = 42) is a 16550A > > > [After booting, I checked this] > [EMAIL PROTECTED]:~# cat /proc/tty/driver/serial > serinfo:1.0 driver revision: > 0: uart:16550A mmio:0x01C20000 irq:40 tx:1847 rx:34 RTS|CTS|DTR|DSR > 1: uart:16550A mmio:0x01C20400 irq:41 tx:0 rx:0 CTS|DSR > 2: uart:16550A mmio:0x01C20800 irq:42 tx:0 rx:0 CTS|DSR > [EMAIL PROTECTED]:~# > > > [I edited the file /etc/udev/rules.d/compat.rules] > KERNEL="ttyS[0-9]*", SYMLINK="%k" > > > so I got the messages like this. > > [EMAIL PROTECTED]:/etc/udev/rules.d# ls -al /dev/ttyS* > lrwxrwxrwx 1 root root 5 Jan 1 12:00 /dev/ttyS0 -> tts/0 > lrwxrwxrwx 1 root root 5 Jan 1 12:00 /dev/ttyS1 -> tts/1 > lrwxrwxrwx 1 root root 5 Jan 1 12:00 /dev/ttyS2 -> tts/2 > > > [Question 1] > But, Here's the my question. > When I checked /proc/interruptes. I got this. > > [EMAIL PROTECTED]:/etc/udev/rules.d# cat /proc/interrupts > CPU0 > 0: 0 AINTC dm644xv4l2 > 8: 31550 AINTC davincifb > 12: 1 AINTC musb_hdrc > 13: 10348 AINTC EMAC > 16: 0 AINTC EDMA > 17: 0 AINTC EDMA CC Err > 18: 0 AINTC EDMA TC1 Err > 19: 0 AINTC EDMA TC2 Err > 26: 1053 AINTC mmc0 > 32: 52699 AINTC clockevent > 33: 3 AINTC free-run counter > 39: 186 AINTC i2c_davinci > 40: 1263 AINTC serial > Err: 0 > > Why does the serial interrupt appear only uart0 ?? > The interrupt number of Uart1 and Uart2 is 41 and 42. > > > [Question 2] I tested like this. > > [EMAIL PROTECTED]:/etc/udev/rules.d# cat /proc/tty/driver/serial > serinfo:1.0 driver revision: > 0: uart:16550A mmio:0x01C20000 irq:40 tx:8385 rx:424 RTS|CTS|DTR|DSR > 1: uart:16550A mmio:0x01C20400 irq:41 tx:0 rx:0 CTS|DSR > 2: uart:16550A mmio:0x01C20800 irq:42 tx:0 rx:0 CTS|DSR > > > [EMAIL PROTECTED]:/etc/udev/rules.d# echo "hello" > /dev/ttyS1 > > > [EMAIL PROTECTED]:/etc/udev/rules.d# cat /proc/tty/driver/serial > serinfo:1.0 driver revision: > 0: uart:16550A mmio:0x01C20000 irq:40 tx:8899 rx:480 RTS|CTS|DTR|DSR > 1: uart:16550A mmio:0x01C20400 irq:41 tx:7 rx:0 CTS|DSR > <---- this point > 2: uart:16550A mmio:0x01C20800 irq:42 tx:0 rx:0 CTS|DSR > > > when I tested echo "hello" > /dev/ttyS1, and examined /proc/tty/driver/serial > The number of tx for UART1 increased. > > > Is it impossible to register serial interrupt for UART1 and UART2? > > ** Is there anyone to help me with this problems? > > Any comments will help us.
Not sure about the missing interrupts in /proc/interrupts. Most probably this would mean that request_irq() in serial_link_irq_chain() in drivers/serial/8250.c isn't called. Only idea I have regarding this is to add some debug printks in 8250.c initialization call chain and see what (doesn't) happen there for UART1 and UART2. Some additional ideas: - Did you call davinci_serial_reset() in arch/arm/mach-davinci/serial.c three times (one time for each UART?) - Maybe you additionally have to enable UART1 and UART2 power? davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_UART1, 1); davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DAVINCI_LPSC_UART2, 1); may be necessary in davinci_psc_init() in arch/arm/mach-davinci/psc.c - Mailing list archive has some additional discussion about UART1 and UART2. What looks helpful is: http://linux.omap.com/pipermail/davinci-linux-open-source/2007-April/003097.html Best regards Dirk P.S.: Unfortunately DVEVM has only one serial port, so I can't test/debug myself ;( _______________________________________________ Davinci-linux-open-source mailing list Davinci-linux-open-source@linux.davincidsp.com http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source