[Xenomai] Only 2 serial ports at a time with xeno_16550A driver

Jan Kiszka jan.kiszka at web.de
Sun May 20 09:53:44 CEST 2018


On 2018-05-20 09:43, C Smith wrote:
> An update:
> In the modprobe, I tried putting first the two ports which share IRQ 5:
> modprobe xeno_16550A io=0x02f8,0x2e8,0x3f8 irq=5,5,4
> results:
> "successfully initialized serial device rtser1 (fd=12)
> Problem setting up serial port 0 on rtser0, got: -16
> successfully initialized serial device rtser2 (fd=13)"
> 
> So rt_dev_open() returns -EBUSY on the first port which shared IRQ 5
> 
> Then I tried initializing only the two ports which share IRQ 5:
> modprobe xeno_16550A io=0x02f8,0x2e8 irq=5,5
> results:
> "successfully initialized serial device rtser1 (fd=12)
> Problem setting up serial port 0 on rtser0, got: -16"
> 
> So rt_dev_open() returns -EBUSY on the first port which shared IRQ 5
> 
> I reversed the order of the two ports which share IRQ 5:
>  modprobe xeno_16550A io=0x02e8,0x2f8 irq=5,5
> results:
> "successfully initialized serial device rtser1 (fd=12)
> Problem setting up serial port 0 on rtser0, got: -16"
> 
> So again rt_dev_open() returns -EBUSY on the first port which shared IRQ 5,
> even though it is a different port address now.
> 
> I recompiled the xeno_16550A driver with some printk()s in function
> rt_16550_init_io() of 16550A_io.h. That function has the potential to
> return -EBUSY if request_region() or mapped_io[] indicate failure, but
> nothing printed to dmesg when rt_dev_open() failed.
> 
> How else can I analyze why rt_dev_open() thinks a port is unavailable?
> 

Do you have CONFIG_XENO_OPT_SHIRQ enabled in your kernel?

Jan

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: OpenPGP digital signature
URL: <http://xenomai.org/pipermail/xenomai/attachments/20180520/ee3c79a9/attachment.sig>


More information about the Xenomai mailing list