[U-Boot] [PATCH] fdt: Add warning about CONFIG_OF_EMBED

Simon Glass sjg at chromium.org
Mon Dec 31 16:23:22 UTC 2018


Hi Lukasz,

On Mon, 31 Dec 2018 at 04:26, Lukasz Majewski <lukma at denx.de> wrote:
>
> Hi Simon,
>
> > Hi Lukasz,
> >
> > On Wed, 19 Dec 2018 at 03:11, Lukasz Majewski <lukma at denx.de> wrote:
> > >
> > > Dear Simon and Simon,
> > >
> > > > Am 05.12.2018 um 14:57 schrieb Simon Glass:
> > > > > This option has crept into use with some boards. Add a warning
> > > > > to try to prevent this.
> > > > >
> > > > > As an example:
> > > > >     https://lists.denx.de/pipermail/u-boot/2017-September/304966.html
> > > >
> > > > We have just discussed this in another thread. There seem to be
> > > > ~109 defconfigs in the tree that enable OF_EMBED.
> > > >
> > > > I doubt all of them do this for fun, so we might want to collect
> > > > the reasons they do so. I do know two:
> > > >
> > > > - socfpga_stratix10_defconfig needs this to get a correct
> > > > u-boot-spl.hex
> > > > - I would need it to ensure in SPL, the DTB is in one block with
> > > > the other readonly parts. Without OF_EMBED, we have '.text',
> > > > '.bss', DT.
> > >
> > > Another use case is imx6:
> > >
> > > When I want to use SPL's embedded DTB for early init, with
> > > OF_SEPARATE I get fdt_blob = (ulong *)&__bss_end; ,which points me
> > > to 0x18200060, which is in DDR (and there is either garbage nor DDR
> > > is not initialized at all).
> > >
> > > The above looks like the __bss_end is for u-boot proper.
> > >
> > > The workaround (for now) is to have OF_EMBED, which assigns
> > > gd->fdt_blob = __dtb_dt_spl_begin [1], and this is a correct
> > > address.
> > >
> > > Hence, I'm wondering if shall I assign:
> > > gd->fdt_blob = __dtb_dt_spl_begin;
> > >
> > > in my early SPL code (and do not use fdt_setup() function at all in
> > > SPL) ?
> >
> > Or you could update fdt_setup() to do what you want (perhaps with a
> > new CONFIG?).
>
> I've found the root cause of this problem....
>
> For the board I had not defined CONFIG_SPL_SEPARATE_BSS. After
> providing it the OF_SEPARATE can be used (and dtb is appended between
> SPL binary and bss (in SDRAM) region.

OK that's great news, thank you for digging into it.

Regards,
Simon

>
> >
> > >
> > > Moreover, defining board_fdt_blob_setup() for _each_ IMX6 board
> > > which would switch to DM_MMC in SPL seems like an no acceptable
> > > solution.
> > >
> > >
> > > [1] - ./spl/dts/dt-spl.dtb.S:3:.global __dtb_dt_spl_begin  --> Looks
> > > like __dtb_dt_spl_begin is exactly for this purpose.
> >
> > Regards,
> > Simon
>
>
>
>
> Best regards,
>
> Lukasz Majewski
>
> --
>
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de


More information about the U-Boot mailing list