msm8916-mainline / linux

Linux mainline kernel fork for various Qualcomm MSM8909/MSM8916/MSM8939 devices
https://wiki.postmarketos.org/wiki/MSM8916_Mainlining
Other
159 stars 125 forks source link

serranove: enforce standard naming of dtbs #354

Closed Kreyren closed 7 months ago

Kreyren commented 7 months ago

This qcom- prefix is complicating my automation on downstream (mobile-nixos)

image

Relevant: https://github.com/NixOS/mobile-nixos/pull/708

TravMurav commented 7 months ago

The dtbs are named by upstream convention: for aarch64 the install convention is vendor/soc-board.dtb and for armv7 it is vendor-soc-board.dtb and for the longest time all the boards were in a flat structure in the dtbs dir. Only recently the source tree was refactored to allow vendor/ dirs but the file names keep the vendor- prefix since the build system would flatten the output for backwards compatibiltiy with the bootloaders that rely on it.

Since it's an upstream rule, this commit won't be upstreamable, in which case I highly recommend you to fix your build rules to follow arm32 convention when you build 32bit linux.

On top of all of that, I recommend you to look into the "future" lk2nd, preview of which is currently in rebase/next branch, and perhaps adapt your build system to use extlinux.conf since boot/boot.img would get dropped when we switch. This way you should be able to create generic images and let lk2nd pick the dtb file for you, as long as you provide a dtbs dir in /boot the way linux's make install_dtbs creates it.

For aarch64 devices I have a WIP U-Boot build that would've given you reasonable EBBR compliant EFI and out-of-band dtb but Ive not looked how/if it can be used on 32bit targets yet.

Kreyren commented 7 months ago

Oh sorry i didn't know that (i usually develop arm64 and riscv64). Thanks for clarifying