Raspberrypi3: Mini UART driver

Niteesh gsnb.gn at gmail.com
Sun Dec 22 11:10:10 UTC 2019


The rpi1 and rpi2 use the PL011 UART, whereas, with RPI's equipped with
wireless/Bluetooth module, the PL011 is connected to the Bluetooth module,
and the mini UART is used as the primary UART.

https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf
But from the above doc (PAGE 10), the mini uart has 16550 like registers
and RTEMS already has the driver for it bsps/shared/dev/serial/ns16550.c.
But I am not sure how compatible they are? Should a new driver be
implemented from scratch or use ns16550 if possible?

Also, the core clock on which the PL011 is based on is changed in rpi3.
Rpi1 and 2 use 250Mhz as the default clock but it was changed to 400Mhz in
Rpi3 and newer

Few differences between PL011 and Mini uart
The mini UART has smaller FIFOs. Combined with the lack of flow control,
this makes it more prone to losing characters at higher baud rates. It is
also generally less capable than the PL011, mainly due to its baud rate
link to the VPU clock speed.

The particular deficiencies of the mini UART compared to the PL011 are :

No break detection
No framing errors detection
No parity bit
No receive timeout interrupt
No DCD, DSR, DTR or RI signals
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20191222/99f48470/attachment.html>


More information about the devel mailing list