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 */


Best regards,
Thomas
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to