On Mon, Jan 09, 2023 at 12:20:55AM +0200, Dmitry Baryshkov wrote: > On 08/01/2023 23:40, Rob Herring wrote: > > On Wed, Jan 04, 2023 at 12:53:47PM +0100, Stephan Gerhold wrote: > > > Sync the SoC IDs in qcom,ids.h with relevant entries from Qualcomm's LK > > > bootloader [1] that is used for almost all older Qualcomm SoCs. > > > > > > Several of these are already supported, e.g.: > > > - MSM8960 -> APQ8060, MSM8260, ... > > > - MSM8976 -> APQ8076 > > > - MSM8956 -> APQ8056 > > > Others are currently being worked on, e.g.: > > > - MSM8909(W) -> APQ8009(W), MSM8905, MSM8209, ... > > > - MSM8939 -> MSM8239, ... > > > > > > And even all remaining ones added are close enough to what is already > > > supported so that future support is realistic (if someone steps up to > > > do the work). > > > > > > Add all of them at once to avoid having to add them one by one in the > > > future. This will also benefit other projects making use of the same > > > dt-bindings, e.g. bootloaders where adding support for all these SoCs > > > is a bit easier than on Linux. > > > > The promise was in accepting the properties upstream is we'd only be > > adding these for bootloaders with dtbs that we can't otherwise update or > > change. Do all of those meet this criteria? Seems unlikely. > > > Most of Qualcomm platforms come with the signed bootloader, so it is > impossible to change it without vendor keys. This might sound bad for you, > but I fear that this list would include most of the platforms until Qualcomm > agrees to rework kernel-bootloader-dtb interaction. > There is no need to replace the signed bootloader to avoid these quirks. The bootloader does not care if it is booting Linux directly or another OS, so you can just package a less broken bootloader into an Android boot image and "chainload" it before booting Linux. This is fairly simple to do for the older platforms that are still using LK as bootloader, but more complicated for the UEFI platforms since a fully open-source bootloader is not available there. For the older platforms I'm working on (mainly MSM8916 and similar) this approach has proven to be extremely beneficial. I have seen all sorts of vendor-specific bootloader quirks that go way beyond just requiring a non-standard property in the DT. Some of them require almost the entire downstream DT because they use information from it to initialize the display shortly before booting Linux. Others make random modifications to the DT that would cause trouble for mainline Linux. lk2nd [1] covers all relevant LK platforms. IMO investing the time to get e.g. U-Boot running for newer platforms would be well worth the effort, especially because it can cut many discussions short. For example, lk2nd has working display panel selection (by setting the correct panel compatible in the Linux DT). AFAIU this is still unsolved for all newer platforms because Qualcomm still passes this in some weird cmdline format to the kernel (mdss_mdp.panel=, msm_drm.dsi_display0=, ...) Thanks, Stephan [1]: https://github.com/msm8916-mainline/lk2nd