[PATCH] arm: kirkwood: Enable uart0 dm-pre-reloc for Kirkwood boards

Tony Dinh mibodhi at gmail.com
Wed Feb 1 22:13:16 CET 2023


Hi all,

On Wed, Feb 1, 2023 at 11:05 AM Pali Rohár <pali at kernel.org> wrote:
>
> On Wednesday 01 February 2023 09:17:15 Michael Walle wrote:
> > > > > When DM_SERIAL is enabled, the device-tree property dm-pre-reloc is
> > > > > required to boot over UART with kwboot. Enable this in a Kirkwood
> > > > > common u-boot dtsi.
> > > >
> > > > My (dev) board unfortunately, have a bootloader which can't boot over
> > > > serial.
> > >
> > > This is feature of Marvell BootROM and does not require any special from
> > > Bootloader. So you should be able to boot over UART (if you have
> > > accessible pins).
> >
> > I know, but there are known versions ob the bootrom where uart boot
> > isn't supported (correctly).
>
> I heard about it... maybe it is a bug in client software (kwboot)? I do
> not have such board if you are interested in it I could try to send some
> details how to debug it.

The Kirkwood SoCs came with different BootROM versions. Version 1.1
cannot be booted over UART, but version 1.2  can. I think there must
be a bug in the BootROM 1.1. The older Kirkwood such as Sheevaplug,
Dockstar, iConnect boards come with BootROM 1.1. Later version of
Sheevaplug, GoFlex Home, GoFlex Net, Dreamplug, Pogoplug V4, Zyxel
NSA310S, NSA320, NSA325 come with BootROM 1.2. So even though it is
the same SoC, eg. 6281, they are actually produced at a different time
and have different BootROM versions.

When I test new u-boot images for boards such as Dockstar or iConnect,
I run kwboot with the GoFlex Home/Net. And they boot fine to a point
that allows me to see that the image is good enough. So in the
development phase, most if not all Kirkwood u-boot images can be
booted over UART. Some with real boards, some with surrogates.

> > I also have another board which can boot
> > over uart. But thats in daily use ;)
> >
> > > > Could you elaborate that a bit more? Why is this required for
> > > > uart boot? kwboot will talk with the bootrom why does u-boot need
> > > > anything? Or will there just be no output until the uart is
> > > > initialized?
> > >
> > > On mvebu/armada boards this dm-pre-reloc is required to ensure that DT
> > > nodes are present in SPL DTB file. Otherwise build process drop all
> > > non-pre-realoc nodes from SPL version of DTB file. And because SPL use
> > > DM serial, it is required to have uart DT nodes in DTB file. Btw, same
> > > problem is with SPI in SPL.
> > >
> > > But... kirkwood does not use SPL, so I do not know what is reason for
> > > this here.
> >
> > Yes thats what puzzled me, too.

When u-boot,dm-pre-reloc is not specified in the uart0 DTS node, after
the image was transferred by kwboot, the serial console is silent and
the board is frozen.

If I understand correctly, it is because before u-boot relocation, if
DM serial is enabled, the serial uclass is present, but it has not
been initialized (I think it is created but not "bind(?)" ). The
dm-preloc property works because it explicitly tells DM to fully
initialize the uclass before relocation. That was just my observation
about DM in general, devices do not get fully initialized until the
first use. So I tried the u-boot,dm-pre-reloc and it works. If my
assumption is incorrect, perhaps somebody can look at the serial
uclass and see if there is a different type of issue there.

Thanks,
Tony

> >
> > > > >
> > > > > Signed-off-by: Tony Dinh <mibodhi at gmail.com>
> > > > > ---
> > > > >
> > > > >  arch/arm/dts/kirkwood-u-boot.dtsi | 7 +++++++
> > > > >  1 file changed, 7 insertions(+)
> > > > >  create mode 100644 arch/arm/dts/kirkwood-u-boot.dtsi
> > > >
> > > > Is this new? AFAIK only <boardname>-u-boot.dtsi is included
> > > > automatically.
> > >
> > > It is not new, Tom wrote about it quite ago:
> > > https://lore.kernel.org/u-boot/20220802121113.GG1146598@bill-the-cat/
> >
> > Thats relatively new for someone not following the u-boot
> > development that closely ;) Thanks for the pointer.
> >
> > -michael
> >


More information about the U-Boot mailing list