Dear NXP & Community,
As a beginner (and not a native speaker), I have a LDSK & NXP's RDB related question.
I currently use the LSDK 20.04 version and the LS2088a-rdb and LX2160a-rdb target system.
For some reason I'm going to use a 3rd party's PCIe card for serial rs-232 interface and for example, HW flow control, RI, DCD and some other HW signals needed.
I tried several different cards, one of them is a card using maxlinear xr17v352 chip.
Of course, cards using moschip mcs99xx, asix ax99100, and wch ch38x chips were also tested and the results were the same.
I confirmed that the 8250_exar.ko module included in LSDK Ubuntu kernel supports the xr17v352 chip.
So, I proceeded to configure the 8250_exar driver as a built-in kernel module in the LSDK environment, and the current ubuntu 4.19.68 configuration is as follows.
Device drivers
Character devices
Serial drivers
<*> 8250/16550 and compatible serial support
[*] Support 8250_core.* kernel options (DEPRECATED)
[*] 8250/16550 PNP device support
[*] Support for variants of the 16550A serial port (NEW)
[ ] Support for Fintek F81216A LPC to 4 UART RS485 API
[*] Console on 8250/16550 and compatible serial port
[*] DMA support for 16550 compatible UART controllers
<*> 8250/16550 PCI device support
<*> 8250/16550 Exar/Commtech PCI/PCIe device support
(4) Maximum number of 8250/16550 serial ports
(4) Number of 8250/16550 serial ports to register at runtime
[*] Extended 8250/16550 serial driver options
[ ] Support more than 4 legacy serial ports
and
Symbol: SERIAL_8250_EXAR [=y]
Type : tristate
Defined at drivers/tty/serial/8250/Kconfig:143
Prompt: 8250/16550 Exar/Commtech PCI/PCIe device support
Depends on: TTY [=y] && HAS_IOMEM [=y] && SERIAL_8250_PCI [=y]
Location:
-> Device Drivers
-> Character devices
-> Enable TTY (TTY [=y])
-> Serial drivers
-> 8250/16550 and compatible serial support (SERIAL_8250 [=y])
-> 8250/16550 PCI device support (SERIAL_8250_PCI [=y])
The results of the 'lspci' command appear to be normal.
root@localhost:~# lspci
0000:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 8240 (rev 11)
0001:00:00.0 PCI bridge: Freescale Semiconductor Inc Device 8240 (rev 11)
0000:01:00.0 Serial controller: Exar Corp. XR17V3521 Dual PCIe UART (rev 03)
root@localhost:~#
However, the /dev/ directory or ' dmesg | grep ttyS* ' command output does not show ttySxx devices for the PCIe serial/rs232 card.
root@localhost:~#
root@localhost:~# dmesg | grep ttyS*
[ 2.691336] 21c0500.serial: ttyS0 at MMIO 0x21c0500 (irq = 8, base_baud = 25000000) is a 16550A
[ 2.700333] 21c0600.serial: ttyS1 at MMIO 0x21c0600 (irq = 8, base_baud = 25000000) is a 16550A
[ 2.724682] 21d0500.serial: ttyS2 at MMIO 0x21d0500 (irq = 9, base_baud = 25000000) is a 16550A
[ 2.733578] 21d0600.serial: ttyS3 at MMIO 0x21d0600 (irq = 9, base_baud = 25000000) is a 16550A
root@localhost:~#
and
root@localhost:~# ls -l /dev/ttyS*
crw-rw---- 1 root dialout 4, 64 Aug 10 04:44 /dev/ttyS0
crw------- 1 root tty 4, 65 Aug 16 16:41 /dev/ttyS1
crw-rw---- 1 root dialout 4, 66 Aug 10 04:44 /dev/ttyS2
crw-rw---- 1 root dialout 4, 67 Aug 10 04:44 /dev/ttyS3
and information regarding my LS2088a & LX2160a RDB target system are as follows.
root@localhost:~#
root@localhost:~# hostnamectl
Static hostname: localhost
Icon name: computer
Machine ID: 6862545bc54044d2bd96ef336e3d49fd
Boot ID: fed229ca0a3642248898cc238421be7d
Operating System: NXP LSDK 2004 main
Kernel: Linux 4.19.68
Architecture: arm64
root@localhost:~#
I am trying to follow the steps below to solve the problem.
- Checking the process for Ubuntu kernel module configuration in LDSK and re-building the boot image.
or
- (Re-)Building 8250_exar.ko module using 8250_exar.c source code
and loading by 'insmod' or 'modprobe' commands in Ubuntu 4.19.68 of LS2088a/LX2160a RDB targets.
Is there any way to solve the problem? In particular, could the second method solve the problem?
Thanks for advice from experienced experts.
Regards,
Yong
Please download xr17v354 Linux driver from the following link.
https://www.maxlinear.com/product/interface/uarts/pcie-uarts/xr17v354
Then refer to readme to build and install the driver.