All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM
@ 2019-05-28  9:58 Bartosz Golaszewski
  2019-05-28  9:58 ` [U-Boot] [PATCH 1/4] davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE Bartosz Golaszewski
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-28  9:58 UTC (permalink / raw)
  To: u-boot

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

This series enables the driver model in SPL on omapl138-lcdk. First two
patches enable size-reducing options in defconfig. The third patch is
just a cleanup of the board file. Last patch enables the driver model
and defines the serial device so that we don't have to disable
CONFIG_SPL_DM_SERIAL which is enabled by default when selecting
CONFIG_SPL_DM.

Bartosz Golaszewski (4):
  davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE
  davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF
  davinci: omapl138-lcdk: remove unneeded includes
  davinci: omapl138-lcdk: enable driver-model in SPL

 board/davinci/da8xxevm/omapl138_lcdk.c | 18 ++++++++++++++++--
 configs/omapl138_lcdk_defconfig        |  7 +++++++
 2 files changed, 23 insertions(+), 2 deletions(-)

-- 
2.21.0

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 1/4] davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE
  2019-05-28  9:58 [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
@ 2019-05-28  9:58 ` Bartosz Golaszewski
  2019-05-28  9:58 ` [U-Boot] [PATCH 2/4] davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF Bartosz Golaszewski
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-28  9:58 UTC (permalink / raw)
  To: u-boot

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

We're working towards enabling the driver model in SPL for da850-lcdk.
Enable SPL_SYS_MALLOC_SIMPLE in defconfig to reduce SPL size.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 configs/omapl138_lcdk_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
index e43141844a..c8c20b0de1 100644
--- a/configs/omapl138_lcdk_defconfig
+++ b/configs/omapl138_lcdk_defconfig
@@ -19,6 +19,7 @@ CONFIG_VERSION_VARIABLE=y
 CONFIG_BOARD_EARLY_INIT_F=y
 CONFIG_SPL_TEXT_BASE=0x80000000
 CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_SYS_MALLOC_SIMPLE=y
 CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0xb5
 CONFIG_SPL_NAND_SUPPORT=y
 CONFIG_HUSH_PARSER=y
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 2/4] davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF
  2019-05-28  9:58 [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
  2019-05-28  9:58 ` [U-Boot] [PATCH 1/4] davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE Bartosz Golaszewski
@ 2019-05-28  9:58 ` Bartosz Golaszewski
  2019-05-28  9:58 ` [U-Boot] [PATCH 3/4] davinci: omapl138-lcdk: remove unneeded includes Bartosz Golaszewski
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-28  9:58 UTC (permalink / raw)
  To: u-boot

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

