Applying DTB Overlays from ATF on RZ/G2

Biju Das biju.das.jz at bp.renesas.com
Mon Jan 9 18:42:45 CET 2023


Hi Adam,

> Subject: Re: Applying DTB Overlays from ATF on RZ/G2
> 
> On Mon, Jan 9, 2023 at 2:46 AM Biju Das <biju.das.jz at bp.renesas.com> wrote:
> >
> > Hi Adam,
> >
> > > Subject: Re: Applying DTB Overlays from ATF on RZ/G2
> > >
> > > On Sat, Jan 7, 2023 at 6:01 AM Adam Ford <aford173 at gmail.com> wrote:
> > > >
> > > > On Wed, Jan 4, 2023 at 5:55 PM Marek Vasut <marex at denx.de> wrote:
> > > > >
> > > > > On 1/5/23 00:48, Heinrich Schuchardt wrote:
> > > > > > Am 5. Januar 2023 00:19:36 MEZ schrieb Adam Ford
> <aford173 at gmail.com>:
> > > > > >> On Wed, Jan 4, 2023 at 5:15 PM Heinrich Schuchardt
> > > <xypron.glpk at gmx.de> wrote:
> > > > > >>>
> > > > > >>> On 1/4/23 22:35, Adam Ford wrote:
> > > > > >>>> ATF generates a couple memory nodes based on how it's
> > > > > >>>> compiled and generates a reserved-memory node, and I want
> > > > > >>>> to overlay it with the device tree so Linux knows about this
> reserved memory.
> > > > > >>>>
> > > > > >>>> When I boot U-Boot, I can read the reserved-memory node:
> > > > > >>>>
> > > > > >>>> => fdt addr 0xe631e588
> > > > > >>>> Working FDT set to e631e588 => fdt print /reserved-memory
> > > > > >>>> reserved-memory {
> > > > > >>>> lossy-decompression at 54000000 { renesas,formats =
> > > > > >>>> <0x00000000>; no-map; reg = <0x00000000
> > > > > >>>> 0x54000000 0x00000000 0x03000000>; compatible =
> > > > > >>>> "renesas,lossy-decompression", "shared-dma-pool"; }; }; =>
> > > > > >>>>
> > >
> > > + CC Biju Das
> >
> > > > > >>>> I attempt to overlay it with the following:
> > > > > >>>>
> > > > > >>>> => run loadfdt
> > > > > >>>> 65932 bytes read in 6 ms (10.5 MiB/s) => fdt addr
> > > > > >>>> $load_addr
> > > > > >>>
> > > > > >>> When actually setting the address you will see a message
> > > > > >>> "Working FDT set to %lx\n". So I assume $load_addr is empty.
> > > > > >>>
> > > > > >>> Did you mean $loadaddr or $fileaddr?
> > > > > >>
> > > > > >> Opps, that was a copy-paste error.  Even with that, I still
> > > > > >> get the failure to overlay:
> > > > > >>
> > > > > >
> > > > > > Did you load a .dtbo file to apply? You cannot apply a devicetree.
> > > > > >
> > > > > > Is the fdt that you want to apply the overlay to built with
> > > > > > symbols
> > > (dtc parameter -@)?
> > > > >
> > > > > Note that the fragment passed to U-Boot by upstream ATF is
> > > > > already automatically merged into the U-Boot control DT (see
> > > > > board/renesas/rcar-common/common.c ) . U-Boot should pass that
> > > > > on to Linux automatically.
> > > >
> > > > I ran some tests, and it appears the function fdtdec_board_setup
> > > > is never getting called.
> >
> > Without that board detection and proper memory detection in u-boot/kernel
> won't happen.
> > [1]
> > https://jpn01.safelinks.protection.outlook.com/?url=https%3A%2F%2Felix
> > ir.bootlin.com%2Fu-boot%2Flatest%2Fsource%2Fboard%2Fhoperun%2Fhihope-r
> > zg2%2Fhihope-rzg2.c%23L83&data=05%7C01%7Cbiju.das.jz%40bp.renesas.com%
> > 7C0852ecec21cd4a3c09a908daf260323d%7C53d82571da1947e49cb4625a166a4a2a%
> > 7C0%7C0%7C638088792215848419%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM
> > DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdat
> > a=RWHfDYQgV7duNwRByGAoqv%2BekIxYMEfUzQLJFME9sQY%3D&reserved=0
> >
> 
> Right now, my device trees have the memory node(s), but not the reserved-
> memory node which I'm trying to insert dymanically based on how ATF is
> built.
> 
> >
> > > > That looks like the code that grabs the blob from ATF.  I
> > > > intentionally removed the memory nodes from the kernel device tree
> > > > expecting the memory nodes to get added from ATF, but when I
> > > > booted it, it promptly hung.  That implied to me that the memory
> > > > nodes didn't get added from ATF.
> > > >
> > > > I added some debug code and noticed that ft_board_setup did not
> > > > get executed, so I created a call to fdtdec_board_setup from
> > > > ft_board_setup and my board booted just fine.  I am curious to
> > > > know if other rcar/rzg2 boards are seeing something similar?  Is
> > > > calling fdtdec_board_setup from ft_board_setup appropriate?
> >
> > It should be working as we are using lossy compression for media
> > playback for VLP release and VLP release[1] is using Mainline ATF and U-
> boot. Similar case for R-Car.
> > I remember correctly for lossy compression case, we explicitly add a node
> in kernel [2].
> >
> >
> 
> Your custom repo has the reserved-memory node in the device tree.  I was
> trying to figure out how to get the reserved-memory node to propagate from
> ATF through U-Boot to Linux without needing to have the reserved-memory node
> in the device tree.  I had attempted to add the reserved-memory node
> upstream, and Geert asked me to use ATF insead.
> I added debug code into the function that reads the ATF node that is passed
> to U-Boot and it doesn't appear to be getting called unless I modify the
> code  to explicitly do it.  I wasn't sure if I am missing a Kconfig option
> somewhere.

May be Marek can help here. May be U-boot[1] needs patching similar to Optee
For lossy-compression. 

[1] https://elixir.bootlin.com/u-boot/latest/source/lib/optee/optee.c

Cheers,
Biju


More information about the U-Boot mailing list