Welcome to the Linux Foundation Forum!

Pericom serial port driver for CentOS / Red Hat 7 with proper baud_base / uartclk

Posts: 1

How to port the serial driver shipped with CentOS 8.2 to CentOS 7.8?
Where in the kernel code uartclk is set/detected? (serial_struct.baud_base depends on uart_port.uartclk)

The hardware is a CompactPCIe computer, which consists of:

  • CPU card + side card SCZ-NVM (2 x RS-232, Pericom Semiconductor Device 7954, Subsystem: Pericom Semiconductor Device 7954)
  • peripheral card SU2-BALLAD (4 x RS-232, Pericom Semiconductor Device 7954, Subsystem: EKF Elektronik GmbH Device e224)

In CentOS 7 none of the 6 serial ports work; in CentOS 8 all serial ports work fine*, so I guess the driver shipped with CentOS 7 is incorrect. The cause of the problem is incorrect baud_base parameter (115200) and one solution is to set it to 921600 using setserial.

*Serial port drivers provided with CentOS 7/8 have a common, not very significant drawback:

  • they detect twice as many serial ports than the existing ones (4 instead of 2 and 8 instead of 4).

It would be great to have a driver that sets the correct baud_base and detects the correct number of serial ports.

Where in the kernel source code can I find the part responsible for setting uartclk for the hardware mentioned above?
(and the part responsible for detecting numer of serial ports, but it isn't crucial)

lspci -v

08:00.0 Serial controller: Pericom Semiconductor Device 7954 (prog-if 02 [16550])
Subsystem: EKF Elektronik GmbH Device e224
Flags: fast devsel, IRQ 19
I/O ports at a000 [size=64]
Memory at c1100000 (32-bit, non-prefetchable) [size=4K]
Kernel driver in use: serial

09:00.0 Serial controller: Pericom Semiconductor Device 7954 (prog-if 02 [16550])
Subsystem: Pericom Semiconductor Device 7954
Flags: fast devsel, IRQ 18
I/O ports at 9000 [size=64]
Memory at c1000000 (32-bit, non-prefetchable) [size=4K]
Kernel driver in use: serial

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Welcome!

It looks like you're new here. Sign in or register to get started.
Sign In

Categories

Upcoming Training