[PATCH 11/11] doc: bcm283x: document use of mini-uart on Raspberry Pi Zero W / CM3

Roland Hieber rhi at pengutronix.de
Sun Nov 29 14:50:42 EST 2020


On Sat, Nov 28, 2020 at 10:39:34PM +0100, Ahmad Fatoum wrote:
> As described in the UART configuration[1] article in the Raspberry Pi
> Foundation documentation, Raspberry Pi 3 & 4 as well as Zero W use the
> mini-uart as primary (easily user-accessible) UART. At least on the
> Raspberry Zero W and CM3, we need to pass uart_2ndstage=1, so the
> BootROM leaves the 8250 IP in a suitable state for use by barebox.
> Document this.
> 
> [1]: https://www.raspberrypi.org/documentation/configuration/uart.md
> 
> Cc: Roland Hieber <rhi at pengutronix.de>
> Cc: Rouven Czerwinski <rcz at pengutronix.de>
> Cc: Robert Carnecky <robert at neopsis.com>
> Cc: Andrew John <andrew at mobius-embedded-systems.co.uk>
> Signed-off-by: Ahmad Fatoum <ahmad at a3f.at>
> ---
>  Documentation/boards/bcm2835.rst | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/Documentation/boards/bcm2835.rst b/Documentation/boards/bcm2835.rst
> index c896871e0d82..dbdfc2633173 100644
> --- a/Documentation/boards/bcm2835.rst
> +++ b/Documentation/boards/bcm2835.rst
> @@ -23,6 +23,13 @@ Raspberry Pi
>           kernel=barebox.img
>           enable_uart=1
>  
> +     If you want to use the mini-uart instead of the PL011, you might need to additionally set::
> +
> +         uart_2ndstage=1
> +
> +     This is useful on newer boards like the Raspberry Pi Zero W and CM3, which route the
> +     more easily accessible primary UART to the mini-uart.

This seems to be non-optional on RPi Zero W, so I would word it more
strongly.

With this series, at least barebox boots, which is better than in master
:-) However, I cannot get the stock kernel (/boot/kernel.img) to boot on
Zero W, and I cannot figure out why:

    barebox at RaspberryPi Zero W:/ cat /boot/config.txt 
    enable_uart=1
    kernel=barebox.img
    uart_2ndstage=1
    barebox at RaspberryPi Zero W:/ global bootm.image=/boot/kernel.img
    barebox at RaspberryPi Zero W:/ global bootm.oftree=/boot/bcm2708-rpi-0-w.dtb
    barebox at RaspberryPi Zero W:/ global linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw" 
    barebox at RaspberryPi Zero W:/ bootm -v

    Loading ARM Linux zImage '/boot/kernel.img'
    OS image not yet relocated
    Passing control to ARM zImage handler
    no OS load address, defaulting to 0x014e9000
    no initrd load address, defaulting to 0x01a18000
    Loading devicetree from '/boot/bcm2708-rpi-0-w.dtb'
    commandline: console=ttyS1,115200n8 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rw

    Starting kernel at 0x014e9000, oftree at 0x01a18000...
    Starting kernel in secure mode

and then nothing happens at least for a minute.

I tried leaving 'uart_2ndstage=1' out, leaving 'enable_uart=1' out, setting
'console=ttyS1,115200n8' on the kernel command line, and setting
'console=ttyAMA0,115200n8' (as before), but nothing helped.

The same setup works on a RPI-1B (with bootm.oftree=/boot/bcm2708-rpi-b.dtb),
so at least there's that :)

Did you do anything else for your Zero W?

 - Roland

> +
>       (For more information, refer to the `documentation for config.txt`_.)
>  
>    5. Connect to board's UART (115200 8N1);
> -- 
> 2.28.0
> 
> 

-- 
Roland Hieber, Pengutronix e.K.          | r.hieber at pengutronix.de     |
Steuerwalder Str. 21                     | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686         | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list