[CentOS-virt] working config for xen which would transfer a serial interface

Philippe Naudin philippe.naudin at supagro.inra.fr
Fri Aug 6 11:10:55 EDT 2010


Le Fri, 06 Aug 2010 17:37:14 +0300,
Manuel Wolfshant <wolfy at 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 at 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,

-- 
Philippe




More information about the CentOS-virt mailing list