mail archive of the barebox mailing list
 help / color / mirror / Atom feed
From: Antony Pavlov <antonynpavlov@gmail.com>
To: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Steffen Trumtrar <s.trumtrar@pengutronix.de>,
	Ahmad Fatoum <a.fatoum@pengutronix.de>,
	barebox@lists.infradead.org
Subject: Re: 'of_compatible' and 'model' imd records are unusable
Date: Sat, 2 Oct 2021 12:44:47 +0300
Message-ID: <20211002124447.74a231c6c07697e9042b905e@gmail.com> (raw)
In-Reply-To: <20211002084850.GA24834@pengutronix.de>

On Sat, 2 Oct 2021 10:48:50 +0200
Sascha Hauer <s.hauer@pengutronix.de> wrote:

Hi Sascha!

> On Fri, Oct 01, 2021 at 02:24:53PM +0300, Antony Pavlov wrote:
> > Hi all!
> > 
> > I have cloned barebox c67ada0024da (v2021.08.0) and found that
> > 'of_compatible' and 'model' imd records are unusable.
> > 
> > E.g.
> > 
> > barebox$ make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- imx_v8_defconfig
> > barebox$ make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu-
> > ...
> > images built:
> > barebox-nxp-imx8mm-evk.img
> > barebox-prt-prt8mm.img
> > barebox-nxp-imx8mp-evk.img
> > barebox-nxp-imx8mq-evk.img
> > barebox-zii-imx8mq-dev.img
> > barebox-phytec-phycore-imx8mq.img
> > 
> > barebox$ ./scripts/bareboximd images/barebox-nxp-imx8mm-evk.img
> > build: #1 Fri Oct 1 10:16:30 UTC 2021
> > buildsystem version: 
> > crc32: 0x00000000
> > release: 2021.08.0
> > barebox$ 
> > 
> > There is no 'of_compatible' and 'model' imd records in bareboximd output.
> > 
> > So there is no chance to imd_find_type(..., IMD_TYPE_OF_COMPATIBLE)
> > (see common/bbu.c) in a barebox image file.
> > 
> > scripts/gen-dtb-s puts IMD_TYPE_OF_COMPATIBLE and IMD_TYPE_MODEL
> > records into barebox_imd_0 section.
> > 
> > BAREBOX_IMD macro (include/asm-generic/barebox.lds.h)
> > does not KEEP barebox_imd_0 section":
> 
> This is done on purpose because otherwise...
> 
> > 
> > #define BAREBOX_IMD                             \
> >         STRUCT_ALIGN();                         \
> >         KEEP(*(.barebox_imd_start))             \
> >         KEEP(*(.barebox_imd_1*))                \
> >         *(.barebox_imd_0*)                      \
> >         KEEP(*(.barebox_imd_end))
> > 
> > KEEPing barebox_imd_0 leads to several 'of_compatible' and 'model' records
> > in one barebox image file, e.g.:
> 
> ...exactly this would happen.
> 
> To get the of_compatible and model imd tags in an image you have to put
> IMD_USED_OF() explicitly into the entry function of the image handling
> this compatible, there's no way for the build process to know which
> image handles which device tree. See below for an example which adds the
> tags for the boards you are currently compiling.

There are two remarks:

1. It looks like we still able to automatically add of_compatible and model imd tags.
Please see my message http://lists.infradead.org/pipermail/barebox/2021-October/037412.html

