[U-Boot] [U-Boot,v3,09/13] ns16550: unify serial_tegra

Tom Rini
2015-12-04T15:09:10Z

On Fri, Dec 04, 2015 at 03:10:14PM +0100, Yegor Yefremov wrote:
> On Fri, Dec 4, 2015 at 2:59 PM, Thomas Chou <thomas@wytron.com.tw> wrote:
> > Hi Stephen,
> >
> >
> > On 2015?12?04? 06:55, Stephen Warren wrote:
> >>
> >> The patch below appears to solve the problem. Any ideas how to fix this
> >> cleanly? I don't think we want to introduce a CONFIG_SPL_xxx for every
> >> CONFIG_xxx, yet CONFIG_IS_ENABLED() (e.g. used around
> >> arch/arm/mach-tegra/board.c's U_BOOT_DEVICE(ns16550_com1) definition)
> >> seems to require this.
> >>
> >> Unfortunately, the patch doesn't revert cleanly, or at least would
> >> require other more recent patches to be reverted first.
> >>
> >> Also, while debugging this I found that U-Boot force-probes any device
> >> referenced by /chosen/stdout-path even if the DT node is disabled; yet
> >> more fundamental incorrect DT processing:-( That's why the patch below
> >> only affects SPL. More fixes to actually enable the serial port in DT
> >> should be required.
> >>
> >> diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
> >> index fbfb204e6ec8..15609e7dc773 100644
> >> --- a/arch/arm/mach-tegra/Kconfig
> >> +++ b/arch/arm/mach-tegra/Kconfig
> >> @@ -1,5 +1,8 @@
> >> if TEGRA
> >>
> >> +config SPL_DM_SERIAL
> >> + bool "Fix build"
> >> +
> >> config TEGRA_COMMON
> >> bool "Tegra common options"
> >> select DM
> >> @@ -12,6 +15,7 @@ config TEGRA_COMMON
> >> select DM_SPI
> >> select DM_SPI_FLASH
> >> select OF_CONTROL
> >> + select SPL_DM_SERIAL
> >>
> >
> > But all serial drivers should be converted to driver model by the end of
> > Jan, 2016. The DM_SERIAL should be removed then.
> >
> > As SPL might not use OF_CONTROL. We might need better logic in tegra board.c
> > like,
> > SPL_BUILD ? SPL_OF_CONTROL : OF_CONTROL
> >
> >
> >> config TEGRA_ARMV7_COMMON
> >> bool "Tegra 32-bit common options"
> >> diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
> >> index 166deabcd436..256c7eafd76e 100644
> >> --- a/drivers/serial/ns16550.c
> >> +++ b/drivers/serial/ns16550.c
> >> @@ -451,5 +451,6 @@ U_BOOT_DRIVER(ns16550_serial) = {
> >> .priv_auto_alloc_size = sizeof(struct NS16550),
> >> .probe = ns16550_serial_probe,
> >> .ops = &ns16550_serial_ops,
> >> + .flags = DM_FLAG_PRE_RELOC,
> >
> >
> > Yes, this pre-reloc flag should be added.
> >
> >> };
> >> #endif /* CONFIG_DM_SERIAL */
>
> Have the same issue with am335x boards
> (http://lists.denx.de/pipermail/u-boot/2015-December/236615.html).

Bah. I tested this on omap4_panda where I didn't see a problem..

--
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/20151204/dddf22ec/attachment.sig>