Re: [PATCH v2 1/4] dt-bindings: bluetooth: add new wcn3991 compatible to fix bd_addr
From: Doug Anderson
Date: Mon Mar 18 2024 - 11:31:50 EST
Hi,
On Mon, Mar 18, 2024 at 8:26 AM Doug Anderson <dianders@xxxxxxxxxx> wrote:
>
> Hi,
>
> On Mon, Mar 18, 2024 at 8:10 AM Johan Hovold <johan@xxxxxxxxxx> wrote:
> >
> > > > I wanted to avoid doing this, but if we have to support Google's broken
> > > > boot firmware for these devices, then this is how it needs to be done.
> > >
> > > Don't Chromebooks update everything together. So maybe we don't care in
> > > this case?
> >
> > That was my hope, but Matthias seemed to suggest that we need to
> > continue supporting the current (broken) binding because doing such a
> > coordinated update may be easier said than done:
> >
> > https://lore.kernel.org/lkml/ZcuQ2qRX0zsLSVRL@xxxxxxxxxx/
>
> Chromebooks update kernel and devicetree together, but not firmware.
> Firmware is relatively hard to get updated trying to have kernel and
> firmware updates coordinated at the exact same time has challenges.
> This would further be complicated by the fact that firmware
> qualification for each variant happens on its own timeline.
>
>
> > A new compatible string (or one-off property) would allow them do make a
> > change when they are ready (e.g. by only updating the devicetrees after
> > all boot firmware has been patched and pushed out).
>
> I have no real opinion about the exact way this is solved so happy to
> let DT folks decide on how they want this. I will note, however, that
> device trees are never shipped separately and thus we have no
> intrinsic need for DT backward compatbility here. It would be OK from
> a ChromeOS perspective to add a property or compatible string for the
> broken case.
Actually, I should probably say more about this to make it clear how it works.
Chromebooks ship the kernel as a FIT image which bundles the kernel
and device trees together. The firmware looks at all the bundled
device trees and picks the proper one based on the board name,
revision, and SKU ID. The firmware then looks for the bluetooth node
(I believe it finds it from the "aliases" section) and adds the MAC
address there.
..so we could update the DT to add a property (if that's desired)
even if we don't update the firmware.
-Doug