2. I have no lowlevel.c board files on MIPS :(

Can we automaticaly generate of_compatible and model imd tags for most of the boards
and explicitly generate tags with IMD_USED_OF() just for selected boards?

-- 
Best regards,
  Antony Pavlov


> 
> Sascha
> 
> --------------------------------8<-------------------------
> 
> From 456d90992fe0b9f4258b693a946f8d13ba5b0b4c Mon Sep 17 00:00:00 2001
> From: Sascha Hauer <s.hauer@pengutronix.de>
> Date: Sat, 2 Oct 2021 10:45:04 +0200
> Subject: [PATCH] ARM: i.MX8m: Add of_compatible imd tags for i.MX8 boards
> 
> The build process has to be manually told which image is compatible to
> which device tree. Add the IMD_USED_OF() calls to the i.MX8m based
> boards.
> 
> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
> ---
>  arch/arm/boards/nxp-imx8mm-evk/lowlevel.c        | 3 +++
>  arch/arm/boards/nxp-imx8mp-evk/lowlevel.c        | 3 +++
>  arch/arm/boards/nxp-imx8mq-evk/lowlevel.c        | 3 +++
>  arch/arm/boards/protonic-imx8m/lowlevel-prt8mm.c | 3 +++
>  arch/arm/boards/zii-imx8mq-dev/lowlevel.c        | 4 ++++
>  5 files changed, 16 insertions(+)
> 
> diff --git a/arch/arm/boards/nxp-imx8mm-evk/lowlevel.c b/arch/arm/boards/nxp-imx8mm-evk/lowlevel.c
> index 4bd29c2269..c2f6206cfd 100644
> --- a/arch/arm/boards/nxp-imx8mm-evk/lowlevel.c
> +++ b/arch/arm/boards/nxp-imx8mm-evk/lowlevel.c
> @@ -21,6 +21,7 @@
>  #include <mfd/bd71837.h>
>  #include <soc/imx8m/ddr.h>
>  #include <soc/fsl/fsl_udc.h>
> +#include <image-metadata.h>
>  
>  extern char __dtb_imx8mm_evk_start[];
>  
> @@ -177,5 +178,7 @@ ENTRY_FUNCTION(start_nxp_imx8mm_evk, r0, r1, r2)
>  	relocate_to_current_adr();
>  	setup_c();
>  
> +	IMD_USED_OF(imx8mm_evk);
> +
>  	nxp_imx8mm_evk_start();
>  }
> diff --git a/arch/arm/boards/nxp-imx8mp-evk/lowlevel.c b/arch/arm/boards/nxp-imx8mp-evk/lowlevel.c
> index 3298ded586..5732ccc645 100644
> --- a/arch/arm/boards/nxp-imx8mp-evk/lowlevel.c
> +++ b/arch/arm/boards/nxp-imx8mp-evk/lowlevel.c
> @@ -4,6 +4,7 @@
>  #include <common.h>
>  #include <debug_ll.h>
>  #include <firmware.h>
> +#include <image-metadata.h>
>  #include <asm/mmu.h>
>  #include <asm/cache.h>
>  #include <asm/sections.h>
> @@ -189,5 +190,7 @@ ENTRY_FUNCTION(start_nxp_imx8mp_evk, r0, r1, r2)
>  	relocate_to_current_adr();
>  	setup_c();
>  
> +	IMD_USED_OF(imx8mp_evk);
> +
>  	nxp_imx8mp_evk_start();
>  }
> diff --git a/arch/arm/boards/nxp-imx8mq-evk/lowlevel.c b/arch/arm/boards/nxp-imx8mq-evk/lowlevel.c
> index 564621abef..92cc22e022 100644
> --- a/arch/arm/boards/nxp-imx8mq-evk/lowlevel.c
> +++ b/arch/arm/boards/nxp-imx8mq-evk/lowlevel.c
> @@ -2,6 +2,7 @@
>  
>  #include <common.h>
>  #include <firmware.h>
> +#include <image-metadata.h>
>  #include <linux/sizes.h>
>  #include <mach/generic.h>
>  #include <asm/barebox-arm-head.h>
> @@ -106,5 +107,7 @@ ENTRY_FUNCTION(start_nxp_imx8mq_evk, r0, r1, r2)
>  	relocate_to_current_adr();
>  	setup_c();
>  
> +	IMD_USED_OF(imx8mq_evk);
> +
>  	nxp_imx8mq_evk_start();
>  }
> diff --git a/arch/arm/boards/protonic-imx8m/lowlevel-prt8mm.c b/arch/arm/boards/protonic-imx8m/lowlevel-prt8mm.c
> index 3b8b53b36e..24d98fe6c9 100644
> --- a/arch/arm/boards/protonic-imx8m/lowlevel-prt8mm.c
> +++ b/arch/arm/boards/protonic-imx8m/lowlevel-prt8mm.c
> @@ -2,6 +2,7 @@
>  
>  #include <asm/barebox-arm.h>
>  #include <common.h>
> +#include <image-metadata.h>
>  #include <debug_ll.h>
>  #include <firmware.h>
>  #include <mach/atf.h>
> @@ -118,5 +119,7 @@ ENTRY_FUNCTION(start_prt_prt8mm, r0, r1, r2)
>  	relocate_to_current_adr();
>  	setup_c();
>  
> +	IMD_USED_OF(imx8mm_prt8mm);
> +
>  	prt_prt8mm_start();
>  }
> diff --git a/arch/arm/boards/zii-imx8mq-dev/lowlevel.c b/arch/arm/boards/zii-imx8mq-dev/lowlevel.c
> index 311e61fb1d..cf53fb2def 100644
> --- a/arch/arm/boards/zii-imx8mq-dev/lowlevel.c
> +++ b/arch/arm/boards/zii-imx8mq-dev/lowlevel.c
> @@ -6,6 +6,7 @@
>  
>  #include <common.h>
>  #include <firmware.h>
> +#include <image-metadata.h>
>  #include <linux/sizes.h>
>  #include <mach/generic.h>
>  #include <asm/barebox-arm-head.h>
> @@ -200,5 +201,8 @@ ENTRY_FUNCTION(start_zii_imx8mq_dev, r0, r1, r2)
>  	relocate_to_current_adr();
>  	setup_c();
>  
> +	IMD_USED_OF(imx8mq_zii_ultra_rmb3);
> +	IMD_USED_OF(imx8mq_zii_ultra_zest);
> +
>  	zii_imx8mq_dev_start();
>  }
> -- 
> 2.30.2
> 
> 
> 
> -- 
> Pengutronix e.K.                           |                             |
> Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
> 31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox


  reply	other threads:[~2021-10-02  9:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20211001142453.4a3c0ba9bd7bb909125e2a5f@gmail.com>
2021-10-02  8:48 ` Sascha Hauer
2021-10-02  9:44   ` Antony Pavlov [this message]
2021-10-04  7:52     ` Sascha Hauer
2021-10-01 11:46 Antony Pavlov
2021-10-01 23:47 ` Antony Pavlov

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=20211002124447.74a231c6c07697e9042b905e@gmail.com \
    --to=antonynpavlov@gmail.com \
    --cc=a.fatoum@pengutronix.de \
    --cc=barebox@lists.infradead.org \
    --cc=s.hauer@pengutronix.de \
    --cc=s.trumtrar@pengutronix.de \
    /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

mail archive of the barebox mailing list

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://lore.barebox.org/barebox/0 barebox/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 barebox barebox/ https://lore.barebox.org/barebox \
		barebox@lists.infradead.org
	public-inbox-index barebox

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git