We're working towards enabling the driver-model in SPL for da850-lcdk.
Enable CONFIG_USE_TINY_PRINTF in defconfig to reduce SPL size.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 configs/omapl138_lcdk_defconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
index c8c20b0de1..b375da50df 100644
--- a/configs/omapl138_lcdk_defconfig
+++ b/configs/omapl138_lcdk_defconfig
@@ -57,3 +57,4 @@ CONFIG_DM_SERIAL=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DAVINCI_SPI=y
+CONFIG_USE_TINY_PRINTF=y
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 3/4] davinci: omapl138-lcdk: remove unneeded includes
  2019-05-28  9:58 [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
  2019-05-28  9:58 ` [U-Boot] [PATCH 1/4] davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE Bartosz Golaszewski
  2019-05-28  9:58 ` [U-Boot] [PATCH 2/4] davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF Bartosz Golaszewski
@ 2019-05-28  9:58 ` Bartosz Golaszewski
  2019-05-28  9:58 ` [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL Bartosz Golaszewski
  2019-06-24  8:18 ` [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
  4 siblings, 0 replies; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-28  9:58 UTC (permalink / raw)
  To: u-boot

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

There's no SPI on da850-lcdk. Remove unnecessary includes.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 board/davinci/da8xxevm/omapl138_lcdk.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
index 2c2f885d43..156d61d9fb 100644
--- a/board/davinci/da8xxevm/omapl138_lcdk.c
+++ b/board/davinci/da8xxevm/omapl138_lcdk.c
@@ -12,8 +12,6 @@
 #include <i2c.h>
 #include <net.h>
 #include <netdev.h>
-#include <spi.h>
-#include <spi_flash.h>
 #include <asm/arch/hardware.h>
 #include <asm/ti-common/davinci_nand.h>
 #include <asm/io.h>
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL
  2019-05-28  9:58 [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
                   ` (2 preceding siblings ...)
  2019-05-28  9:58 ` [U-Boot] [PATCH 3/4] davinci: omapl138-lcdk: remove unneeded includes Bartosz Golaszewski
@ 2019-05-28  9:58 ` Bartosz Golaszewski
  2019-05-28 15:05   ` Adam Ford
  2019-06-24  8:18 ` [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
  4 siblings, 1 reply; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-28  9:58 UTC (permalink / raw)
  To: u-boot

From: Bartosz Golaszewski <bgolaszewski@baylibre.com>

Enable CONFIG_SPL_DM and enable the driver model for serial by defining
an appropriate device in the board file for da850-lcdk.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 board/davinci/da8xxevm/omapl138_lcdk.c | 16 ++++++++++++++++
 configs/omapl138_lcdk_defconfig        |  5 +++++
 2 files changed, 21 insertions(+)

diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
index 156d61d9fb..b20747ba01 100644
--- a/board/davinci/da8xxevm/omapl138_lcdk.c
+++ b/board/davinci/da8xxevm/omapl138_lcdk.c
@@ -15,6 +15,8 @@
 #include <asm/arch/hardware.h>
 #include <asm/ti-common/davinci_nand.h>
 #include <asm/io.h>
+#include <ns16550.h>
+#include <dm/platdata.h>
 #include <linux/errno.h>
 #include <asm/mach-types.h>
 #include <asm/arch/davinci_misc.h>
@@ -369,3 +371,17 @@ int board_mmc_init(bd_t *bis)
 }
 #endif
 #endif
+
+#ifdef CONFIG_SPL_BUILD
+static const struct ns16550_platdata serial_pdata = {
+	.base = DAVINCI_UART2_BASE,
+	.reg_shift = 2,
+	.clock = 228000000,
+	.fcr = UART_FCR_DEFVAL,
+};
+
+U_BOOT_DEVICE(omapl138_uart) = {
+	.name = "ns16550_serial",
+	.platdata = &serial_pdata,
+};
+#endif
diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
index b375da50df..f53a51321c 100644
--- a/configs/omapl138_lcdk_defconfig
+++ b/configs/omapl138_lcdk_defconfig
@@ -33,10 +33,13 @@ CONFIG_CMD_MTDPARTS=y
 CONFIG_CMD_DIAG=y
 CONFIG_CMD_UBI=y
 CONFIG_OF_CONTROL=y
+CONFIG_SPL_OF_CONTROL=y
 CONFIG_DEFAULT_DEVICE_TREE="da850-lcdk"
+CONFIG_SPL_OF_PLATDATA=y
 CONFIG_ENV_IS_IN_NAND=y
 CONFIG_NET_RANDOM_ETHADDR=y
 CONFIG_DM=y
+CONFIG_SPL_DM=y
 CONFIG_DM_I2C=y
 CONFIG_DM_I2C_COMPAT=y
 CONFIG_SYS_I2C_DAVINCI=y
@@ -53,8 +56,10 @@ CONFIG_SPI_FLASH_STMICRO=y
 CONFIG_SPI_FLASH_WINBOND=y
 CONFIG_MII=y
 CONFIG_DRIVER_TI_EMAC=y
+CONFIG_SPECIFY_CONSOLE_INDEX=y
 CONFIG_DM_SERIAL=y
 CONFIG_SYS_NS16550=y
 CONFIG_SPI=y
 CONFIG_DAVINCI_SPI=y
 CONFIG_USE_TINY_PRINTF=y
+# CONFIG_SPL_OF_LIBFDT is not set
-- 
2.21.0

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL
  2019-05-28  9:58 ` [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL Bartosz Golaszewski
@ 2019-05-28 15:05   ` Adam Ford
  2019-05-29  9:40     ` Bartosz Golaszewski
  0 siblings, 1 reply; 14+ messages in thread
From: Adam Ford @ 2019-05-28 15:05 UTC (permalink / raw)
  To: u-boot

On Tue, May 28, 2019 at 2:58 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> Enable CONFIG_SPL_DM and enable the driver model for serial by defining
> an appropriate device in the board file for da850-lcdk.
>
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ---
>  board/davinci/da8xxevm/omapl138_lcdk.c | 16 ++++++++++++++++
>  configs/omapl138_lcdk_defconfig        |  5 +++++
>  2 files changed, 21 insertions(+)
>
> diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
> index 156d61d9fb..b20747ba01 100644
> --- a/board/davinci/da8xxevm/omapl138_lcdk.c
> +++ b/board/davinci/da8xxevm/omapl138_lcdk.c
> @@ -15,6 +15,8 @@
>  #include <asm/arch/hardware.h>
>  #include <asm/ti-common/davinci_nand.h>
>  #include <asm/io.h>
> +#include <ns16550.h>
> +#include <dm/platdata.h>
>  #include <linux/errno.h>
>  #include <asm/mach-types.h>
>  #include <asm/arch/davinci_misc.h>
> @@ -369,3 +371,17 @@ int board_mmc_init(bd_t *bis)
>  }
>  #endif
>  #endif
> +
> +#ifdef CONFIG_SPL_BUILD
> +static const struct ns16550_platdata serial_pdata = {
> +       .base = DAVINCI_UART2_BASE,
> +       .reg_shift = 2,
> +       .clock = 228000000,
> +       .fcr = UART_FCR_DEFVAL,
> +};
> +
> +U_BOOT_DEVICE(omapl138_uart) = {
> +       .name = "ns16550_serial",
> +       .platdata = &serial_pdata,
> +};
> +#endif
> diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> index b375da50df..f53a51321c 100644
> --- a/configs/omapl138_lcdk_defconfig
> +++ b/configs/omapl138_lcdk_defconfig
> @@ -33,10 +33,13 @@ CONFIG_CMD_MTDPARTS=y
>  CONFIG_CMD_DIAG=y
>  CONFIG_CMD_UBI=y
>  CONFIG_OF_CONTROL=y
> +CONFIG_SPL_OF_CONTROL=y

If SPL_OF_CONTROL is being added, why do you need to manually add the
stuff above for the serial port?  Checkout the da850-evm-u-boot.dtsi
file.  I adds the device tree entries for the serial port to appear in
the SPL DTB.

See http://git.denx.de/?p=u-boot.git;a=commit;h=f7c1d53605d9ec528abacda9ba1763c67221fc88


>  CONFIG_DEFAULT_DEVICE_TREE="da850-lcdk"
> +CONFIG_SPL_OF_PLATDATA=y
>  CONFIG_ENV_IS_IN_NAND=y
>  CONFIG_NET_RANDOM_ETHADDR=y
>  CONFIG_DM=y
> +CONFIG_SPL_DM=y
>  CONFIG_DM_I2C=y
>  CONFIG_DM_I2C_COMPAT=y
>  CONFIG_SYS_I2C_DAVINCI=y
> @@ -53,8 +56,10 @@ CONFIG_SPI_FLASH_STMICRO=y
>  CONFIG_SPI_FLASH_WINBOND=y
>  CONFIG_MII=y
>  CONFIG_DRIVER_TI_EMAC=y
> +CONFIG_SPECIFY_CONSOLE_INDEX=y
>  CONFIG_DM_SERIAL=y
>  CONFIG_SYS_NS16550=y
>  CONFIG_SPI=y
>  CONFIG_DAVINCI_SPI=y
>  CONFIG_USE_TINY_PRINTF=y
> +# CONFIG_SPL_OF_LIBFDT is not set
> --
> 2.21.0
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL
  2019-05-28 15:05   ` Adam Ford
@ 2019-05-29  9:40     ` Bartosz Golaszewski
  2019-05-29 13:04       ` Adam Ford
  0 siblings, 1 reply; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-29  9:40 UTC (permalink / raw)
  To: u-boot

wt., 28 maj 2019 o 17:05 Adam Ford <aford173@gmail.com> napisał(a):
>
> On Tue, May 28, 2019 at 2:58 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >
> > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> >
> > Enable CONFIG_SPL_DM and enable the driver model for serial by defining
> > an appropriate device in the board file for da850-lcdk.
> >
> > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > ---
> >  board/davinci/da8xxevm/omapl138_lcdk.c | 16 ++++++++++++++++
> >  configs/omapl138_lcdk_defconfig        |  5 +++++
> >  2 files changed, 21 insertions(+)
> >
> > diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
> > index 156d61d9fb..b20747ba01 100644
> > --- a/board/davinci/da8xxevm/omapl138_lcdk.c
> > +++ b/board/davinci/da8xxevm/omapl138_lcdk.c
> > @@ -15,6 +15,8 @@
> >  #include <asm/arch/hardware.h>
> >  #include <asm/ti-common/davinci_nand.h>
> >  #include <asm/io.h>
> > +#include <ns16550.h>
> > +#include <dm/platdata.h>
> >  #include <linux/errno.h>
> >  #include <asm/mach-types.h>
> >  #include <asm/arch/davinci_misc.h>
> > @@ -369,3 +371,17 @@ int board_mmc_init(bd_t *bis)
> >  }
> >  #endif
> >  #endif
> > +
> > +#ifdef CONFIG_SPL_BUILD
> > +static const struct ns16550_platdata serial_pdata = {
> > +       .base = DAVINCI_UART2_BASE,
> > +       .reg_shift = 2,
> > +       .clock = 228000000,
> > +       .fcr = UART_FCR_DEFVAL,
> > +};
> > +
> > +U_BOOT_DEVICE(omapl138_uart) = {
> > +       .name = "ns16550_serial",
> > +       .platdata = &serial_pdata,
> > +};
> > +#endif
> > diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> > index b375da50df..f53a51321c 100644
> > --- a/configs/omapl138_lcdk_defconfig
> > +++ b/configs/omapl138_lcdk_defconfig
> > @@ -33,10 +33,13 @@ CONFIG_CMD_MTDPARTS=y
> >  CONFIG_CMD_DIAG=y
> >  CONFIG_CMD_UBI=y
> >  CONFIG_OF_CONTROL=y
> > +CONFIG_SPL_OF_CONTROL=y
>
> If SPL_OF_CONTROL is being added, why do you need to manually add the
> stuff above for the serial port?  Checkout the da850-evm-u-boot.dtsi
> file.  I adds the device tree entries for the serial port to appear in
> the SPL DTB.
>
> See http://git.denx.de/?p=u-boot.git;a=commit;h=f7c1d53605d9ec528abacda9ba1763c67221fc88
>

I tried to follow the example from this patch but for some reason
adding u-boot,dm-spl; to the soc at 1c00000 node in
da850-lcdk-u-boot.dtsi results in the final image being reported as
corrupted by the aisimage tool:

[...]
  COPY    spl/u-boot-spl.dtb
  CC      spl/common/spl/spl.o
  LD      spl/common/spl/built-in.o
  CC      spl/lib/display_options.o
  LD      spl/lib/built-in.o
  LD      spl/u-boot-spl
  OBJCOPY spl/u-boot-spl-nodtb.bin
  CAT     spl/u-boot-spl-dtb.bin
  COPY    spl/u-boot-spl.bin
  MKIMAGE spl/u-boot-spl.ais
Error: -  AIS Image corrupted
  CAT     u-boot.ais
  CFGCHK  u-boot.cfg

The image doen't boot (or at least there's nothing on the console).

