Thread (98 messages) 98 messages, 7 authors, 2022-01-03

Re: [RFC PATCH 00/34] brcmfmac: Support Apple T2 and M1 platforms

From: Hans de Goede <hidden>
Date: 2021-12-26 21:43:01
Also in: linux-acpi, linux-devicetree, lkml, netdev

Hi,

On 12/26/21 20:17, Lukas Wunner wrote:
On Mon, Dec 27, 2021 at 12:35:50AM +0900, Hector Martin wrote:
quoted
# On firmware

As you might expect, the firmware for these machines is not available
under a redistributable license; however, every owner of one of these
machines *is* implicitly licensed to posess the firmware, and the OS
packages containing it are available under well-known URLs on Apple's
CDN with no authentication.
Apple's EFI firmware contains a full-fledged network stack for
downloading macOS images from osrecovery.apple.com.  I suspect
that it also contains wifi firmware.

You may want to check if it's passed to the OS as an EFI property.
Using that would sidestep license issues.  There's EDID data,
Thunderbolt DROM data and whatnot in those properties, so I
wouldn't be surprised if it contained wifi stuff as well.

Enable CONFIG_APPLE_PROPERTIES and pass "dump_apple_properties"
on the command line to see all EFI properties in dmesg.
Alternatively, check "ioreg -l" on macOS.  Generally, what's
available in the I/O registry should also be available on Linux
either as an ACPI or EFI property.
Interesting, note that even if the files are not available as
a property we also have CONFIG_EFI_EMBEDDED_FIRMWARE, see:

drivers/firmware/efi/embedded-firmware.c
Documentation/driver-api/firmware/fallback-mechanisms.rst

I wrote this to pry/dig out some touchscreen firmwares (where
we have been unable to get permission to redistribute) out of
EFI boot_services_code mem regions on tablets where
the touchsceen is supported under the EFI environment.

This may need some tweaks, but if there is an embedded copy
of the firmware files in the EFI mem regions somewhere it
should be possible to adjust this code to grab it and present
it to the firmware-loader mechanism as a fallback option.

Refards,

Hans
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help