Hi Maik, Unfortunately your mailer corrupted the patch you sent, see the section "MUA-SPECIFIC HINTS" in the git-format-patch(1) manpage for tips how to prevent that (or send the patch with git-send-email, or as attachment). As far as I can interpret your patch, the approach looks okay to me. I would first introduce the new make macro in a single patch, and then add the board support in a separate patch, so backporting and testing gets easier (in case that was not already what you planned to do anyway :)) I've not yet found the time to clean-up my prototype converting the rest of the Makefile.imx to macro calls, so if you want, you can pick up that patch too. - Roland On Thu, Aug 15, 2019 at 04:14:10PM +0200, Maik Otto wrote: > thank you for your response. > I have create an example for the patch on basic of Rolands prototype > If the code is ok for you, then i will rework the patch and send the > patch to the mailinglist. > > diff --git a/images/Makefile.imx > b/images/Makefile.imx > index 42c194b..6ca4db9 > 100644 > --- > a/images/Makefile.imx > > +++ > b/images/Makefile.imx > > @@ -2,6 +2,24 > @@ > # barebox image generation Makefile for i.MX > images > # > +# params: CONFIG symbol, entry point, flash header path string, board > identifier string > +define build_imx_habv4img > = > +$(eval > > +ifeq ($($(strip $(1))), > y) > + pblb-y += $(strip > $(2)) > + CFG_$(strip $(2)).pblb.imximg = $(board)/$(strip > $(3)).imxcfg > + FILE_barebox-$(strip $(4)).img = $(strip > $(2)).pblb.imximg > + FILE_barebox-$(strip $(4))-s.img = $(strip > $(2)).pblb.simximg > + FILE_barebox-$(strip $(4))-us.img = $(strip > $(2)).pblb.usimximg > + FILE_barebox-$(strip $(4))-es.img = $(strip > $(2)).pblb.esimximg > + image-y += barebox-$(strip > $(4)).img > + image-$(CONFIG_HABV4_IMAGE_SIGNED) += barebox-$(strip > $(4))-s.img > + image-$(CONFIG_HABV4_IMAGE_SIGNED_USB) += barebox-$(strip > $(4))-us.img > + image-$(CONFIG_HABV4_IMAGE_SIGNED_ENCRYPTED) += barebox-$(strip > $(4))-es.img > +endif > > +) > > +endef > > + > > # %.imximg - convert into i.MX > image > # > ---------------------------------------------------------------- > > > @@ -143,10 +161,7 @@ FILE_barebox-tx53-1011.img = > start_imx53_tx53_1011.pblb.imximg > image-$(CONFIG_MACH_TX53) += > barebox-tx53-1011.img > > # ----------------------- i.MX6 based boards > --------------------------- > -pblb-$(CONFIG_MACH_REALQ7) += > start_imx6_realq7 > -CFG_start_imx6_realq7.pblb.imximg = > $(board)/datamodul-edm-qmx6/flash-header.imxcfg > -FILE_barebox-datamodul-edm-qmx6.img = > start_imx6_realq7.pblb.imximg > -image-$(CONFIG_MACH_REALQ7) += > barebox-datamodul-edm-qmx6.img > +$(call build_imx_habv4img, CONFIG_MACH_REALQ7, start_imx6_realq, > datamodul-edm-qmx6/flash-header.imxcfg, datamodul-edm-qmx6) > > pblb-$(CONFIG_MACH_GUF_SANTARO) += > start_imx6q_guf_santaro > CFG_start_imx6q_guf_santaro.pblb.imximg = > $(board)/guf-santaro/flash-header.imxcfg > @@ -423,10 +438,7 @@ > CFG_start_phytec_phycore_imx6qp_som_nand_1gib.pblb.imximg = > $(board)/phytec- som- > FILE_barebox-phytec-phycore-imx6qp-som-nand-1gib.img = > start_phytec_phycore_imx6qp_som_nand_1gib.pblb.imximg > image-$(CONFIG_MACH_PHYTEC_SOM_IMX6) += > barebox-phytec-phycore-imx6qp-som-nand-1gib.img > > > -pblb-$(CONFIG_MACH_PHYTEC_SOM_IMX6) += > start_phytec_phycore_imx6q_som_emmc_1gib > -CFG_start_phytec_phycore_imx6q_som_emmc_1gib.pblb.imximg = > $(board)/phytec-som-imx6/flash-header-phytec-pcm058-1gib.imxcfg > -FILE_barebox-phytec-phycore-imx6q-som-emmc-1gib.img = > start_phytec_phycore_imx6q_som_emmc_1gib.pblb.imximg > -image-$(CONFIG_MACH_PHYTEC_SOM_IMX6) += > barebox-phytec-phycore-imx6q-som-emmc-1gib.img > +$(call build_imx_habv4img, CONFIG_MACH_PHYTEC_SOM_IMX6, > start_phytec_phycore_imx6q_som_emmc_1gib, > phytec-som-imx6/flash-header-phytec-pcm058-1gib, > phytec-phycore-imx6q-som-emmc-1gib) > > pblb-$(CONFIG_MACH_PHYTEC_SOM_IMX6) += > start_phytec_phycore_imx6q_som_emmc_2gib > CFG_start_phytec_phycore_imx6q_som_emmc_2gib.pblb.imximg = > $(board)/phytec-som-imx6/flash-header-phytec-pcm058-2gib.imxcfg > > Best regards > > Maik > > Am 05.08.2019 um 17:07 schrieb Roland Hieber: > > On Mon, Aug 05, 2019 at 02:35:40PM +0200, Roland Hieber wrote: > >> On Mon, Aug 05, 2019 at 01:02:13PM +0200, Sascha Hauer wrote: > >>> Hi Maik, > >>> > >>> On Thu, Jul 18, 2019 at 10:02:01AM +0200, Maik Otto wrote: > >>>> add in the images/Makefile.imx the support of building for signed, usb > >>>> signed and encrypted/signed images for NXP i.MX HABV4 > >>>> support for NXP i.mx6, i.mx7 and i.mx8 > >>>> > >>>> Signed-off-by: Maik Otto <m.otto@xxxxxxxxx> > >>>> --- > >>>> Changes in v3: > >>>> - nothing > >>>> Changes in v2: > >>>> - was Patch 2/4 in v1 > >>>> - no dynamic variable, parallel building of different image types now > >>>> --- > >>>> images/Makefile.imx | 322 +++++++++++++++++++++++++++++++++++++++++++++++++++- > >>>> 1 file changed, 321 insertions(+), 1 deletion(-) > >>>> > >>>> diff --git a/images/Makefile.imx b/images/Makefile.imx > >>>> index 9a7187a..9c70703 100644 > >>>> --- a/images/Makefile.imx > >>>> +++ b/images/Makefile.imx > >>>> @@ -147,216 +147,388 @@ pblb-$(CONFIG_MACH_REALQ7) += start_imx6_realq7 > >>>> CFG_start_imx6_realq7.pblb.imximg = $(board)/datamodul-edm-qmx6/flash-header.imxcfg > >>>> FILE_barebox-datamodul-edm-qmx6.img = start_imx6_realq7.pblb.imximg > >>>> image-$(CONFIG_MACH_REALQ7) += barebox-datamodul-edm-qmx6.img > >>>> +FILE_barebox-datamodul-edm-qmx6-s.img = start_imx6_realq7.pblb.simximg > >>>> +FILE_barebox-datamodul-edm-qmx6-us.img = start_imx6_realq7.pblb.usimximg > >>>> +FILE_barebox-datamodul-edm-qmx6-es.img = start_imx6_realq7.pblb.esimximg > >>>> +habv4image-$(CONFIG_MACH_REALQ7) += barebox-datamodul-edm-qmx6 > >>> This file contains way to much boilerplate already for my taste. Adding four > >>> more lines for every board is not something I like to do. > >>> > >>> Can we add even more magic to get rid of these additional lines? > >> You mean like... (untested) > > [...] > > > > Here's a tested prototype (needed some more eval and strip): > > > > ----------------- 8< ----------------- > > diff --git a/images/Makefile.imx b/images/Makefile.imx > > index 9a7187ac7807..f58c0411871d 100644 > > --- a/images/Makefile.imx > > +++ b/images/Makefile.imx > > @@ -2,6 +2,19 @@ > > # barebox image generation Makefile for i.MX images > > # > > > > +# params: CONFIG symbol, entry point, board identifier string > > +define build_imx_img = > > +$(eval > > +pblb-$($(strip $(1))) += $(strip $(2)) > > +CFG_$(strip $(2)).pblb.imximg = $(board)/$(strip $(3))/flash-header.imxcfg > > +FILE_barebox-$(strip $(3)).img = $(strip $(2)).pblb.imximg > > +FILE_barebox-$(strip $(3))-s.img = $(strip $(2)).pblb.simximg > > +FILE_barebox-$(strip $(3))-us.img = $(strip $(2)).pblb.usimximg > > +FILE_barebox-$(strip $(3))-es.img = $(strip $(2)).pblb.esimximg > > +image-$($(strip $(1))) += barebox-$(strip $(3)).img > > +) > > +endef > > + > > # %.imximg - convert into i.MX image > > # ---------------------------------------------------------------- > > > > @@ -143,15 +156,8 @@ FILE_barebox-tx53-1011.img = start_imx53_tx53_1011.pblb.imximg > > image-$(CONFIG_MACH_TX53) += barebox-tx53-1011.img > > > > # ----------------------- i.MX6 based boards --------------------------- > > -pblb-$(CONFIG_MACH_REALQ7) += start_imx6_realq7 > > -CFG_start_imx6_realq7.pblb.imximg = $(board)/datamodul-edm-qmx6/flash-header.imxcfg > > -FILE_barebox-datamodul-edm-qmx6.img = start_imx6_realq7.pblb.imximg > > -image-$(CONFIG_MACH_REALQ7) += barebox-datamodul-edm-qmx6.img > > - > > -pblb-$(CONFIG_MACH_GUF_SANTARO) += start_imx6q_guf_santaro > > -CFG_start_imx6q_guf_santaro.pblb.imximg = $(board)/guf-santaro/flash-header.imxcfg > > -FILE_barebox-guf-santaro.img = start_imx6q_guf_santaro.pblb.imximg > > -image-$(CONFIG_MACH_GUF_SANTARO) += barebox-guf-santaro.img > > +$(call build_imx_img, CONFIG_MACH_REALQ7, start_imx6_realq, datamodul-edm-qmx6) > > +$(call build_imx_img, CONFIG_MACH_GUF_SANTARO, start_imx6q_guf_santaro, guf-santaro) > > > > pblb-$(CONFIG_MACH_GK802) += start_imx6_gk802 > > CFG_start_imx6_gk802.pblb.imximg = $(board)/gk802/flash-header.imxcfg > > ----------------- 8< ----------------- > > > > Depending on your thoughts regarding the other questions in my previous > > mail, I can make this into a proper patch. > > > > - Roland > > -- Roland Hieber | r.hieber@xxxxxxxxxxxxxx | Pengutronix e.K. | https://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim | Phone: +49-5121-206917-5086 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox