public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: "MOESSBAUER, Felix" <felix.moessbauer@siemens.com>
To: "isar-users@googlegroups.com" <isar-users@googlegroups.com>,
	"Kiszka, Jan" <jan.kiszka@siemens.com>
Cc: "Bovensiepen, Daniel (bovi)" <daniel.bovensiepen@siemens.com>,
	"Bezdeka, Florian" <florian.bezdeka@siemens.com>
Subject: Re: [PATCH 2/3] u-boot-script: add support to use builtin dt
Date: Mon, 4 Sep 2023 07:09:56 +0000	[thread overview]
Message-ID: <e34480e81e3907d1e3e6ac02386fda63136fd752.camel@siemens.com> (raw)
In-Reply-To: <64e38dc4-2c16-45a9-b24e-61c33800e181@siemens.com>

On Mon, 2023-09-04 at 08:05 +0200, Jan Kiszka wrote:
> On 04.09.23 07:51, Felix Moessbauer wrote:
> > This patch adds support to use the u-boot builtin device tree
> > instead of
> > the one from the rootfs / linux. This enables the use of dt
> > overlays
> > even if the corresponding device tree in the kernel is not compiled
> > with
> > symbol support (u-boot builtin DTBs always have symbol
> > information).
> > 
> > To use the builtin dt, add the WKS sourceparam "builtin_dt=yes" to
> > the
> > rootfs-u-boot sourcer.
> > 
> > Co-developed-by: Florian Bezdeka <florian.bezdeka@siemens.com>
> > Signed-off-by: Felix Moessbauer <felix.moessbauer@siemens.com>
> > ---
> >  .../u-boot-script/files/u-boot-script            |  3 +++
> >  .../u-boot-script/files/update-u-boot-script     | 16
> > ++++++++++++----
> >  .../lib/wic/plugins/source/rootfs-u-boot.py      |  3 +++
> >  3 files changed, 18 insertions(+), 4 deletions(-)
> > 
> > diff --git a/meta/recipes-bsp/u-boot-script/files/u-boot-script
> > b/meta/recipes-bsp/u-boot-script/files/u-boot-script
> > index d053d721..a11212c0 100644
> > --- a/meta/recipes-bsp/u-boot-script/files/u-boot-script
> > +++ b/meta/recipes-bsp/u-boot-script/files/u-boot-script
> > @@ -15,3 +15,6 @@ NO_INITRD=""
> >  
> >  # U-boot commands to prepend to boot script
> >  SCRIPT_PREPEND=""
> > +
> > +# use u-boot builtin device tree
> > +BUILTIN_DT="no"
> > diff --git a/meta/recipes-bsp/u-boot-script/files/update-u-boot-
> > script b/meta/recipes-bsp/u-boot-script/files/update-u-boot-script
> > index 1d9c6d45..2eb6097c 100755
> > --- a/meta/recipes-bsp/u-boot-script/files/update-u-boot-script
> > +++ b/meta/recipes-bsp/u-boot-script/files/update-u-boot-script
> > @@ -33,10 +33,18 @@ echo "${SCRIPT_PREPEND}" >> ${BOOT_CMD}
> >  
> >  echo "setenv bootargs ${KERNEL_ARGS}" >> ${BOOT_CMD}
> >  
> > -echo "echo Loading /usr/lib/linux-image-
> > ${KERNEL_VERSION}/\${fdtfile}..." \
> > -     >> ${BOOT_CMD}
> > -echo "load \${devtype} \${devnum}:${ROOT_PARTITION}
> > \${fdt_addr_r}" \
> > -     "/usr/lib/linux-image-${KERNEL_VERSION}/\${fdtfile}" >>
> > ${BOOT_CMD}
> > +if [ "${BUILTIN_DT}" = "yes" ]; then
> > +       echo "echo Loading builtin device tree..." \
> > +            >> ${BOOT_CMD}
> > +       echo "fdt addr \${fdtcontroladdr}" >> ${BOOT_CMD}
> > +       echo "fdt move \${fdtcontroladdr} \${fdt_addr_r}" >>
> > ${BOOT_CMD}
> 
> Do we actually have to copy the U-Boot DT around? Why not updating
> fdt_addr_r instead? Open question, didn't check the implications yet.

