On 2016-07-30, Martin Michlmayr wrote: > DTBs on arm64 are stored as vendor/dtb rather than everything in one > directory. flash-kernel doesn't handle this at the moment. I see two > options: > > 1) Strip the vendor dir away and install the dtb as > /boot/dtbs/$kvers/dtb > > 2) Keep the directory and install as /boot/dtbs/$kvers/vendor/dtb > > In both cases, I think we should accept local DTBs in > /etc/flash-kernel/dtbs either as vendor/dtb or just dtb. > > The patch below implements options 1. Do people think this is the > right path or would you prefer option 2? > > Actually, now that I look at the boot script, I think the real > question is: does ${fdtfile} from u-boot contain the directory or not? > I believe the answer is no, so option 1 is the right on.
I haven't seen u-boot platforms that set fdtfile to include the directory. The only risk i see is if different vendors implemented a .dtb with the same name but in a different vendor dir... but I'm hoping the odds of that, while not impossible, are highly unlikely. > Any problems with the proposed patch? > diff --git a/functions b/functions > index 0f597b8..06a0c39 100644 > --- a/functions > +++ b/functions > @@ -560,6 +560,8 @@ find_dtb_file() { > *) > if [ -e "/etc/flash-kernel/dtbs/$dtb_name" ] ; then > echo "/etc/flash-kernel/dtbs/$dtb_name" > + elif [ -e "/etc/flash-kernel/dtbs/$(basename $dtb_name)" ] ; > then > + echo "/etc/flash-kernel/dtbs/$(basename $dtb_name)" > else > echo "/usr/lib/linux-image-$kvers/$dtb_name" > fi > @@ -573,6 +575,11 @@ handle_dtb() { > fi > > local dtb=$(find_dtb_file) > + # DTBs on arm64 are stored in subdirs for each vendor; strip the > + # dir away because we want to put the file in /boot/dtbs/$kvers/ > + # without additional subdirs. > + local dtb_name=$(basename $dtb_name) > + > if [ "x$FK_KERNEL_HOOK_SCRIPT" = "xpostrm.d" ] ; then > rm -f "/boot/dtbs/$kvers/$dtb_name" Thanks for the patch! Looks good and simple to me. I presume the database entries for platforms that need it would then include the vendor like this: DTB-Id: VENDOR/PLATFORM.dtb live well, vagrant
signature.asc
Description: PGP signature