I'm not sure what's causing it. Any idea?

Bart

>
> >  CONFIG_DEFAULT_DEVICE_TREE="da850-lcdk"
> > +CONFIG_SPL_OF_PLATDATA=y
> >  CONFIG_ENV_IS_IN_NAND=y
> >  CONFIG_NET_RANDOM_ETHADDR=y
> >  CONFIG_DM=y
> > +CONFIG_SPL_DM=y
> >  CONFIG_DM_I2C=y
> >  CONFIG_DM_I2C_COMPAT=y
> >  CONFIG_SYS_I2C_DAVINCI=y
> > @@ -53,8 +56,10 @@ CONFIG_SPI_FLASH_STMICRO=y
> >  CONFIG_SPI_FLASH_WINBOND=y
> >  CONFIG_MII=y
> >  CONFIG_DRIVER_TI_EMAC=y
> > +CONFIG_SPECIFY_CONSOLE_INDEX=y
> >  CONFIG_DM_SERIAL=y
> >  CONFIG_SYS_NS16550=y
> >  CONFIG_SPI=y
> >  CONFIG_DAVINCI_SPI=y
> >  CONFIG_USE_TINY_PRINTF=y
> > +# CONFIG_SPL_OF_LIBFDT is not set
> > --
> > 2.21.0
> >

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL
  2019-05-29  9:40     ` Bartosz Golaszewski
@ 2019-05-29 13:04       ` Adam Ford
  2019-05-29 13:23         ` Bartosz Golaszewski
  0 siblings, 1 reply; 14+ messages in thread
From: Adam Ford @ 2019-05-29 13:04 UTC (permalink / raw)
  To: u-boot

On Wed, May 29, 2019 at 4:40 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> wt., 28 maj 2019 o 17:05 Adam Ford <aford173@gmail.com> napisał(a):
> >
> > On Tue, May 28, 2019 at 2:58 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> > >
> > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > >
> > > Enable CONFIG_SPL_DM and enable the driver model for serial by defining
> > > an appropriate device in the board file for da850-lcdk.
> > >
> > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > ---
> > >  board/davinci/da8xxevm/omapl138_lcdk.c | 16 ++++++++++++++++
> > >  configs/omapl138_lcdk_defconfig        |  5 +++++
> > >  2 files changed, 21 insertions(+)
> > >
> > > diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > index 156d61d9fb..b20747ba01 100644
> > > --- a/board/davinci/da8xxevm/omapl138_lcdk.c
> > > +++ b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > @@ -15,6 +15,8 @@
> > >  #include <asm/arch/hardware.h>
> > >  #include <asm/ti-common/davinci_nand.h>
> > >  #include <asm/io.h>
> > > +#include <ns16550.h>
> > > +#include <dm/platdata.h>
> > >  #include <linux/errno.h>
> > >  #include <asm/mach-types.h>
> > >  #include <asm/arch/davinci_misc.h>
> > > @@ -369,3 +371,17 @@ int board_mmc_init(bd_t *bis)
> > >  }
> > >  #endif
> > >  #endif
> > > +
> > > +#ifdef CONFIG_SPL_BUILD
> > > +static const struct ns16550_platdata serial_pdata = {
> > > +       .base = DAVINCI_UART2_BASE,
> > > +       .reg_shift = 2,
> > > +       .clock = 228000000,
> > > +       .fcr = UART_FCR_DEFVAL,
> > > +};
> > > +
> > > +U_BOOT_DEVICE(omapl138_uart) = {
> > > +       .name = "ns16550_serial",
> > > +       .platdata = &serial_pdata,
> > > +};
> > > +#endif
> > > diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> > > index b375da50df..f53a51321c 100644
> > > --- a/configs/omapl138_lcdk_defconfig
> > > +++ b/configs/omapl138_lcdk_defconfig
> > > @@ -33,10 +33,13 @@ CONFIG_CMD_MTDPARTS=y
> > >  CONFIG_CMD_DIAG=y
> > >  CONFIG_CMD_UBI=y
> > >  CONFIG_OF_CONTROL=y
> > > +CONFIG_SPL_OF_CONTROL=y
> >
> > If SPL_OF_CONTROL is being added, why do you need to manually add the
> > stuff above for the serial port?  Checkout the da850-evm-u-boot.dtsi
> > file.  I adds the device tree entries for the serial port to appear in
> > the SPL DTB.
> >
> > See http://git.denx.de/?p=u-boot.git;a=commit;h=f7c1d53605d9ec528abacda9ba1763c67221fc88
> >
>
> I tried to follow the example from this patch but for some reason
> adding u-boot,dm-spl; to the soc at 1c00000 node in
> da850-lcdk-u-boot.dtsi results in the final image being reported as
> corrupted by the aisimage tool:
>
> [...]
>   COPY    spl/u-boot-spl.dtb
>   CC      spl/common/spl/spl.o
>   LD      spl/common/spl/built-in.o
>   CC      spl/lib/display_options.o
>   LD      spl/lib/built-in.o
>   LD      spl/u-boot-spl
>   OBJCOPY spl/u-boot-spl-nodtb.bin
>   CAT     spl/u-boot-spl-dtb.bin
>   COPY    spl/u-boot-spl.bin
>   MKIMAGE spl/u-boot-spl.ais
> Error: -  AIS Image corrupted
>   CAT     u-boot.ais
>   CFGCHK  u-boot.cfg
>
> The image doen't boot (or at least there's nothing on the console).
>
> I'm not sure what's causing it. Any idea?

I got the same 'AIS Image corrupted' message if the SPL + DTB image is
too large.

I enabled SPL_SYS_MALLOC_SIMPLE along with USE_TINY_PRINTF reduced my code size:
(see commit c4fa049a121457ff38b74daac32e18d7afbd4538)
    Original:
      text    data     bss     dec     hex filename
      20760    1216      80   22056    5628 spl/u-boot-spl

    Tiny Printf
       text    data     bss     dec     hex filename
      17947    1216      80   19243    4b2b spl/u-boot-spl

    Malloc Simple + Tiny Printf
       text    data     bss     dec     hex filename
      15187     176      28   15391    3c1f spl/u-boot-spl

I think you can also setup CONFIG_SPL_SYS_THUMB_BUILD to also reduce
size.  The DA850 evm has that and CONFIG_SYS_THUMB_BUILD set to shrink
U-Boot.
I just ran some checks and disabling CONFIG_SPL_SYS_THUMB_BUILD makes
the u-boot-spl file overflow the space requirements.  With it enabled,
it builds
  text    data     bss     dec     hex filename
24356    1144      24   25524    63b4 spl/u-boot-spl

For U-Boot proper, the difference between CONFIG_SYS_THUMB_BUILD and
not using it is

with CONFIG_SYS_THUMB_BUILD
   text    data     bss     dec     hex filename
 324147   19700   58256 402103   622b7 u-boot

(not using it)
   text    data     bss     dec     hex filename
 423167   19700   58248 501115   7a57b u-boot

So the size is about 25% smaller with it enabled.

Unrelated to size, but something you want to consider is to increase
your available malloc pool size to accommodate the device tree stuff
once you've managed to shrink the code.  For da850evm,
SPL_SYS_MALLOC_F_LEN = 0x800

adam

>
> Bart
>
> >
> > >  CONFIG_DEFAULT_DEVICE_TREE="da850-lcdk"
> > > +CONFIG_SPL_OF_PLATDATA=y
> > >  CONFIG_ENV_IS_IN_NAND=y
> > >  CONFIG_NET_RANDOM_ETHADDR=y
> > >  CONFIG_DM=y
> > > +CONFIG_SPL_DM=y
> > >  CONFIG_DM_I2C=y
> > >  CONFIG_DM_I2C_COMPAT=y
> > >  CONFIG_SYS_I2C_DAVINCI=y
> > > @@ -53,8 +56,10 @@ CONFIG_SPI_FLASH_STMICRO=y
> > >  CONFIG_SPI_FLASH_WINBOND=y
> > >  CONFIG_MII=y
> > >  CONFIG_DRIVER_TI_EMAC=y
> > > +CONFIG_SPECIFY_CONSOLE_INDEX=y
> > >  CONFIG_DM_SERIAL=y
> > >  CONFIG_SYS_NS16550=y
> > >  CONFIG_SPI=y
> > >  CONFIG_DAVINCI_SPI=y
> > >  CONFIG_USE_TINY_PRINTF=y
> > > +# CONFIG_SPL_OF_LIBFDT is not set
> > > --
> > > 2.21.0
> > >

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL
  2019-05-29 13:04       ` Adam Ford
