Hi Stefan, On Thu, Feb 2, 2023 at 8:28 PM Tony Dinh <mibo...@gmail.com> wrote: > > Hi all, > > On Thu, Feb 2, 2023 at 3:59 PM Tony Dinh <mibo...@gmail.com> wrote: > > > > Hi all, > > > > On Thu, Feb 2, 2023 at 10:04 AM Pali Rohár <p...@kernel.org> wrote: > > > > > > On Wednesday 01 February 2023 13:13:16 Tony Dinh wrote: > > > > Hi all, > > > > > > > > On Wed, Feb 1, 2023 at 11:05 AM Pali Rohár <p...@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. > > > > > > There are always multiple revisions of the same SoC. So it is possible > > > that something was broken on first revision of 88F6281 and in next > > > revision was updated BootROM with some fixes. Revision is written on > > > package label and for Armada SoCs it is available also in some register > > > (not sure about Kirkwood). It looks like that there is at least revision > > > Z0 and revision A0 of some Kirkwood SoC. > > > > > > If there is a bug in first revisions then it should be documented in > > > some Kirkwood Errata document. Unfortunately I have never seen it, it is > > > not public, so I have no idea. In any case, if somebody has access to > > > Marvell documents, interesting are these document numbers: > > > > > > * MV-S105223-001 - Differences Between the 88F6192, and 88F6281 Stepping > > > Z0 and A0 > > > * MV-S501081-00 - 88F6180, 88F6192, and 88F6281 Functional Errata, > > > Interface Guidelines, and Restrictions > > > * MV-S501157-U0 - 88F6180, 88F6190, 88F6192, and 88F6281 Functional > > > Errata, Interface Guidelines, and Restrictions > > > > > > One of the option how to investigate or debug this issue without > > > documentation is to dump both BootROM versions (1.1, 1.2) and compare > > > them. Either there is different UART protocol for booting (which needs > > > to be implemented) or UART protocol is buggy and needs some workaround > > > or it is completely broken and does not work. > > > > Here is an excerpt from doc/develop/driver-model/serial-howto.rst. > > > > Quote === > > Here are some things you might need to consider: > > > > 1. The serial driver itself needs to be present before relocation, so that > > the > > U-Boot banner appears. Make sure it has a u-boot,dm-pre-reloc tag > > in the device > > tree, so that the serial driver is bound when U-Boot starts. > > > > For example, on iMX8:: > > > > lpuart3: serial@5a090000 { > > compatible = "fsl,imx8qm-lpuart"; > > ... > > }; > > > > put this in your xxx-u-boot.dtsi file:: > > > > &lpuart3 { > > u-boot,dm-pre-proper; > > }; > > === Unquote > > > > So it looks like my understanding was correct. The serial driver is > > not bound if there is no u-boot,dm-pre-reloc tag. And does it sound > > like it is required for all targets because of this reason? > > Well, after giving it some thought I think my reasoning is not sound. > There must be a bug somewhere that the Pogo V4 triggers (the board > that has a silent console, and then freezes, when dm-pre-reloc is not > used for uart0). > > Because, even if the serial driver is not bound to the uclass, it > should boot with the silent console regardless? and after relocation, > u-boot should bind the serial driver, and we'd just lose the banner > part? >
I'm withdrawing this patch :) I've run the kwboot test on another Kirkwood board (NSA310S) without the u-boot,dm-pre-reloc tag, and it booted flawlessly! In fact, I could not cause it to hang like the Pogo V4. U-boot banner and everything was output as it normally would be. So the unsolved problem is specific to the Pogo V4, and the u-boot,dm-pre-reloc tag just happened to fix it. I'll run with DEBUG_UART to see if I can see a bit more clearly. The documentation for DM serial in doc/develop/driver-model/serial-howto.rst is probably somewhat obsolete. At least it is not applicable to some Kirkwood boards. All the best, Tony