[U-Boot] [PATCH V2 5/5] rpi: BCM2837 and Raspberry Pi 3 32-bit support

Tom Rini trini at konsulko.com
Fri Mar 25 23:59:19 CET 2016


On Thu, Mar 24, 2016 at 10:15:20PM -0600, Stephen Warren wrote:

> The Raspberry Pi 3 contains a BCM2837 SoC. The BCM2837 is a BCM2836 with
> the CPU complex swapped out for a quad-core ARMv8. This can operate in 32-
> or 64-bit mode. 32-bit mode is the current default selected by the
> VideoCore firmware on the Raspberry Pi 3. This patch adds a 32-bit port of
> U-Boot for the Raspberry Pi 3.
> 
> From U-Boot's perspective, the only delta between the RPi 2 and RPi 3 is a
> change in usage of the SoC UARTs. On all previous Pis, the PL011 was the
> only UART in use. The Raspberry Pi 3 adds a Bluetooth module which uses a
> UART to connect to the SoC. By default, the PL011 is used for this purpose
> since it has larger FIFOs than the other "mini" UART. However, this can
> be configured via the VideoCore firmware's config.txt file. This patch
> hard-codes use of the mini UART in the RPi 3 port. If your system uses the
> PL011 UART for the console even on the RPi 3, please use the RPi 2 U-Boot
> port instead. A future change might determine which UART to use at
> run-time, thus allowing the RPi 2 and RPi 3 (32-bit) ports to be squashed
> together.
> 
> The mini UART has some limitations. One externally visible issue in the
> BCM2837 integration is that the UART divides the SoC's "core clock" to
> generate the baud rate. The core clock is typically variable, and under
> control of the VideoCore firmware for thermal management reasons. If the
> VC FW does modify the core clock rate, UART communication will be
> corrupted since the baud rate will vary from the expected value. This was
> not an issue for the PL011 UART, since it is fed by a fixed 3MHz clock. To
> work around this, the VideoCore firmware can be told not to modify the SoC
> core clock. However, the only way this can happen and be thermally safe is
> to limit the core clock to a low/minimum frequency. This leaves
> performance on the table for use-cases that don't care about a UART
> console. Consequently, use of the mini UART console must be explicitly
> requested by entering the following line into config.txt:
> 
>     enable_uart=1
> 
> A recent version of the VC firmware is required to ensure that the mini
> UART is fully and correctly initialized by the VC FW; at least
> firmware.git 046effa13ebc "firmware: arm_loader: emmc clock depends on
> core clock See: https://github.com/raspberrypi/firmware/issues/572".
> 
> Signed-off-by: Stephen Warren <swarren at wwwdotorg.org>

Reviewed-by: Tom Rini <trini at konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160325/cd130325/attachment.sig>


More information about the U-Boot mailing list