@ 2019-05-29 13:23         ` Bartosz Golaszewski
  2019-05-29 13:47           ` Adam Ford
  0 siblings, 1 reply; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-29 13:23 UTC (permalink / raw)
  To: u-boot

śr., 29 maj 2019 o 15:04 Adam Ford <aford173@gmail.com> napisał(a):
>
> On Wed, May 29, 2019 at 4:40 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >
> > wt., 28 maj 2019 o 17:05 Adam Ford <aford173@gmail.com> napisał(a):
> > >
> > > On Tue, May 28, 2019 at 2:58 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> > > >
> > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > >
> > > > Enable CONFIG_SPL_DM and enable the driver model for serial by defining
> > > > an appropriate device in the board file for da850-lcdk.
> > > >
> > > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > > ---
> > > >  board/davinci/da8xxevm/omapl138_lcdk.c | 16 ++++++++++++++++
> > > >  configs/omapl138_lcdk_defconfig        |  5 +++++
> > > >  2 files changed, 21 insertions(+)
> > > >
> > > > diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > index 156d61d9fb..b20747ba01 100644
> > > > --- a/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > +++ b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > @@ -15,6 +15,8 @@
> > > >  #include <asm/arch/hardware.h>
> > > >  #include <asm/ti-common/davinci_nand.h>
> > > >  #include <asm/io.h>
> > > > +#include <ns16550.h>
> > > > +#include <dm/platdata.h>
> > > >  #include <linux/errno.h>
> > > >  #include <asm/mach-types.h>
> > > >  #include <asm/arch/davinci_misc.h>
> > > > @@ -369,3 +371,17 @@ int board_mmc_init(bd_t *bis)
> > > >  }
> > > >  #endif
> > > >  #endif
> > > > +
> > > > +#ifdef CONFIG_SPL_BUILD
> > > > +static const struct ns16550_platdata serial_pdata = {
> > > > +       .base = DAVINCI_UART2_BASE,
> > > > +       .reg_shift = 2,
> > > > +       .clock = 228000000,
> > > > +       .fcr = UART_FCR_DEFVAL,
> > > > +};
> > > > +
> > > > +U_BOOT_DEVICE(omapl138_uart) = {
> > > > +       .name = "ns16550_serial",
> > > > +       .platdata = &serial_pdata,
> > > > +};
> > > > +#endif
> > > > diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> > > > index b375da50df..f53a51321c 100644
> > > > --- a/configs/omapl138_lcdk_defconfig
> > > > +++ b/configs/omapl138_lcdk_defconfig
> > > > @@ -33,10 +33,13 @@ CONFIG_CMD_MTDPARTS=y
> > > >  CONFIG_CMD_DIAG=y
> > > >  CONFIG_CMD_UBI=y
> > > >  CONFIG_OF_CONTROL=y
> > > > +CONFIG_SPL_OF_CONTROL=y
> > >
> > > If SPL_OF_CONTROL is being added, why do you need to manually add the
> > > stuff above for the serial port?  Checkout the da850-evm-u-boot.dtsi
> > > file.  I adds the device tree entries for the serial port to appear in
> > > the SPL DTB.
> > >
> > > See http://git.denx.de/?p=u-boot.git;a=commit;h=f7c1d53605d9ec528abacda9ba1763c67221fc88
> > >
> >
> > I tried to follow the example from this patch but for some reason
> > adding u-boot,dm-spl; to the soc at 1c00000 node in
> > da850-lcdk-u-boot.dtsi results in the final image being reported as
> > corrupted by the aisimage tool:
> >
> > [...]
> >   COPY    spl/u-boot-spl.dtb
> >   CC      spl/common/spl/spl.o
> >   LD      spl/common/spl/built-in.o
> >   CC      spl/lib/display_options.o
> >   LD      spl/lib/built-in.o
> >   LD      spl/u-boot-spl
> >   OBJCOPY spl/u-boot-spl-nodtb.bin
> >   CAT     spl/u-boot-spl-dtb.bin
> >   COPY    spl/u-boot-spl.bin
> >   MKIMAGE spl/u-boot-spl.ais
> > Error: -  AIS Image corrupted
> >   CAT     u-boot.ais
> >   CFGCHK  u-boot.cfg
> >
> > The image doen't boot (or at least there's nothing on the console).
> >
> > I'm not sure what's causing it. Any idea?
>
> I got the same 'AIS Image corrupted' message if the SPL + DTB image is
> too large.
>
> I enabled SPL_SYS_MALLOC_SIMPLE along with USE_TINY_PRINTF reduced my code size:
> (see commit c4fa049a121457ff38b74daac32e18d7afbd4538)
>     Original:
>       text    data     bss     dec     hex filename
>       20760    1216      80   22056    5628 spl/u-boot-spl
>
>     Tiny Printf
>        text    data     bss     dec     hex filename
>       17947    1216      80   19243    4b2b spl/u-boot-spl
>
>     Malloc Simple + Tiny Printf
>        text    data     bss     dec     hex filename
>       15187     176      28   15391    3c1f spl/u-boot-spl
>
> I think you can also setup CONFIG_SPL_SYS_THUMB_BUILD to also reduce
> size.  The DA850 evm has that and CONFIG_SYS_THUMB_BUILD set to shrink
> U-Boot.
> I just ran some checks and disabling CONFIG_SPL_SYS_THUMB_BUILD makes
> the u-boot-spl file overflow the space requirements.  With it enabled,
> it builds
>   text    data     bss     dec     hex filename
> 24356    1144      24   25524    63b4 spl/u-boot-spl
>
> For U-Boot proper, the difference between CONFIG_SYS_THUMB_BUILD and
> not using it is
>
> with CONFIG_SYS_THUMB_BUILD
>    text    data     bss     dec     hex filename
>  324147   19700   58256 402103   622b7 u-boot
>
> (not using it)
>    text    data     bss     dec     hex filename
>  423167   19700   58248 501115   7a57b u-boot
>

