Re: [PATCH v3 0/2] efi/x86: Call set_os() protocol on dual GPU Macs

From: Ard Biesheuvel
Date: Mon Jul 29 2024 - 03:28:17 EST


On Sun, 28 Jul 2024 at 14:03, Orlando Chamberlain
<orlandoch.dev@xxxxxxxxx> wrote:
>
> On Wed, 24 Jul 2024 18:01:08 +0200, Lukas Wunner Wrote:
> > On Tue, Jul 23, 2024 at 04:25:19PM +0000, Aditya Garg wrote:
> > > On Wed, Jul 17, 2024 at 04:35:15PM +0000, Aditya Garg wrote:
> > > > For the Macs having a single GPU, in case a person uses an eGPU,
> > > > they still need this apple-set-os quirk for hybrid graphics.
> > >
> > > Sending this message again as for some reason it got sent only to
> > > Lukas:
> > >
> > > Full model name: Mac mini (2018) (Macmini8,1)
> > >
> > > The drive link below has the logs:
> > >
> > > https://drive.google.com/file/d/1P3-GlksU6WppvzvWC0A-nAoTZh7oPPxk/view?usp=drive_link
> >
> > Some observations:
> >
> > * dmesg-with-egpu.txt: It seems the system was actually booted
> > *without* an eGPU, so the filename appears to be a misnomer.
> >
> > * The two files in the with_apple_set_os_efi directory only contain
> > incomplete dmesg output. Boot with log_buf_len=16M to solve this.
> > Fortunately the truncated log is sufficient to see what's going on.
>
> Hi Lukas, in case it helps, I got the user with the macmini and egpu to
> get logs that don't have the start cut off [0].
>
> > We could constrain apple_set_os to newer models by checking for
> > presence of the T2 PCI device [106b:1802]. Alternatively, we could
> > use the BIOS date (DMI_BIOS_DATE in SMBIOS data) to enforce a
> > cut-off such that only machines with a recent BIOS use apple_set_os.
>
> It might be simpler to match "iBridge" in the DMI bios_version as this
> indicates that a computer has the T2 (aka iBridge which runs bridgeOS).
> I don't think there have been any issues from when the downstream T2
> kernels had apple-set-os unconditionally so it should be fine to enable
> for all T2 macs at least. This would exclude the T1 Macs with possibly
> missing trackpad dimensions in applespi that you mentioned [1].
>
> On my MacBookPro16,1:
>
> $ cat /sys/class/dmi/id/bios_version
> 1715.60.5.0.0 (iBridge: 19.16.10647.0.0,0)
>
> [0]: https://gist.github.com/Redecorating/8111324065016363223b5ce719e48676/
> [1]: https://lore.kernel.org/all/ZoJPgSlZJ3ZlU2zL@xxxxxxxxx/
>

Thanks, this seems useful.

Does this mean we can drop the type1 product name list, and just look
for 'iBridge' in the type0 version string? Or does that list contain
non-T2 hardware as well?