[U-Boot] [PATCH 4/4] davinci: omapl138-lcdk: enable driver-model in SPL

Bartosz Golaszewski
2019-05-29T09:40:14Z

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