LSDK, LS2088/LX2160 and Serial/RS232

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LSDK, LS2088/LX2160 and Serial/RS232

648 Views
YoungPKW
Contributor I

 

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

     root@localhost:~#

 

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

 

0 Kudos
1 Reply

639 Views
yipingwang
NXP TechSupport
NXP TechSupport

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.

0 Kudos