From: Lukas Wunner <lukas@wunner.de> To: linux-efi@vger.kernel.org, Matt Fleming <matt@codeblueprint.co.uk>, linux-kernel@vger.kernel.org Cc: Andreas Noever <andreas.noever@gmail.com>, Pierre Moreau <pierre.morrow@free.fr>, reverser@put.as, grub-devel@gnu.org, x86@kernel.org, Aleksey Makarov <aleksey.makarov@linaro.org>, "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>, Mika Westerberg <mika.westerberg@linux.intel.com>, Andy Shevchenko <andriy.shevchenko@linux.intel.com>, Greg Kroah-Hartman <gregkh@linuxfoundation.org> Subject: [PATCH 0/6] Apple device properties Date: Wed, 27 Jul 2016 13:20:41 +0200 [thread overview] Message-ID: <cover.1469616641.git.lukas@wunner.de> (raw) 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 -- 2.8.1
WARNING: multiple messages have this Message-ID (diff)
From: Lukas Wunner <lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> To: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Matt Fleming <matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org>, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Andreas Noever <andreas.noever-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, Pierre Moreau <pierre.morrow-GANU6spQydw@public.gmane.org>, reverser-P1ImLx+pFc0@public.gmane.org, grub-devel-mXXj517/zsQ@public.gmane.org, x86-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org, Aleksey Makarov <aleksey.makarov-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, "Rafael J. Wysocki" <rafael.j.wysocki-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>, Mika Westerberg <mika.westerberg-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>, Andy Shevchenko <andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>, Greg Kroah-Hartman <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org> Subject: [PATCH 0/6] Apple device properties Date: Wed, 27 Jul 2016 13:20:41 +0200 [thread overview] Message-ID: <cover.1469616641.git.lukas@wunner.de> (raw) 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 -- 2.8.1
next reply other threads:[~2016-07-27 11:20 UTC|newest] Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-07-27 11:20 Lukas Wunner [this message] 2016-07-27 11:20 ` [PATCH 0/6] Apple device properties Lukas Wunner 2016-07-27 11:20 ` [PATCH 1/6] efi: Retrieve " Lukas Wunner 2016-07-27 11:20 ` Lukas Wunner 2016-07-30 19:16 ` Andrei Borzenkov 2016-07-30 19:16 ` Andrei Borzenkov 2016-08-04 15:13 ` Matt Fleming 2016-08-04 15:13 ` Matt Fleming [not found] ` <20160804151345.GM3636-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org> 2016-08-05 11:42 ` Lukas Wunner 2016-08-05 11:42 ` Lukas Wunner 2016-08-05 12:06 ` Matt Fleming 2016-07-27 11:20 ` [PATCH 6/6] thunderbolt: Use Device ROM retrieved from EFI Lukas Wunner 2016-07-27 11:20 ` [PATCH 3/6] efi: Add device path parser Lukas Wunner 2016-07-27 11:20 ` [PATCH 5/6] efi: Assign Apple device properties Lukas Wunner [not found] ` <a0edd928ab099682c2cb4c4544c599573144d03a.1469616641.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org> 2016-08-04 15:52 ` Matt Fleming 2016-08-04 15:52 ` Matt Fleming 2016-07-27 11:20 ` [PATCH 2/6] ACPI / bus: Make acpi_get_first_physical_node() public Lukas Wunner 2016-08-17 0:38 ` Rafael J. Wysocki [not found] ` <1821462.QyPXGhZaWJ-sKB8Sp2ER+y1GS7QM15AGw@public.gmane.org> 2016-09-12 22:03 ` Rafael J. Wysocki 2016-09-12 22:03 ` Rafael J. Wysocki 2016-07-27 11:20 ` [PATCH 4/6] driver core: Don't leak secondary fwnode on device removal Lukas Wunner 2016-07-27 11:20 ` Lukas Wunner 2016-08-17 0:38 ` Rafael J. Wysocki 2016-08-30 9:03 ` Lukas Wunner 2016-09-12 22:03 ` Rafael J. Wysocki 2016-07-27 23:48 ` [PATCH 0/6] Apple device properties Rafael J. Wysocki 2016-07-27 23:48 ` Rafael J. Wysocki 2016-07-28 0:25 ` [PATCH 5/6] efi: Assign " Lukas Wunner 2016-07-28 0:25 ` [PATCH 2/6] ACPI / bus: Make acpi_get_first_physical_node() public Lukas Wunner 2016-07-28 0:25 ` [PATCH 4/6] driver core: Don't leak secondary fwnode on device removal Lukas Wunner 2016-07-28 0:25 ` [PATCH 1/6] efi: Retrieve Apple device properties Lukas Wunner 2016-07-28 0:25 ` [PATCH 6/6] thunderbolt: Use Device ROM retrieved from EFI Lukas Wunner 2016-07-28 0:25 ` [PATCH 3/6] efi: Add device path parser Lukas Wunner 2016-08-04 14:57 ` [PATCH 0/6] Apple device properties Matt Fleming 2016-08-09 13:38 ` Lukas Wunner 2016-08-15 11:54 ` Matt Fleming 2016-08-15 16:13 ` Lukas Wunner 2016-08-18 20:34 ` Matt Fleming 2016-08-22 9:58 ` Lukas Wunner 2016-08-22 9:58 ` Lukas Wunner 2016-08-24 19:49 ` Matt Fleming 2016-07-28 0:25 Lukas Wunner
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=cover.1469616641.git.lukas@wunner.de \ --to=lukas@wunner.de \ --cc=aleksey.makarov@linaro.org \ --cc=andreas.noever@gmail.com \ --cc=andriy.shevchenko@linux.intel.com \ --cc=gregkh@linuxfoundation.org \ --cc=grub-devel@gnu.org \ --cc=linux-efi@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=matt@codeblueprint.co.uk \ --cc=mika.westerberg@linux.intel.com \ --cc=pierre.morrow@free.fr \ --cc=rafael.j.wysocki@intel.com \ --cc=reverser@put.as \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.