Even with THUMB and other code shrinking options I still get the same
error. In fact I even disabled MMC support in SPL just to see if it'll
work and I still get the same error despite the size of the resulting
SPL image being well within limit:

   text    data     bss     dec     hex filename
  19269    3692    1368   24329    5f09 spl/u-boot-spl

as opposed to

   text    data     bss     dec     hex filename
  27766    4008    1368   33142    8176 spl/u-boot-spl

with MMC in SPL.

Also this error pops up only when extending the soc node of the device
tree. If I do this:

/ {
    aliases {
        i2c0 = &i2c0;
    };

    foo {
        compatible = "foo";
    };

    bar {
        compatible = "bar";
    };
};

It builds fine. I think the culprit is somewhere else here.

Bart

> So the size is about 25% smaller with it enabled.
>
> Unrelated to size, but something you want to consider is to increase
> your available malloc pool size to accommodate the device tree stuff
> once you've managed to shrink the code.  For da850evm,
> SPL_SYS_MALLOC_F_LEN = 0x800
>
> adam
>
> >
> > Bart
> >
> > >
> > > >  CONFIG_DEFAULT_DEVICE_TREE="da850-lcdk"
> > > > +CONFIG_SPL_OF_PLATDATA=y
> > > >  CONFIG_ENV_IS_IN_NAND=y
> > > >  CONFIG_NET_RANDOM_ETHADDR=y
> > > >  CONFIG_DM=y
> > > > +CONFIG_SPL_DM=y
> > > >  CONFIG_DM_I2C=y
> > > >  CONFIG_DM_I2C_COMPAT=y
> > > >  CONFIG_SYS_I2C_DAVINCI=y
> > > > @@ -53,8 +56,10 @@ CONFIG_SPI_FLASH_STMICRO=y
> > > >  CONFIG_SPI_FLASH_WINBOND=y
> > > >  CONFIG_MII=y
> > > >  CONFIG_DRIVER_TI_EMAC=y
> > > > +CONFIG_SPECIFY_CONSOLE_INDEX=y
> > > >  CONFIG_DM_SERIAL=y
> > > >  CONFIG_SYS_NS16550=y
> > > >  CONFIG_SPI=y
> > > >  CONFIG_DAVINCI_SPI=y
> > > >  CONFIG_USE_TINY_PRINTF=y
> > > > +# CONFIG_SPL_OF_LIBFDT is not set
> > > > --
> > > > 2.21.0
> > > >

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL
  2019-05-29 13:23         ` Bartosz Golaszewski
@ 2019-05-29 13:47           ` Adam Ford
  2019-05-29 14:15             ` Bartosz Golaszewski
  0 siblings, 1 reply; 14+ messages in thread
From: Adam Ford @ 2019-05-29 13:47 UTC (permalink / raw)
  To: u-boot

On Wed, May 29, 2019 at 8:23 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> śr., 29 maj 2019 o 15:04 Adam Ford <aford173@gmail.com> napisał(a):
> >
> > On Wed, May 29, 2019 at 4:40 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> > >
> > > wt., 28 maj 2019 o 17:05 Adam Ford <aford173@gmail.com> napisał(a):
> > > >
> > > > On Tue, May 28, 2019 at 2:58 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> > > > >
> > > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > > >
> > > > > Enable CONFIG_SPL_DM and enable the driver model for serial by defining
> > > > > an appropriate device in the board file for da850-lcdk.
> > > > >
> > > > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > > > ---
> > > > >  board/davinci/da8xxevm/omapl138_lcdk.c | 16 ++++++++++++++++
> > > > >  configs/omapl138_lcdk_defconfig        |  5 +++++
> > > > >  2 files changed, 21 insertions(+)
> > > > >
> > > > > diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > > index 156d61d9fb..b20747ba01 100644
> > > > > --- a/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > > +++ b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > > @@ -15,6 +15,8 @@
> > > > >  #include <asm/arch/hardware.h>
> > > > >  #include <asm/ti-common/davinci_nand.h>
> > > > >  #include <asm/io.h>
> > > > > +#include <ns16550.h>
> > > > > +#include <dm/platdata.h>
> > > > >  #include <linux/errno.h>
> > > > >  #include <asm/mach-types.h>
> > > > >  #include <asm/arch/davinci_misc.h>
> > > > > @@ -369,3 +371,17 @@ int board_mmc_init(bd_t *bis)
> > > > >  }
> > > > >  #endif
> > > > >  #endif
> > > > > +
> > > > > +#ifdef CONFIG_SPL_BUILD
> > > > > +static const struct ns16550_platdata serial_pdata = {
> > > > > +       .base = DAVINCI_UART2_BASE,
> > > > > +       .reg_shift = 2,
> > > > > +       .clock = 228000000,
> > > > > +       .fcr = UART_FCR_DEFVAL,
> > > > > +};
> > > > > +
> > > > > +U_BOOT_DEVICE(omapl138_uart) = {
> > > > > +       .name = "ns16550_serial",
> > > > > +       .platdata = &serial_pdata,
> > > > > +};
> > > > > +#endif
> > > > > diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> > > > > index b375da50df..f53a51321c 100644
> > > > > --- a/configs/omapl138_lcdk_defconfig
> > > > > +++ b/configs/omapl138_lcdk_defconfig
> > > > > @@ -33,10 +33,13 @@ CONFIG_CMD_MTDPARTS=y
> > > > >  CONFIG_CMD_DIAG=y
> > > > >  CONFIG_CMD_UBI=y
> > > > >  CONFIG_OF_CONTROL=y
> > > > > +CONFIG_SPL_OF_CONTROL=y
> > > >
> > > > If SPL_OF_CONTROL is being added, why do you need to manually add the
> > > > stuff above for the serial port?  Checkout the da850-evm-u-boot.dtsi
> > > > file.  I adds the device tree entries for the serial port to appear in
> > > > the SPL DTB.
> > > >
> > > > See http://git.denx.de/?p=u-boot.git;a=commit;h=f7c1d53605d9ec528abacda9ba1763c67221fc88
> > > >
> > >
> > > I tried to follow the example from this patch but for some reason
> > > adding u-boot,dm-spl; to the soc at 1c00000 node in
> > > da850-lcdk-u-boot.dtsi results in the final image being reported as
> > > corrupted by the aisimage tool:
> > >
> > > [...]
> > >   COPY    spl/u-boot-spl.dtb
> > >   CC      spl/common/spl/spl.o
> > >   LD      spl/common/spl/built-in.o
> > >   CC      spl/lib/display_options.o
> > >   LD      spl/lib/built-in.o
> > >   LD      spl/u-boot-spl
> > >   OBJCOPY spl/u-boot-spl-nodtb.bin
> > >   CAT     spl/u-boot-spl-dtb.bin
> > >   COPY    spl/u-boot-spl.bin
> > >   MKIMAGE spl/u-boot-spl.ais
> > > Error: -  AIS Image corrupted
> > >   CAT     u-boot.ais
> > >   CFGCHK  u-boot.cfg
> > >
> > > The image doen't boot (or at least there's nothing on the console).
> > >
> > > I'm not sure what's causing it. Any idea?
> >
> > I got the same 'AIS Image corrupted' message if the SPL + DTB image is
> > too large.
> >
> > I enabled SPL_SYS_MALLOC_SIMPLE along with USE_TINY_PRINTF reduced my code size:
> > (see commit c4fa049a121457ff38b74daac32e18d7afbd4538)
> >     Original:
> >       text    data     bss     dec     hex filename
> >       20760    1216      80   22056    5628 spl/u-boot-spl
> >
> >     Tiny Printf
> >        text    data     bss     dec     hex filename
> >       17947    1216      80   19243    4b2b spl/u-boot-spl
> >
> >     Malloc Simple + Tiny Printf
> >        text    data     bss     dec     hex filename
> >       15187     176      28   15391    3c1f spl/u-boot-spl
> >
> > I think you can also setup CONFIG_SPL_SYS_THUMB_BUILD to also reduce
> > size.  The DA850 evm has that and CONFIG_SYS_THUMB_BUILD set to shrink
> > U-Boot.
> > I just ran some checks and disabling CONFIG_SPL_SYS_THUMB_BUILD makes
> > the u-boot-spl file overflow the space requirements.  With it enabled,
> > it builds
> >   text    data     bss     dec     hex filename
> > 24356    1144      24   25524    63b4 spl/u-boot-spl
> >
> > For U-Boot proper, the difference between CONFIG_SYS_THUMB_BUILD and
> > not using it is
> >
> > with CONFIG_SYS_THUMB_BUILD
> >    text    data     bss     dec     hex filename
> >  324147   19700   58256 402103   622b7 u-boot
> >
> > (not using it)
> >    text    data     bss     dec     hex filename
> >  423167   19700   58248 501115   7a57b u-boot
> >
>
> Even with THUMB and other code shrinking options I still get the same
> error. In fact I even disabled MMC support in SPL just to see if it'll
> work and I still get the same error despite the size of the resulting
> SPL image being well within limit:
>
>    text    data     bss     dec     hex filename
>   19269    3692    1368   24329    5f09 spl/u-boot-spl
>
> as opposed to
>
>    text    data     bss     dec     hex filename
>   27766    4008    1368   33142    8176 spl/u-boot-spl
>
> with MMC in SPL.
>
> Also this error pops up only when extending the soc node of the device
> tree. If I do this:
>
> / {
>     aliases {
>         i2c0 = &i2c0;
>     };
>
>     foo {
>         compatible = "foo";
>     };
>
>     bar {
>         compatible = "bar";
>     };
> };
>
> It builds fine. I think the culprit is somewhere else here.

Maybe keeping the DM chunks of C code as starting point is better.
Once it's all merged, it can always be improved later.  I threw out
the idea as a suggestion, but it's clearly not as simple as I original
thought.

adam
>
> Bart
>
> > So the size is about 25% smaller with it enabled.
> >
> > Unrelated to size, but something you want to consider is to increase
> > your available malloc pool size to accommodate the device tree stuff
> > once you've managed to shrink the code.  For da850evm,
> > SPL_SYS_MALLOC_F_LEN = 0x800
> >
> > adam
> >
> > >
> > > Bart
> > >
> > > >
> > > > >  CONFIG_DEFAULT_DEVICE_TREE="da850-lcdk"
> > > > > +CONFIG_SPL_OF_PLATDATA=y
> > > > >  CONFIG_ENV_IS_IN_NAND=y
> > > > >  CONFIG_NET_RANDOM_ETHADDR=y
> > > > >  CONFIG_DM=y
> > > > > +CONFIG_SPL_DM=y
> > > > >  CONFIG_DM_I2C=y
> > > > >  CONFIG_DM_I2C_COMPAT=y
> > > > >  CONFIG_SYS_I2C_DAVINCI=y
> > > > > @@ -53,8 +56,10 @@ CONFIG_SPI_FLASH_STMICRO=y
> > > > >  CONFIG_SPI_FLASH_WINBOND=y
> > > > >  CONFIG_MII=y
> > > > >  CONFIG_DRIVER_TI_EMAC=y
> > > > > +CONFIG_SPECIFY_CONSOLE_INDEX=y
> > > > >  CONFIG_DM_SERIAL=y
> > > > >  CONFIG_SYS_NS16550=y
> > > > >  CONFIG_SPI=y
> > > > >  CONFIG_DAVINCI_SPI=y
> > > > >  CONFIG_USE_TINY_PRINTF=y
> > > > > +# CONFIG_SPL_OF_LIBFDT is not set
> > > > > --
> > > > > 2.21.0
> > > > >

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL
  2019-05-29 13:47           ` Adam Ford
