Le Fri, 06 Aug 2010 17:37:14 +0300, Manuel Wolfshant wolfy@nobugconsulting.ro a écrit :
On 08/06/2010 04:24 PM, Philippe Naudin wrote:
Are you sure your expansion board is based on the "classical" UART (8250 or 16550) ? Many add-on cards require specific modules.
Let's say I am 99% sure. It behaves exactly as a 16550, is listed in dmesg as 0000:03:05.0: ttyS0 at I/O 0xec00 (irq = 21) is a 16550A 0000:03:05.0: ttyS1 at I/O 0xe880 (irq = 21) is a 16550A and it works perfectly from Dom0. The only problem I face is transferring it to DomU.
This will not work on dom0 if the serial port is already shared, but you can try it when no domU is running :
$ for x in 0 1 2 3 4 ; do setserial /dev/ttyS$x ; done /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4 /dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 /dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3 /dev/ttyS4: No such file or directory
I did not mention in the first message, but both serial interfaces from the card are perfectly usable from Dom0, from a standard kernel and from Windows ( the computer was previously used to monitor some industrial equipments, without adding any special drivers).
[root@Dom0 ~]# for x in 0 1 2 3 4 ; do setserial /dev/ttyS$x ; done /dev/ttyS0, UART: 16550A, Port: 0xec00, IRQ: 21 /dev/ttyS1, UART: 16550A, Port: 0xe880, IRQ: 21 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 /dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3 /dev/ttyS4: No such file or directory
What I am not 100% sure is that we correctly blacklist all the
modules related to serial interfaces in Dom0. But OTOH exactly the same config ( modulo ports / irq ) works with the onboard interface.
Yes, quite surprising ...
And when you start the domU, is there any ttyS available for the dom0 ? In this case, with ttyS0 in use by a domU, I have on dom0 : $ for x in 0 1 2 3 4 ; do setserial /dev/ttyS$x ; done Cannot get serial info: Invalid argument /dev/ttyS1: No such device or address /dev/ttyS2: No such device or address /dev/ttyS3: No such device or address /dev/ttyS4: No such file or directory
And in domU : $ for x in 0 1 2 3 4 ; do setserial /dev/ttyS$x ; done /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4 /dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 /dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3 /dev/ttyS4: No such file or directory
One more thing to check : in your initial post, the serial port was on IRQ 11, now setserial see them on IRQ 21. When the domU is in use, the IRQ must be free in dom0 (you have shown the /proc/interrupts of domU, but not the one from dom0). Maybe irq = [11, 21] can help ?
Good luck, or week-end at least,