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>
Cc: Andreas Noever
<andreas.noever-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
Peter Jones <pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Ard Biesheuvel
<ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
Subject: [PATCH v4 0/4] Apple device properties
Date: Mon, 7 Nov 2016 11:09:00 +0100 [thread overview]
Message-ID: <cover.1478506920.git.lukas@wunner.de> (raw)
Retrieve device properties from EFI on Macs before ExitBootServices is
called and assign them to devices (patch [3/4]). The devices that
properties pertain to are encoded as EFI Device Paths, so add a parser
for these (patch [1/4]). As a first use case, amend the Thunderbolt driver
to take advantage of the Device ROM supplied by EFI (patch [4/4]).
Changes since v3:
- New patch [2/4] which introduces efi_call_proto() and efi_table_attr()
macros to allow bitness-agnostic EFI protocol calls and table lookups.
Previously when retrieving the properties in patch [3/4], a ternary
operator was used to make the code work in mixed-mode, but Matt
correctly remarked that it impacted readability. The new approach
seeks to maintain readability while avoiding code duplication.
- Address all other comments by Matt on patch [3/4]: In eboot.c, move
comparison of fw_vendor and call to retrieve_apple_device_properties()
out of efi_main() and into a separate setup_quirks() function which
may accommodate future vendor- or device-specific quirks. Fix up
comments and curly braces, add newlines and suffix typedefs with "_t"
as requested by Matt.
- Fix bug in comparison of fw_vendor in patch [3/4] wherein the system
table was assumed to be the 64-bit version when compiling on x86_64,
which obviously didn't work in mixed-mode.
- Fix double free in error path in patch [4/4] spotted by Andreas.
Link to v3:
http://www.spinics.net/lists/linux-efi/msg09647.html
Browseable on GitHub:
https://github.com/l1k/linux/commits/apple_properties_v4
Thanks,
Lukas
Lukas Wunner (4):
efi: Add device path parser
efi: Allow bitness-agnostic protocol calls
x86/efi: Retrieve and assign Apple device properties
thunderbolt: Use Device ROM retrieved from EFI
Documentation/kernel-parameters.txt | 5 +
arch/arm/include/asm/efi.h | 3 +
arch/arm64/include/asm/efi.h | 3 +
arch/x86/boot/compressed/eboot.c | 65 +++++++++
arch/x86/include/asm/efi.h | 16 ++-
arch/x86/include/uapi/asm/bootparam.h | 1 +
drivers/firmware/efi/Kconfig | 18 +++
drivers/firmware/efi/Makefile | 2 +
drivers/firmware/efi/apple-properties.c | 248 ++++++++++++++++++++++++++++++++
drivers/firmware/efi/dev-path-parser.c | 203 ++++++++++++++++++++++++++
drivers/thunderbolt/Kconfig | 1 +
drivers/thunderbolt/eeprom.c | 43 ++++++
drivers/thunderbolt/switch.c | 2 +-
include/linux/efi.h | 37 +++++
14 files changed, 641 insertions(+), 6 deletions(-)
create mode 100644 drivers/firmware/efi/apple-properties.c
create mode 100644 drivers/firmware/efi/dev-path-parser.c
--
2.10.1
next reply other threads:[~2016-11-07 10:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-07 10:09 Lukas Wunner [this message]
[not found] ` <cover.1478506920.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org>
2016-11-07 10:09 ` [PATCH v4 3/4] x86/efi: Retrieve and assign Apple device properties Lukas Wunner
2016-11-07 10:09 ` [PATCH v4 4/4] thunderbolt: Use Device ROM retrieved from EFI Lukas Wunner
2016-11-07 10:09 ` [PATCH v4 2/4] efi: Allow bitness-agnostic protocol calls Lukas Wunner
[not found] ` <b6591dbe76700984afd4c881408aadb7b10587ba.1478506920.git.lukas-JFq808J9C/izQB+pC5nmwQ@public.gmane.org>
2016-11-12 9:02 ` Matt Fleming
2016-11-07 10:09 ` [PATCH v4 1/4] efi: Add device path parser Lukas Wunner
2016-11-12 10:10 ` [PATCH v4 0/4] Apple device properties Matt Fleming
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.1478506920.git.lukas@wunner.de \
--to=lukas-jfq808j9c/izqb+pc5nmwq@public.gmane.org \
--cc=andreas.noever-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=ard.biesheuvel-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matt-mF/unelCI9GS6iBeEJttW/XRex20P6io@public.gmane.org \
--cc=pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).