serial: start_tx & buffer handling

Muni Sekhar munisekharrms at gmail.com
Thu May 3 10:38:48 EDT 2018


Hi All,

I’m trying to understand how user mode buffer is written to low level
serial hardware registers.

For this I read the kernel code and I came to know that from user mode
write() API lands into kernel’s tty_write() ("drivers/tty/tty_io.c")
and then it calls a uart_write() ("drivers/tty/serial/serial_core.c").

In uart_write(), the buffer is copied to circ_buf and then it calls
low level serial hardware driver’s start_tx() (struct uart_ops
.start_tx). But here I could not find how the buffer kept in circ_buf
is copied to serial port’s TX_FIFO registers?



Can someone take a moment to explain me on this?



-- 
Thanks,
Sekhar



More information about the Kernelnewbies mailing list