Skip to content

Commit

Permalink
Update UART documentation for Raspberry Pi 5
Browse files Browse the repository at this point in the history
  • Loading branch information
nathan-contino committed Nov 22, 2023
1 parent 98dd615 commit f884ee7
Showing 1 changed file with 40 additions and 3 deletions.
43 changes: 40 additions & 3 deletions documentation/asciidoc/computers/configuration/uart.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,32 @@ There are two types of UART available on the Raspberry Pi - http://infocenter.a

All UARTs on the Raspberry Pi are 3.3V only - damage will occur if they are connected to 5V systems. An adaptor can be used to connect to 5V systems. Alternatively, low-cost USB to 3.3V serial adaptors are available from various third parties.

=== Raspberry Pi 5

On the Raspberry Pi 5, the primary UART is the mini UART port. The Raspberry Pi 5 also has an additional four PL011s, which are disabled by default:

|===
| Name | Type

| UART0
| PL011

| UART1
| mini UART

| UART2
| PL011

| UART3
| PL011

| UART4
| PL011

| UART5
| PL011
|===

=== Raspberry Pi Zero, 1, 2 and 3

The Raspberry Pi Zero, 1, 2, and 3 each contain two UARTs as follows:
Expand All @@ -20,7 +46,7 @@ The Raspberry Pi Zero, 1, 2, and 3 each contain two UARTs as follows:

=== Raspberry Pi 4 and 400

The Raspberry Pi 4B and 400 have an additional four PL011s, which are disabled by default:
The Raspberry Pi 4 Model B and 400 have an additional four PL011s, which are disabled by default:

|===
| Name | Type
Expand Down Expand Up @@ -96,6 +122,10 @@ The following table summarises the assignment of the first two UARTs:
| Raspberry Pi 4
| secondary (Bluetooth)
| primary

| Raspberry Pi 5
| secondary (Bluetooth)
| primary
|===

NOTE: The mini UART is disabled by default, whether it is designated primary or secondary UART.
Expand All @@ -118,7 +148,14 @@ Linux devices on Raspberry Pi OS:
| secondary UART
|===

NOTE: `/dev/serial0` and `/dev/serial1` are symbolic links which point to either `/dev/ttyS0` or `/dev/ttyAMA0`.
`/dev/serial0` and `/dev/serial1` are symbolic links which point to either `/dev/ttyS0` or `/dev/ttyAMA0`.

On the Raspberry Pi 5 `serial0` maps by default to `/dev/ttyAMA10`. Due to changes in Bookworm, `/dev/serial1` does not exist by default. You can enable `serial1` by setting the following values in `confix.txt`:

[source,bash]
----
dtparam=krnbt=off
----

=== Mini-UART and CPU Core Frequency

Expand Down Expand Up @@ -171,7 +208,7 @@ By default, the primary UART is assigned to the Linux console. If you wish to us

Although the Linux kernel starts the UARTs relatively early in the boot process, it is still long after some critical bits of infrastructure have been set up. A failure in those early stages can be hard to diagnose without access to the kernel log messages from that time. To enable `earlycon` support for one of the UARTs, add one of the following options to `cmdline.txt`, depending on which UART is the primary:

For Raspberry Pi 4, 400 and Compute Module 4:
For Raspberry Pi 5, 4, 400 and Compute Module 4:

----
earlycon=uart8250,mmio32,0xfe215040
Expand Down

0 comments on commit f884ee7

Please sign in to comment.