All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heiko Thiery <heiko.thiery@gmail.com>
To: Stefano Babic <sbabic@denx.de>
Cc: "Simon Glass" <sjg@chromium.org>,
	u-boot@lists.denx.de, "Fabio Estevam" <festevam@gmail.com>,
	"NXP i . MX U-Boot Team" <uboot-imx@nxp.com>,
	"Peng Fan" <peng.fan@nxp.com>, "Ye Li" <ye.li@nxp.com>,
	"Patrick Wildt" <patrick@blueri.se>,
	"Michael Walle" <michael@walle.cc>,
	"Thomas Schäfer" <thomas.schaefer@kontron.com>
Subject: Re: [PATCH v6 2/2] board: kontron: pitx-imx8m: Add Kontron pitx-imx8m board support
Date: Fri, 22 Oct 2021 15:24:29 +0200	[thread overview]
Message-ID: <CAEyMn7ZDgK=jSmFfUnroSvVWEGqKMOfY1oO1vdEHh+qbOhVANw@mail.gmail.com> (raw)
In-Reply-To: <a98f7179-3c45-7ed3-0ba9-33685e458f55@denx.de>

Hi,

Am Fr., 22. Okt. 2021 um 14:37 Uhr schrieb Stefano Babic <sbabic@denx.de>:
>
> Hi Heiko,
>
> On 22.10.21 10:19, Heiko Thiery wrote:
> > Hi Stefano, Hi Simon,
> >
> > Am Do., 21. Okt. 2021 um 15:57 Uhr schrieb Heiko Thiery
> > <heiko.thiery@gmail.com>:
> >>
> >> Hi Stefano, Hi Simon,
> >>
> >>
> >> Am Do., 21. Okt. 2021 um 15:29 Uhr schrieb Stefano Babic <sbabic@denx.de>:
> >>>
> >>> On 21.10.21 15:17, Heiko Thiery wrote:
> >>>> Hi Stefano,
> >>>>
> >>>>
> >>>> Am Do., 21. Okt. 2021 um 13:31 Uhr schrieb Stefano Babic <sbabic@denx.de>:
> >>>>>
> >>>>> Hi Heiko,
> >>>>>
> >>>>> On 14.10.21 20:08, Heiko Thiery wrote:
> >>>>>> The Kontron pitx-imx8m is an NXP i.MX8MQ based board in the pITX
> >>>>>> form factor.
> >>>>>>
> >>>>>
> >>>>> There is still something using binman that does not work with CI.
> >>>>> Without CI, we load all firmware including signed_hdmi_imx8m.bin.
> >>>>>
> >>>>> But on CI, file is not loaded, but instead of warnings, build for this
> >>>>> board fails with :
> >>>>>
> >>>>> +Image 'main-section' is missing external blobs and is non-functional:
> >>>>> blob-ext@1 blob-ext@2 blob-ext@3 blob-ext@4
> >>>>> +binman: Error 1 running 'mkimage -d ./mkimage.spl.mkimage -n
> >>>>> spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000
> >>>>> ./mkimage-out.spl.mkimage': signed_hdmi_imx8m.bin: Can't open: No such
> >>>>> file or directory
> >>>>> +
> >>>>>
> >>>>> Could you take a look ?
> >>>>
> >>>> Sure. Could you point me to the right CI configuration?
> >>>>
> >>>
> >>> Configuration is in .gitlab-ci.yml. For thsi board, buildman is called
> >>> as part of aarch64 target, that is
> >>>
> >>>          buildman -o /tmp -P -E -W arm -x aarch64
> >>>
> >>>> I need to understand how the required imx-firmware files are copied to
> >>>> the u-boot dir. This seems to work already for e. g. the imx8mm
> >>>> boards. These require the lpdd* train fw files.
> >>
> >> Here we seem to hit an issue with the CI. blobs (lpddr*) are required
> >> for the imx8mm boards. Binman reports the missing files only as a
> >> warning and buildman does not care about that:
> >> ----
> >> +WARNING 'mkimage.flash.mkimage' not found, resulting binary is not-functional
> >> ----
> >>
> >> With the imx8mq boards switching to binman we also need an additional
> >> fw part (signed_hdmi_imx8m.bin). But other than the lpddr firmware as
> >> blob the signed_hmdi'_imx8m.bin is passed to mkimage and mkimage exits
> >> with an error. Thats leads to the error:
> >> ----
> >> binman: Error 1 running 'mkimage -d ./mkimage.spl.mkimage -n
> >> spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000
> >> ./mkimage-out.spl.mkimage': signed_hdmi_imx8m.bin: Can't open: No such
> >> file or directory
> >> ----
> >>
> >> Currently I do not have an idea how to handle that. Anyone else?
> >
> > I thought about it a little and did a quick hack. What do you think
> > about dummy files being generated for buildman?
>
> I had quite the same idea...
>
> > I had buildman
> > generate the blobs needed by binman. So at least the build runs
> > through successfully.
>
> But it should be checked if files are present - I guess there are people
> relying on buildman to produce the functional bootloader, and a dummy
> file cannot overwrite the right one if present.