The final DT needs to be in RAM at a location with some free tail
space, so we can resize it to later apply the overlays. This holds true
for the fdt_addr_r, but not necessarily for fdtcontroladdr.

Felix

> 
> Jan
> 
> > +else
> > +       echo "echo Loading /usr/lib/linux-image-
> > ${KERNEL_VERSION}/\${fdtfile}..." \
> > +            >> ${BOOT_CMD}
> > +       echo "load \${devtype} \${devnum}:${ROOT_PARTITION}
> > \${fdt_addr_r}" \
> > +            "/usr/lib/linux-image-${KERNEL_VERSION}/\${fdtfile}"
> > >> ${BOOT_CMD}
> > +fi
> > +
> >  echo "echo Loading /boot/${KERNEL_FILE}-${KERNEL_VERSION}..." >>
> > ${BOOT_CMD}
> >  echo "load \${devtype} \${devnum}:\${distro_bootpart}
> > \${kernel_addr_r}" \
> >       "/boot/${KERNEL_FILE}-${KERNEL_VERSION}" >> ${BOOT_CMD}
> > diff --git a/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py
> > b/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py
> > index 0b4f9eec..93600dc2 100644
> > --- a/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py
> > +++ b/meta/scripts/lib/wic/plugins/source/rootfs-u-boot.py
> > @@ -10,6 +10,7 @@
> >  # Recognized sourceparams:
> >  #  - no_initrd=yes          (disables initrd loading)
> >  #  - overlays=file.dtbo ... (overlay files)
> > +#  - builtin_dt=no          (use DT from uboot instead of kernel)
> >  #  - script_prepend=cmd;... (prepends U-Boot command)
> >  
> >  import glob
> > @@ -82,6 +83,8 @@ class RootfsUBootPlugin(RootfsPlugin):
> >              cfg.write('NO_INITRD="%s"\n' % no_initrd)
> >              overlays = source_params.get('overlays') or ''
> >              cfg.write('OVERLAYS="%s"\n' % overlays)
> > +            builtin_dt = source_params.get('builtin_dt') or ''
> > +            cfg.write('BUILTIN_DT="%s"\n' % builtin_dt)
> >              script_prepend = source_params.get('script_prepend')
> > or ''
> >              # remove escapes from $\{var\} that are needed to
> > avoid expansion by wic
> >              script_prepend = re.sub(r'\$\\{([^\\]+)\\}', r'${\1}',
> > script_prepend)
> 


  reply	other threads:[~2023-09-04  7:10 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-04  5:51 [PATCH 0/3] Extend u-boot-script for DT overlays Felix Moessbauer
2023-09-04  5:51 ` [PATCH 1/3] add comment about content of u-boot OVERLAYS var Felix Moessbauer
2023-09-04  5:51 ` [PATCH 2/3] u-boot-script: add support to use builtin dt Felix Moessbauer
2023-09-04  6:05   ` Jan Kiszka
2023-09-04  7:09     ` MOESSBAUER, Felix [this message]
2023-09-04  5:51 ` [PATCH 3/3] use builtin DT for nanopi-neo target Felix Moessbauer
2023-09-04  6:05 ` [PATCH 0/3] Extend u-boot-script for DT overlays Jan Kiszka
2023-09-22  4:23 ` Uladzimir Bely

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e34480e81e3907d1e3e6ac02386fda63136fd752.camel@siemens.com \
    --to=felix.moessbauer@siemens.com \
    --cc=daniel.bovensiepen@siemens.com \
    --cc=florian.bezdeka@siemens.com \
    --cc=isar-users@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox