Hi Shawn, Thanks, that fixes the problem!
Reviewed-by: Igor Opaniuk <igor.opan...@linaro.org> Tested-by: Igor Opaniuk <igor.opan...@linaro.org> On Wed, 12 Dec 2018 at 09:25, Shawn Guo <shawn....@linaro.org> wrote: > > Commit 4687919684e0 ("serial: Remove DM_FLAG_PRE_RELOC flag in various > drivers") essentially drops flag DM_FLAG_PRE_RELOC from serial_pl01x > driver for Poplar platform, because the platform falls into the > following strategy category made by the commit. > > Surround DM_FLAG_PRE_RELOC flag with OF_CONTROL check, for > drivers that support both statically declared devices and > configuration from device tree > > Before the commit lands, Poplar platform works by statically declaring > pl011 serial device via U_BOOT_DEVICE() with DM_FLAG_PRE_RELOC flag set > in the driver. But since Poplar also supports device configuration from > device tree, the commit practically drops the flag for Poplar, and hence > breaks the platform from booting. > > This patch changes platform code and device tree to initiate pl011 > serial device from device tree rather than static declaration, so that > above strategy about DM_FLAG_PRE_RELOC applies to Poplar, and therefore > the reported boot failure gets fixed. > > Reported-by: Igor Opaniuk <igor.opan...@linaro.org> > Fixes: 4687919684e0 ("serial: Remove DM_FLAG_PRE_RELOC flag in various > drivers") > Cc: Bin Meng <bmeng...@gmail.com> > Cc: Simon Glass <s...@chromium.org> > Signed-off-by: Shawn Guo <shawn....@linaro.org> > --- > arch/arm/dts/hi3798cv200-u-boot.dtsi | 10 ++-------- > board/hisilicon/poplar/poplar.c | 2 ++ > 2 files changed, 4 insertions(+), 8 deletions(-) > > diff --git a/arch/arm/dts/hi3798cv200-u-boot.dtsi > b/arch/arm/dts/hi3798cv200-u-boot.dtsi > index 709ae1cbc9f3..7844c5208c5d 100644 > --- a/arch/arm/dts/hi3798cv200-u-boot.dtsi > +++ b/arch/arm/dts/hi3798cv200-u-boot.dtsi > @@ -17,12 +17,6 @@ > }; > > &uart0 { > - status = "disabled"; > + clock = <75000000>; > + status = "okay"; > }; > - > -/{ > - chosen { > - stdout-path = ""; > - }; > -}; > - > diff --git a/board/hisilicon/poplar/poplar.c b/board/hisilicon/poplar/poplar.c > index 9e8eac78388b..8adc750962a1 100644 > --- a/board/hisilicon/poplar/poplar.c > +++ b/board/hisilicon/poplar/poplar.c > @@ -35,6 +35,7 @@ static struct mm_region poplar_mem_map[] = { > > struct mm_region *mem_map = poplar_mem_map; > > +#if !CONFIG_IS_ENABLED(OF_CONTROL) > static const struct pl01x_serial_platdata serial_platdata = { > .base = REG_BASE_UART0, > .type = TYPE_PL010, > @@ -45,6 +46,7 @@ U_BOOT_DEVICE(poplar_serial) = { > .name = "serial_pl01x", > .platdata = &serial_platdata, > }; > +#endif > > int checkboard(void) > { > -- > 2.18.0 > -- Regards, Igor Opaniuk _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot