From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yegor Yefremov Date: Fri, 4 Dec 2015 15:10:14 +0100 Subject: [U-Boot] [U-Boot,v3,09/13] ns16550: unify serial_tegra In-Reply-To: <56619C3A.2070005@wytron.com.tw> References: <1447940895-7763-10-git-send-email-thomas@wytron.com.tw> <20151122155308.GE9551@bill-the-cat> <5660B514.2030703@wwwdotorg.org> <5660C870.9030607@wwwdotorg.org> <56619C3A.2070005@wytron.com.tw> Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Fri, Dec 4, 2015 at 2:59 PM, Thomas Chou 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). Yegor