@ 2019-05-29 14:15             ` Bartosz Golaszewski
  0 siblings, 0 replies; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-05-29 14:15 UTC (permalink / raw)
  To: u-boot

śr., 29 maj 2019 o 15:47 Adam Ford <aford173@gmail.com> napisał(a):
>
> On Wed, May 29, 2019 at 8:23 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> >
> > śr., 29 maj 2019 o 15:04 Adam Ford <aford173@gmail.com> napisał(a):
> > >
> > > On Wed, May 29, 2019 at 4:40 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> > > >
> > > > wt., 28 maj 2019 o 17:05 Adam Ford <aford173@gmail.com> napisał(a):
> > > > >
> > > > > On Tue, May 28, 2019 at 2:58 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> > > > > >
> > > > > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > > > >
> > > > > > Enable CONFIG_SPL_DM and enable the driver model for serial by defining
> > > > > > an appropriate device in the board file for da850-lcdk.
> > > > > >
> > > > > > Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > > > > > ---
> > > > > >  board/davinci/da8xxevm/omapl138_lcdk.c | 16 ++++++++++++++++
> > > > > >  configs/omapl138_lcdk_defconfig        |  5 +++++
> > > > > >  2 files changed, 21 insertions(+)
> > > > > >
> > > > > > diff --git a/board/davinci/da8xxevm/omapl138_lcdk.c b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > > > index 156d61d9fb..b20747ba01 100644
> > > > > > --- a/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > > > +++ b/board/davinci/da8xxevm/omapl138_lcdk.c
> > > > > > @@ -15,6 +15,8 @@
> > > > > >  #include <asm/arch/hardware.h>
> > > > > >  #include <asm/ti-common/davinci_nand.h>
> > > > > >  #include <asm/io.h>
> > > > > > +#include <ns16550.h>
> > > > > > +#include <dm/platdata.h>
> > > > > >  #include <linux/errno.h>
> > > > > >  #include <asm/mach-types.h>
> > > > > >  #include <asm/arch/davinci_misc.h>
> > > > > > @@ -369,3 +371,17 @@ int board_mmc_init(bd_t *bis)
> > > > > >  }
> > > > > >  #endif
> > > > > >  #endif
> > > > > > +
> > > > > > +#ifdef CONFIG_SPL_BUILD
> > > > > > +static const struct ns16550_platdata serial_pdata = {
> > > > > > +       .base = DAVINCI_UART2_BASE,
> > > > > > +       .reg_shift = 2,
> > > > > > +       .clock = 228000000,
> > > > > > +       .fcr = UART_FCR_DEFVAL,
> > > > > > +};
> > > > > > +
> > > > > > +U_BOOT_DEVICE(omapl138_uart) = {
> > > > > > +       .name = "ns16550_serial",
> > > > > > +       .platdata = &serial_pdata,
> > > > > > +};
> > > > > > +#endif
> > > > > > diff --git a/configs/omapl138_lcdk_defconfig b/configs/omapl138_lcdk_defconfig
> > > > > > index b375da50df..f53a51321c 100644
> > > > > > --- a/configs/omapl138_lcdk_defconfig
> > > > > > +++ b/configs/omapl138_lcdk_defconfig
> > > > > > @@ -33,10 +33,13 @@ CONFIG_CMD_MTDPARTS=y
> > > > > >  CONFIG_CMD_DIAG=y
> > > > > >  CONFIG_CMD_UBI=y
> > > > > >  CONFIG_OF_CONTROL=y
> > > > > > +CONFIG_SPL_OF_CONTROL=y
> > > > >
> > > > > If SPL_OF_CONTROL is being added, why do you need to manually add the
> > > > > stuff above for the serial port?  Checkout the da850-evm-u-boot.dtsi
> > > > > file.  I adds the device tree entries for the serial port to appear in
> > > > > the SPL DTB.
> > > > >
> > > > > See http://git.denx.de/?p=u-boot.git;a=commit;h=f7c1d53605d9ec528abacda9ba1763c67221fc88
> > > > >
> > > >
> > > > I tried to follow the example from this patch but for some reason
> > > > adding u-boot,dm-spl; to the soc at 1c00000 node in
> > > > da850-lcdk-u-boot.dtsi results in the final image being reported as
> > > > corrupted by the aisimage tool:
> > > >
> > > > [...]
> > > >   COPY    spl/u-boot-spl.dtb
> > > >   CC      spl/common/spl/spl.o
> > > >   LD      spl/common/spl/built-in.o
> > > >   CC      spl/lib/display_options.o
> > > >   LD      spl/lib/built-in.o
> > > >   LD      spl/u-boot-spl
> > > >   OBJCOPY spl/u-boot-spl-nodtb.bin
> > > >   CAT     spl/u-boot-spl-dtb.bin
> > > >   COPY    spl/u-boot-spl.bin
> > > >   MKIMAGE spl/u-boot-spl.ais
> > > > Error: -  AIS Image corrupted
> > > >   CAT     u-boot.ais
> > > >   CFGCHK  u-boot.cfg
> > > >
> > > > The image doen't boot (or at least there's nothing on the console).
> > > >
> > > > I'm not sure what's causing it. Any idea?
> > >
> > > I got the same 'AIS Image corrupted' message if the SPL + DTB image is
> > > too large.
> > >
> > > I enabled SPL_SYS_MALLOC_SIMPLE along with USE_TINY_PRINTF reduced my code size:
> > > (see commit c4fa049a121457ff38b74daac32e18d7afbd4538)
> > >     Original:
> > >       text    data     bss     dec     hex filename
> > >       20760    1216      80   22056    5628 spl/u-boot-spl
> > >
> > >     Tiny Printf
> > >        text    data     bss     dec     hex filename
> > >       17947    1216      80   19243    4b2b spl/u-boot-spl
> > >
> > >     Malloc Simple + Tiny Printf
> > >        text    data     bss     dec     hex filename
> > >       15187     176      28   15391    3c1f spl/u-boot-spl
> > >
> > > I think you can also setup CONFIG_SPL_SYS_THUMB_BUILD to also reduce
> > > size.  The DA850 evm has that and CONFIG_SYS_THUMB_BUILD set to shrink
> > > U-Boot.
> > > I just ran some checks and disabling CONFIG_SPL_SYS_THUMB_BUILD makes
> > > the u-boot-spl file overflow the space requirements.  With it enabled,
> > > it builds
> > >   text    data     bss     dec     hex filename
> > > 24356    1144      24   25524    63b4 spl/u-boot-spl
> > >
> > > For U-Boot proper, the difference between CONFIG_SYS_THUMB_BUILD and
> > > not using it is
> > >
> > > with CONFIG_SYS_THUMB_BUILD
> > >    text    data     bss     dec     hex filename
> > >  324147   19700   58256 402103   622b7 u-boot
> > >
> > > (not using it)
> > >    text    data     bss     dec     hex filename
> > >  423167   19700   58248 501115   7a57b u-boot
> > >
> >
> > Even with THUMB and other code shrinking options I still get the same
> > error. In fact I even disabled MMC support in SPL just to see if it'll
> > work and I still get the same error despite the size of the resulting
> > SPL image being well within limit:
> >
> >    text    data     bss     dec     hex filename
> >   19269    3692    1368   24329    5f09 spl/u-boot-spl
> >
> > as opposed to
> >
> >    text    data     bss     dec     hex filename
> >   27766    4008    1368   33142    8176 spl/u-boot-spl
> >
> > with MMC in SPL.
> >
> > Also this error pops up only when extending the soc node of the device
> > tree. If I do this:
> >
> > / {
> >     aliases {
> >         i2c0 = &i2c0;
> >     };
> >
> >     foo {
> >         compatible = "foo";
> >     };
> >
> >     bar {
> >         compatible = "bar";
> >     };
> > };
> >
> > It builds fine. I think the culprit is somewhere else here.
>
> Maybe keeping the DM chunks of C code as starting point is better.
> Once it's all merged, it can always be improved later.  I threw out
> the idea as a suggestion, but it's clearly not as simple as I original
> thought.
>

Thanks, I take it as an Ack. I'll try to get back to it once I convert
the nand driver to using DM which won't be easy either as the nand
node on the device-tree is a sub-node of the aemif device. On linux
there's an actual aemif driver that populates its child nodes, but on
u-boot I'll have to come up with some workaround.

Bart

> adam
> >
> > Bart
> >
> > > So the size is about 25% smaller with it enabled.
> > >
> > > Unrelated to size, but something you want to consider is to increase
> > > your available malloc pool size to accommodate the device tree stuff
> > > once you've managed to shrink the code.  For da850evm,
> > > SPL_SYS_MALLOC_F_LEN = 0x800
> > >
> > > adam
> > >
> > > >
> > > > Bart
> > > >
> > > > >
> > > > > >  CONFIG_DEFAULT_DEVICE_TREE="da850-lcdk"
> > > > > > +CONFIG_SPL_OF_PLATDATA=y
> > > > > >  CONFIG_ENV_IS_IN_NAND=y
> > > > > >  CONFIG_NET_RANDOM_ETHADDR=y
> > > > > >  CONFIG_DM=y
> > > > > > +CONFIG_SPL_DM=y
> > > > > >  CONFIG_DM_I2C=y
> > > > > >  CONFIG_DM_I2C_COMPAT=y
> > > > > >  CONFIG_SYS_I2C_DAVINCI=y
> > > > > > @@ -53,8 +56,10 @@ CONFIG_SPI_FLASH_STMICRO=y
> > > > > >  CONFIG_SPI_FLASH_WINBOND=y
> > > > > >  CONFIG_MII=y
> > > > > >  CONFIG_DRIVER_TI_EMAC=y
> > > > > > +CONFIG_SPECIFY_CONSOLE_INDEX=y
> > > > > >  CONFIG_DM_SERIAL=y
> > > > > >  CONFIG_SYS_NS16550=y
> > > > > >  CONFIG_SPI=y
> > > > > >  CONFIG_DAVINCI_SPI=y
> > > > > >  CONFIG_USE_TINY_PRINTF=y
> > > > > > +# CONFIG_SPL_OF_LIBFDT is not set
> > > > > > --
> > > > > > 2.21.0
> > > > > >

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM
  2019-05-28  9:58 [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
                   ` (3 preceding siblings ...)
  2019-05-28  9:58 ` [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL Bartosz Golaszewski
@ 2019-06-24  8:18 ` Bartosz Golaszewski
  2019-07-03 13:00   ` Bartosz Golaszewski
  4 siblings, 1 reply; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-06-24  8:18 UTC (permalink / raw)
  To: u-boot

wt., 28 maj 2019 o 11:58 Bartosz Golaszewski <brgl@bgdev.pl> napisał(a):
>
> From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>
> This series enables the driver model in SPL on omapl138-lcdk. First two
> patches enable size-reducing options in defconfig. The third patch is
> just a cleanup of the board file. Last patch enables the driver model
> and defines the serial device so that we don't have to disable
> CONFIG_SPL_DM_SERIAL which is enabled by default when selecting
> CONFIG_SPL_DM.
>
> Bartosz Golaszewski (4):
>   davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE
>   davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF
>   davinci: omapl138-lcdk: remove unneeded includes
>   davinci: omapl138-lcdk: enable driver-model in SPL
>
>  board/davinci/da8xxevm/omapl138_lcdk.c | 18 ++++++++++++++++--
>  configs/omapl138_lcdk_defconfig        |  7 +++++++
>  2 files changed, 23 insertions(+), 2 deletions(-)
>
> --
> 2.21.0
>

Gentle ping

Bart

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM
  2019-06-24  8:18 ` [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
@ 2019-07-03 13:00   ` Bartosz Golaszewski
  2019-07-03 13:09     ` Tom Rini
  0 siblings, 1 reply; 14+ messages in thread
From: Bartosz Golaszewski @ 2019-07-03 13:00 UTC (permalink / raw)
  To: u-boot

pon., 24 cze 2019 o 10:18 Bartosz Golaszewski <brgl@bgdev.pl> napisał(a):
>
> wt., 28 maj 2019 o 11:58 Bartosz Golaszewski <brgl@bgdev.pl> napisał(a):
> >
> > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> >
> > This series enables the driver model in SPL on omapl138-lcdk. First two
> > patches enable size-reducing options in defconfig. The third patch is
> > just a cleanup of the board file. Last patch enables the driver model
> > and defines the serial device so that we don't have to disable
> > CONFIG_SPL_DM_SERIAL which is enabled by default when selecting
> > CONFIG_SPL_DM.
> >
> > Bartosz Golaszewski (4):
> >   davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE
> >   davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF
> >   davinci: omapl138-lcdk: remove unneeded includes
> >   davinci: omapl138-lcdk: enable driver-model in SPL
> >
> >  board/davinci/da8xxevm/omapl138_lcdk.c | 18 ++++++++++++++++--
> >  configs/omapl138_lcdk_defconfig        |  7 +++++++
> >  2 files changed, 23 insertions(+), 2 deletions(-)
> >
> > --
> > 2.21.0
> >
>
> Gentle ping
>
> Bart

Ping again. Any objections to this series?

Bart

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM
  2019-07-03 13:00   ` Bartosz Golaszewski
@ 2019-07-03 13:09     ` Tom Rini
  0 siblings, 0 replies; 14+ messages in thread
From: Tom Rini @ 2019-07-03 13:09 UTC (permalink / raw)
  To: u-boot

On Wed, Jul 03, 2019 at 03:00:37PM +0200, Bartosz Golaszewski wrote:
> pon., 24 cze 2019 o 10:18 Bartosz Golaszewski <brgl@bgdev.pl> napisał(a):
> >
> > wt., 28 maj 2019 o 11:58 Bartosz Golaszewski <brgl@bgdev.pl> napisał(a):
> > >
> > > From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> > >
> > > This series enables the driver model in SPL on omapl138-lcdk. First two
> > > patches enable size-reducing options in defconfig. The third patch is
> > > just a cleanup of the board file. Last patch enables the driver model
> > > and defines the serial device so that we don't have to disable
> > > CONFIG_SPL_DM_SERIAL which is enabled by default when selecting
> > > CONFIG_SPL_DM.
> > >
> > > Bartosz Golaszewski (4):
> > >   davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE
> > >   davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF
> > >   davinci: omapl138-lcdk: remove unneeded includes
> > >   davinci: omapl138-lcdk: enable driver-model in SPL
> > >
> > >  board/davinci/da8xxevm/omapl138_lcdk.c | 18 ++++++++++++++++--
> > >  configs/omapl138_lcdk_defconfig        |  7 +++++++
> > >  2 files changed, 23 insertions(+), 2 deletions(-)
> > >
> > > --
> > > 2.21.0
> > >
> >
> > Gentle ping
> >
> > Bart
> 
> Ping again. Any objections to this series?

Seems fine, I'll pick it up post release, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20190703/2e0ba1f4/attachment.sig>

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2019-07-03 13:09 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-28  9:58 [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
2019-05-28  9:58 ` [U-Boot] [PATCH 1/4] davinci: omapl138-lcdk: enable SPL_SYS_MALLOC_SIMPLE Bartosz Golaszewski
2019-05-28  9:58 ` [U-Boot] [PATCH 2/4] davinci: omapl138-lcdk: enable CONFIG_USE_TINY_PRINTF Bartosz Golaszewski
2019-05-28  9:58 ` [U-Boot] [PATCH 3/4] davinci: omapl138-lcdk: remove unneeded includes Bartosz Golaszewski
2019-05-28  9:58 ` [U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL Bartosz Golaszewski
2019-05-28 15:05   ` Adam Ford
2019-05-29  9:40     ` Bartosz Golaszewski
2019-05-29 13:04       ` Adam Ford
2019-05-29 13:23         ` Bartosz Golaszewski
2019-05-29 13:47           ` Adam Ford
2019-05-29 14:15             ` Bartosz Golaszewski
2019-06-24  8:18 ` [U-Boot] [PATCH 0/4] davinci: omapl138-lcdk: enable CONFIG_SPL_DM Bartosz Golaszewski
2019-07-03 13:00   ` Bartosz Golaszewski
2019-07-03 13:09     ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.