[PATCH 00/12] imx9: switch to bootstd for i.MX93/1 EVK/QSB and i.MX8M EVK
Simon Glass
sjg at chromium.org
Tue Jan 14 14:13:50 CET 2025
Hi Frieder,
On Mon, 13 Jan 2025 at 02:48, Frieder Schrempf
<frieder.schrempf at kontron.de> wrote:
>
> On 07.01.25 12:45 AM, Tony Dinh wrote:
> > Hi Peng & Simon,
> >
> > On Mon, Jan 6, 2025 at 4:15 AM Simon Glass <sjg at chromium.org> wrote:
> >>
> >> Hi Peng,
> >>
> >> On Sun, 5 Jan 2025 at 18:14, Peng Fan <peng.fan at nxp.com> wrote:
> >>>
> >>>> Subject: Re: [PATCH 00/12] imx9: switch to bootstd for i.MX93/1
> >>>> EVK/QSB and i.MX8M EVK
> >>>>
> >>>> Hi Peng,
> >>>>
> >>>> On Sun, 5 Jan 2025 at 17:27, Peng Fan <peng.fan at oss.nxp.com> wrote:
> >>>>>
> >>>>> Hi Simon,
> >>>>>
> >>>>> On Sun, Jan 05, 2025 at 08:30:55AM +1300, Simon Glass wrote:
> >>>>>> Hi Peng,
> >>>>>>
> >>>>>> On Sat, 4 Jan 2025 at 16:19, Peng Fan (OSS)
> >>>> <peng.fan at oss.nxp.com> wrote:
> >>>>>>>
> >>>>>>> Switch to bootstd for NXP i.MX9/8M boards with a bsp_bootcmd
> >>>> as fallback.
> >>>>>>>
> >>>>> [...]
> >>>>>>>
> >>>>>>
> >>>>>> This also switches to a text environment, great!
> >>>>>>
> >>>>>> For bsp_bootcmd is it possible to create a bootmeth for your use
> >>>> case?
> >>>>>> If you would like to take a look (separate from this series), I could
> >>>>>> help with any issues that come up.
> >>>>>
> >>>>> I just give a quick look of bootmeth, seems needs extlinux or
> >>>>> bootscript (boot.scr). But both are used on NXP i.MX release as of
> >>>>> now. In NXP releases, we put all script in the U-Boot ENV.
> >>>>>
> >>>>> Do you have suggestions how to move to support bootmeth.
> >>>>
> >>>> I'm not entirely sure what you are trying to do with the bootcmd,
> >>>
> >>> With a single u-boot, we want to support Fedora/SUSE/etc and NXP
> >>> Yocto releases.
> >>>
> >>> So add a bsp_bootcmd as fallback to run NXP Yocto releases.
> >>> NXP Yocto releases not have extlinux.cfg, nor boot.scr, we just
> >>> have simple uboot hush command in bootcmd, simplied saying:
> >>> run loadimage; run loadfdt; run mmcargs; booti ${loadaddr} - ${fdtaddr}
> >>>
> >>>> you could write your own bootmeth, e.g. using common code from the
> >>>> others. For example, bootmeth_script.c shows how to run a script and
> >>>> bootmeth_extlinux.c shows how to run an extlinux file. You could then
> >>>> create C code to perform your 'bsp' function, e.g. a new
> >>>> bootmeth_bsp.c.
> >>>
> >>> I will give a look, but this seems we need put the "run loadimage and etc"
> >>> in dtb and needs bootmeth_imx.c to support it.
> >>
> >> Note that my suggestion here is as a follow-on to you current series,
> >> which I believe can be applied as is.
> >>
> >> Anyway, as a starting point, yes you can use run_command() lots of
> >> times in the bootmeth to run the things you need. From there you can
> >> potentially change some commands to direct calls into the U-Boot
> >> functionality. The idea is to be able to locate the bootflow as a
> >> separate thing from booting it. I am quite happy to help as well.
> >>
> >
> > Can we call this bootmeth_internal, and have it read the internal
> > board/xxx/yyy/bootflow? And then this "default' bootflow can contain
> > the envs scripting to boot the board when all other boot methods have
> > failed. Of course, it can also be executed manually at command prompt
> > like other bootflows.
> >
> > I think if we go this far to add another bootmeth, it would be nice to
> > make it generic so it can be used in other boards.
>
> I agree that a generic bootmeth would be really helpful. We would like
> to have some simple A/B boot mechanism (using RAUC) and I think
> implementing it as bootmeth and sharing it across different platforms
> and boards is better than implementing it in the env for each board/vendor.
I am hoping that VBE's abrec will land before too long. That is
programmatic. Fwupd only supports VBE-simple at present but I plan to
add support for that in the middle of the year.
Regards,
Simon
More information about the U-Boot
mailing list