barebox extending boot-scripts

Sascha Hauer sha at pengutronix.de
Mon Jan 10 01:42:14 PST 2022


On Fri, Jan 07, 2022 at 05:42:22PM +0100, Frank Wunderlich wrote:
> Hi
> 
> missed the defaultenv_append_directory(defaultenv_rk3568); in board-file...after adding that it seems to work
> 
> > Gesendet: Freitag, 07. Januar 2022 um 14:07 Uhr
> > Von: "Sascha Hauer" <sha at pengutronix.de>
> >
> > Yes. Furthermore you have to add to the board code:
> >
> > 	defaultenv_append_directory(defaultenv_rk3568);
> 
> maybe this is the part i've missed. i thought it were 2 ways...either link via makefile or add to boards code
> 
> > > > > > Boot scripts for publicly available evaluation kits are often not good candidates
> > > > > > for upstreaming, because everybody using the EVKs has different thoughts on how to
> > > > > > boot. The best way would be to use bootloader spec. It's one or more files you
> > > > > > place at a known location that describe where your kernel and device tree are and
> > > > > > what command line arguments to use and barebox can then automatically generate
> > > > > > boot entries from all available bootloader spec files.
> > >
> > > is extlinux (i used in uboot and conf-file is already present) supported here?
> > >
> > > > > > See https://elinux.org/images/9/9d/Barebox-bells-n-whistles.pdf for an example
> > > > > > of how to set this up. This is what I'd recommend instead of writing your own
> > > > > > scripts.
> > >
> > > i do not fully understand the bootloader spec in the pdf as config file seems to be
> > >
> > > /mnt/mmc0.4/loader/entries/stm32mp157c-dk2.conf
> > >
> > > and then
> > > boot -d mmc0.4
> > >
> > > is run...so the path (loader/entries) seems to be fixed and all files there will be processed (which order)?
> >
> > Yes. No particular order, I guess it would be the order it is on the
> > filesystem.
> >
> > > how is root appended (/dev/mmcblkXpY|uuid|...) when linux-appendroot is set to true?
> >
> > When root is appended it is assumed to be the same fs that also has the
> > bootloader spec file, so the rootfs also has the entry and the kernel.
> 
> ok, then this is not usable for me, as i have a boot-partition
> (bootloader+kernel+dtb) and separate rootfs-partition
> 
> > > this is for testing multiple kernels with changing filenames (very
> > > dynamic process, e.g. using 1 kernel binary with multiple dtb) and to
> > > avoid adding a bootmenu entry everytime....this is not for end-user :)
> >
> > In that case you could also use bootm directly.
> 
> yes but my approach is to list the available kernels before and ask to
> enter the filename to not everytime look for correct commands ;)
> 
> > > and here scripting is imho the best way...this allows me to add extra
> > > params to cmdline too (like debug level,dumping offsets) without
> > > changing a distroboot config
> >
> > Not sure if you know already, but barebox concatenates all variables in
> > the "global.linux.bootargs." namespace to the kernel command line, so
> > you can easily add or remove a variable to add/remove kernel options
> > without affecting unrelated options.
> 
> i know some options from documentation like this i've used to get a earlycon for tftp
> 
> global linux.bootargs.debug="earlycon=uart8250,mmio32,0xfe660000 earlyprintk"
> 
> > > for fixed kernels i have defined an extlinux.conf for uboot, but i'm
> > > unsure if barebox can use this file too. have not found anything about
> > > extlinux/syslinux in barebox yet.
> >
> > No, not yet.
> 
> ok, i created a bootloader-config like described in the pdf:
> 
> cat /mnt/sd.1/loader/entries/linux-gz.conf
> title Linux GZip
> version 5.16
> options earlycon=uart8250,mmio32,0xfe660000 console=ttyS2,1500000n8
> linux /extlinux/Image_5.16.gz
> devicetree /extlinux/dtb_5.16
> initrd /rootfs.cpio.lz4
> 
> but on starting it is skipped due to devicetree mismatch
> 
> boot -d sd.1
> blspec: ignoring entry with incompatible devicetree "rockchip,rk3568-bpi-r2pro"
> blspec: ignoring entry with incompatible devicetree "rockchip,rk3568-bpi-r2pro"
> Nothing bootable found on 'sd.1'
> Nothing bootable found
> 
> in barebox i use the evb whereas in linux i already have a separate
> dts. Can i override the compatible for the bootloader or do i need to
> add my board (as copy of evb first)?

You can overwrite the compatible using the of_property command. However,
I really recommend to add a separate barebox board for your board.
Sooner or later you'll have to do this anyway and it's the only way to
properly add quirks for your board.

> 
> btw. don't you get my direct messages (regarding vop2 driver for
> rk3568 and the result of my barebox environment-tests)?

Yes, I received them, but probably forgot to answer them because you
didn't ask a question ;)

Regards,
 Sascha


-- 
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 |



More information about the barebox mailing list