Sure. As said ,this was only a quick hack to see if it could work.
Another thing is if there should be a config for each board that says
what files have to be created.

> > I don't know yet how to integrate this sensibly
> > into buildman or if this is useful for the maintainers at all. But
> > this would get rid of the warnings and errors that come from binman.
> >
> >
> > diff --git a/tools/buildman/board.py b/tools/buildman/board.py
> > index 447aaabea8..cf270c8b72 100644
> > --- a/tools/buildman/board.py
> > +++ b/tools/buildman/board.py
> > @@ -96,6 +96,28 @@ class Board:
> >                         self.vendor, self.soc, self.options]
> >           self.build_it = False
> >
> > +    def create_dummy_files(self, work_dir):
> > +        import configparser
> > +        import os
> > +
> > +        settings = configparser.SafeConfigParser()
> > +        config_fname = '%s/.buildman/' % os.getenv('HOME')
> > +        if os.path.exists(config_fname):
> > +            settings.read(config_fname)
> > +
> > +        if self.target == "kontron_pitx_imx8m":
> > +
> > +            dummy_files = ['bl31.bin',
> > +                           'signed_hdmi_imx8m.bin',
> > +                           'lpddr4_pmu_train_1d_imem.bin',
> > +                           'lpddr4_pmu_train_1d_dmem.bin',
> > +                           'lpddr4_pmu_train_2d_imem.bin',
> > +                           'lpddr4_pmu_train_2d_dmem.bin'
> > +                          ]
> > +            for dummy_file in dummy_files:
> > +                dummy = os.path.join(work_dir, 'build', dummy_file)
> > +                with open(dummy, "wb") as out:
> > +                    out.truncate(1024)
> >
> >   class Boards:
> >       """Manage a list of boards."""
> > diff --git a/tools/buildman/builderthread.py b/tools/buildman/builderthread.py
> > index 48128cf673..dee7d9b0fe 100644
> > --- a/tools/buildman/builderthread.py
> > +++ b/tools/buildman/builderthread.py
> > @@ -475,6 +475,7 @@ class BuilderThread(threading.Thread):
> >           """
> >           brd = job.board
> >           work_dir = self.builder.GetThreadDir(self.thread_num)
> > +        brd.create_dummy_files(work_dir)
> >           self.toolchain = None
> >           if job.commits:
> >               # Run 'make board_defconfig' on the first commit
> >


-- 
Heiko

  reply	other threads:[~2021-10-22 13:24 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-14 18:08 [PATCH v6 1/2] arm: dts: imx8mq: Add Kontron pitx-imx8m Heiko Thiery
2021-10-14 18:08 ` [PATCH v6 2/2] board: kontron: pitx-imx8m: Add Kontron pitx-imx8m board support Heiko Thiery
2021-10-21 11:31   ` Stefano Babic
2021-10-21 13:17     ` Heiko Thiery
2021-10-21 13:29       ` Stefano Babic
2021-10-21 13:57         ` Heiko Thiery
2021-10-22  8:19           ` Heiko Thiery
2021-10-22 12:37             ` Stefano Babic
2021-10-22 13:24               ` Heiko Thiery [this message]
2021-10-22 16:07                 ` Simon Glass
2021-10-22 17:54                   ` Heiko Thiery
2021-10-24 19:54                     ` Simon Glass

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='CAEyMn7ZDgK=jSmFfUnroSvVWEGqKMOfY1oO1vdEHh+qbOhVANw@mail.gmail.com' \
    --to=heiko.thiery@gmail.com \
    --cc=festevam@gmail.com \
    --cc=michael@walle.cc \
    --cc=patrick@blueri.se \
    --cc=peng.fan@nxp.com \
    --cc=sbabic@denx.de \
    --cc=sjg@chromium.org \
    --cc=thomas.schaefer@kontron.com \
    --cc=u-boot@lists.denx.de \
    --cc=uboot-imx@nxp.com \
    --cc=ye.li@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.