Skip to content

Apple device properties

Lukas Wunner grub-devel linux-acpi linux-efi lkml 1 version Applied

Status from this message: I've applied this one, thanks!

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest6 patches 18 repliesApplied

Patches in v1 Applied

#Subject and filesSizeRepliesApplied
1/6efi: Retrieve Apple device propertiesarch/x86/boot/compressed/eboot.c arch/x86/include/uapi/asm/bootparam.h include/linux/efi.h+73 -04 replies
1/6efi: Retrieve Apple device propertiesarch/x86/boot/compressed/eboot.c arch/x86/include/uapi/asm/bootparam.h include/linux/efi.h+73 -00 replies
2/6ACPI / bus: Make acpi_get_first_physical_node() publicdrivers/acpi/internal.h include/linux/acpi.h+7 -12 replies
2/6ACPI / bus: Make acpi_get_first_physical_node() publicdrivers/acpi/internal.h include/linux/acpi.h+7 -10 replies
3/6efi: Add device path parserdrivers/firmware/efi/Kconfig drivers/firmware/efi/Makefile drivers/firmware/efi/dev-path-parser.c +1 more+213 -00 replies
3/6efi: Add device path parserdrivers/firmware/efi/Kconfig drivers/firmware/efi/Makefile drivers/firmware/efi/dev-path-parser.c +1 more+213 -00 replies
4/6driver core: Don't leak secondary fwnode on device removaldrivers/base/core.c+1 -03 replies
4/6driver core: Don't leak secondary fwnode on device removaldrivers/base/core.c+1 -00 replies
5/6efi: Assign Apple device propertiesDocumentation/kernel-parameters.txt drivers/firmware/efi/Kconfig drivers/firmware/efi/Makefile +1 more+236 -01 reply
5/6efi: Assign Apple device propertiesDocumentation/kernel-parameters.txt drivers/firmware/efi/Kconfig drivers/firmware/efi/Makefile +1 more+236 -00 replies
6/6thunderbolt: Use Device ROM retrieved from EFIdrivers/thunderbolt/Kconfig drivers/thunderbolt/eeprom.c drivers/thunderbolt/switch.c+44 -10 replies
6/6thunderbolt: Use Device ROM retrieved from EFIdrivers/thunderbolt/Kconfig drivers/thunderbolt/eeprom.c drivers/thunderbolt/switch.c+44 -10 replies

Reviews trailers per patch

None of the 12 patches has a Reviewed-by or Acked-by.

PatchLukas WunnerPierre Moreau
1/6T-b T-b T-b T-b
1/6T-b T-b T-b T-b
2/6
2/6
3/6
3/6
4/6
4/6
5/6T-b T-b T-b T-b
5/6T-b T-b T-b T-b
6/6T-b T-b T-b T-b
6/6T-b T-b T-b T-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 0/6] Apple device properties

Apple EFI drivers supply device properties which are needed to support Macs optimally.

This series extends the efistub to retrieve the device properties before ExitBootServices is called (patch [1/6]). They are assigned to devices in an fs_initcall (patch [5/6]). As a first use case, the Thunderbolt driver is amended to take advantage of the Device ROM supplied by EFI (patch [6/6]).

A by-product is a parser for EFI Device Paths which finds the struct device corresponding to a given path. This is needed to assign properties to their devices (patch [3/6]).

I've pushed these patches to GitHub where they can be reviewed more comfortably with green/red highlighting:
https://github.com/l1k/linux/commits/apple_properties_v1

It would be good if one of the resident EFI experts could look over patch [1/6] to see if I've made any mistakes that might prevent this from working on 32 bit. It was only tested on 64 bit, I don't know anyone with an older Mac who could test this.

Specifically, is the following okay:
efi_early->call((unsigned long)sys_table->boottime->locate_protocol, ...)

It would be convenient to have LocateProtocol or LocateHandleBuffer in struct efi_config so that they can be called with efi_call_early(). Would a patch to add those be entertained? Right now we only offer LocateHandle and HandleProtocol, which is somewhat cumbersome and needs more code as the setup_pci() functions show.

Thanks,

Lukas

Lukas Wunner (6):
efi: Retrieve Apple device properties
ACPI / bus: Make acpi_get_first_physical_node() public
efi: Add device path parser
driver core: Don't leak secondary fwnode on device removal
efi: Assign Apple device properties
thunderbolt: Use Device ROM retrieved from EFI

 Documentation/kernel-parameters.txt     |   5 +
 arch/x86/boot/compressed/eboot.c        |  55 ++++++++
 arch/x86/include/uapi/asm/bootparam.h   |   1 +
 drivers/acpi/internal.h                 |   1 -
 drivers/base/core.c                     |   1 +
 drivers/firmware/efi/Kconfig            |  16 +++
 drivers/firmware/efi/Makefile           |   2 +
 drivers/firmware/efi/apple-properties.c | 219 ++++++++++++++++++++++++++++++++
 drivers/firmware/efi/dev-path-parser.c  | 186 +++++++++++++++++++++++++++
 drivers/thunderbolt/Kconfig             |   1 +
 drivers/thunderbolt/eeprom.c            |  42 ++++++
 drivers/thunderbolt/switch.c            |   2 +-
 include/linux/acpi.h                    |   7 +
 include/linux/efi.h                     |  38 ++++++
 14 files changed, 574 insertions(+), 2 deletions(-)
 create mode 100644 drivers/firmware/efi/apple-properties.c
 create mode 100644 drivers/firmware/efi/dev-path-parser.c
Signature · 1 line
2.8.1