Home > other >  From the Linux user space set 16550 a FIFO UART hardware interrupt level
From the Linux user space set 16550 a FIFO UART hardware interrupt level

Time:04-26


I am currently using 16550 UART compatible, I want to be able to change the FIFO interrupt trigger level (I discarded under high load UART bytes, I want to reduce the threshold - this is a power shortage of embedded systems), of course, I can be in 8250 _port. C the pilot to change it, if I want to:
[PORT_NS16550A]={
.name="NS16550A",
Fifo_size=16,
Tx_loadsz=16,
The FCR=UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10,
The flags=UART_CAP_FIFO | UART_NATSEMI,
},

But it will be more convenient with the change from the user space without having to recompile the kernel,
I hope the following documentation has been out of date:

As of late 2000, is there any way in Linux users can set up the direct (setserial can't do that), although many PC only 1650 bytes of buffer, but better UARTS has a larger buffer,

If you do this ten years (for example, some new ioctl) up and down, then seterial (8) and stty (1) has not yet been exposed interface,








CodePudding user response:


I think this problem, the general solution is to use setserial to uart change pattern, for example, using Pericom PI7C9X7958, you can use a variety of operating modes, such as "550" and 950 models, the corresponding to 16550 or 16950 standard uart types, each model has a certain fifo size and some other related functions,
So, if your device supports, you can try to
Setserial - v/dev/UART is ttyS1 16950
And then verify
Setserial - g/dev/is/dev/ttyS1 ttyS1, UART: 16950/954, port: 0 xc800, IRQ: 16

CodePudding user response:

Excuse me, do you have Pericom PI7C9X7958 related circuit or design the Demo
  • Related