Re: [PATCH 3/4] dt-bindings: arm: qcom,ids: Add a bunch of older SoCs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux