<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/firmware/efi/Makefile, branch linux-4.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-06-08T09:51:31Z</updated>
<entry>
<title>efi: Work around ia64 build problem with ESRT driver</title>
<updated>2015-06-08T09:51:31Z</updated>
<author>
<name>Peter Jones</name>
</author>
<published>2015-06-05T19:14:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3846c15820a1841225d0245afda4875af23dfbbe'/>
<id>urn:sha1:3846c15820a1841225d0245afda4875af23dfbbe</id>
<content type='text'>
So, I'm told this problem exists in the world:

 &gt; Subject: Build error in -next due to 'efi: Add esrt support'
 &gt;
 &gt; Building ia64:defconfig ... failed
 &gt; --------------
 &gt; Error log:
 &gt;
 &gt; drivers/firmware/efi/esrt.c:28:31: fatal error: asm/early_ioremap.h: No such file or directory
 &gt;

I'm not really sure how it's okay that we have things in asm-generic on
some platforms but not others - is having it the same everywhere not the
whole point of asm-generic?

That said, ia64 doesn't have early_ioremap.h .  So instead, since it's
difficult to imagine new IA64 machines with UEFI 2.5, just don't build
this code there.

To me this looks like a workaround - doing something like:

generic-y += early_ioremap.h

in arch/ia64/include/asm/Kbuild would appear to be more correct, but
ia64 has its own early_memremap() decl in arch/ia64/include/asm/io.h ,
and it's a macro.  So adding the above /and/ requiring that asm/io.h be
included /after/ asm/early_ioremap.h in all cases would fix it, but
that's pretty ugly as well.  Since I'm not going to spend the rest of my
life rectifying ia64 headers vs "generic" headers that aren't generic,
it's much simpler to just not build there.

Note that I've only actually tried to build this patch on x86_64, but
esrt.o still gets built there, and that would seem to demonstrate that
the conditional building is working correctly at all the places the code
built before.  I no longer have any ia64 machines handy to test that the
exclusion actually works there.

Signed-off-by: Peter Jones &lt;pjones@redhat.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Reviewed-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
(Compile-)Tested-by: Guenter Roeck &lt;linux@roeck-us.net&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>efi: Add esrt support</title>
<updated>2015-04-30T21:15:04Z</updated>
<author>
<name>Peter Jones</name>
</author>
<published>2015-04-28T22:44:31Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0bb549052d33f8992544764a6cf1299d06ba7e2f'/>
<id>urn:sha1:0bb549052d33f8992544764a6cf1299d06ba7e2f</id>
<content type='text'>
Add sysfs files for the EFI System Resource Table (ESRT) under
/sys/firmware/efi/esrt and for each EFI System Resource Entry under
entries/ as a subdir.

The EFI System Resource Table (ESRT) provides a read-only catalog of
system components for which the system accepts firmware upgrades via
UEFI's "Capsule Update" feature.  This module allows userland utilities
to evaluate what firmware updates can be applied to this system, and
potentially arrange for those updates to occur.

The ESRT is described as part of the UEFI specification, in version 2.5
which should be available from http://uefi.org/specifications in early
2015.  If you're a member of the UEFI Forum, information about its
addition to the standard is available as UEFI Mantis 1090.

For some hardware platforms, additional restrictions may be found at
http://msdn.microsoft.com/en-us/library/windows/hardware/jj128256.aspx ,
and additional documentation may be found at
http://download.microsoft.com/download/5/F/5/5F5D16CD-2530-4289-8019-94C6A20BED3C/windows-uefi-firmware-update-platform.docx
.

Signed-off-by: Peter Jones &lt;pjones@redhat.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>efi/x86: Move x86 back to libstub</title>
<updated>2014-11-11T22:23:11Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2014-11-05T16:00:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=243b6754cd17112bbf0724ed3c13446b48cf6a28'/>
<id>urn:sha1:243b6754cd17112bbf0724ed3c13446b48cf6a28</id>
<content type='text'>
This reverts commit 84be880560fb, which itself reverted my original
attempt to move x86 from #include'ing .c files from across the tree
to using the EFI stub built as a static library.

The issue that affected the original approach was that splitting
the implementation into several .o files resulted in the variable
'efi_early' becoming a global with external linkage, which under
-fPIC implies that references to it must go through the GOT. However,
dealing with this additional GOT entry turned out to be troublesome
on some EFI implementations. (GCC's visibility=hidden attribute is
supposed to lift this requirement, but it turned out not to work on
the 32-bit build.)

Instead, use a pure getter function to get a reference to efi_early.
This approach results in no additional GOT entries being generated,
so there is no need for any changes in the early GOT handling.

Tested-by: Maarten Lankhorst &lt;maarten.lankhorst@canonical.com&gt;
Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>Revert "efi/x86: efistub: Move shared dependencies to &lt;asm/efi.h&gt;"</title>
<updated>2014-09-23T21:01:55Z</updated>
<author>
<name>Matt Fleming</name>
</author>
<published>2014-09-23T09:37:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=84be880560fbbd0b6a6ef973bee85dbd4ca52198'/>
<id>urn:sha1:84be880560fbbd0b6a6ef973bee85dbd4ca52198</id>
<content type='text'>
This reverts commit f23cf8bd5c1f ("efi/x86: efistub: Move shared
dependencies to &lt;asm/efi.h&gt;") as well as the x86 parts of commit
f4f75ad5741f ("efi: efistub: Convert into static library").

The road leading to these two reverts is long and winding.

The above two commits were merged during the v3.17 merge window and
turned the common EFI boot stub code into a static library. This
necessitated making some symbols global in the x86 boot stub which
introduced new entries into the early boot GOT.

The problem was that we weren't fixing up the newly created GOT entries
before invoking the EFI boot stub, which sometimes resulted in hangs or
resets. This failure was reported by Maarten on his Macbook pro.

The proposed fix was commit 9cb0e394234d ("x86/efi: Fixup GOT in all
boot code paths"). However, that caused issues for Linus when booting
his Sony Vaio Pro 11. It was subsequently reverted in commit
f3670394c29f.

So that leaves us back with Maarten's Macbook pro not booting.

At this stage in the release cycle the least risky option is to revert
the x86 EFI boot stub to the pre-merge window code structure where we
explicitly #include efi-stub-helper.c instead of linking with the static
library. The arm64 code remains unaffected.

We can take another swing at the x86 parts for v3.18.

Conflicts:
	arch/x86/include/asm/efi.h

Tested-by: Josh Boyer &lt;jwboyer@fedoraproject.org&gt;
Tested-by: Maarten Lankhorst &lt;maarten.lankhorst@canonical.com&gt;
Tested-by: Leif Lindholm &lt;leif.lindholm@linaro.org&gt; [arm64]
Tested-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: H. Peter Anvin &lt;hpa@zytor.com&gt;
Cc: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;,
Cc: Ingo Molnar &lt;mingo@kernel.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>efi/reboot: Add generic wrapper around EfiResetSystem()</title>
<updated>2014-07-18T20:23:51Z</updated>
<author>
<name>Matt Fleming</name>
</author>
<published>2014-06-13T11:22:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8562c99cdd30217dea3609e268572f8764f401a5'/>
<id>urn:sha1:8562c99cdd30217dea3609e268572f8764f401a5</id>
<content type='text'>
Implement efi_reboot(), which is really just a wrapper around the
EfiResetSystem() EFI runtime service, but it does at least allow us to
funnel all callers through a single location.

It also simplifies the callsites since users no longer need to check to
see whether EFI_RUNTIME_SERVICES are enabled.

Cc: Tony Luck &lt;tony.luck@intel.com&gt;
Tested-by: Mark Salter &lt;msalter@redhat.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>efi: efistub: Convert into static library</title>
<updated>2014-07-18T20:22:19Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2014-07-02T12:54:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f4f75ad5741fe0331bbe1f5c42b906cda299f26b'/>
<id>urn:sha1:f4f75ad5741fe0331bbe1f5c42b906cda299f26b</id>
<content type='text'>
This patch changes both x86 and arm64 efistub implementations
from #including shared .c files under drivers/firmware/efi to
building shared code as a static library.

The x86 code uses a stub built into the boot executable which
uncompresses the kernel at boot time. In this case, the library is
linked into the decompressor.

In the arm64 case, the stub is part of the kernel proper so the library
is linked into the kernel proper as well.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>efi/x86: Move UEFI Runtime Services wrappers to generic code</title>
<updated>2014-07-07T19:12:53Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2014-06-26T10:09:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=022ee6c558fc933679e151f00f84332974147fa2'/>
<id>urn:sha1:022ee6c558fc933679e151f00f84332974147fa2</id>
<content type='text'>
In order for other archs (such as arm64) to be able to reuse the virtual
mode function call wrappers, move them to drivers/firmware/efi/runtime-wrappers.c.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'v3.13-rc7' into x86/efi-kexec to resolve conflicts</title>
<updated>2014-01-05T11:34:29Z</updated>
<author>
<name>Ingo Molnar</name>
</author>
<published>2014-01-05T11:34:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ef0b8b9a521c65201bfca9747ee1bf374296133c'/>
<id>urn:sha1:ef0b8b9a521c65201bfca9747ee1bf374296133c</id>
<content type='text'>
Conflicts:
	arch/x86/platform/efi/efi.c
	drivers/firmware/efi/Kconfig

Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi: Export EFI runtime memory mapping to sysfs</title>
<updated>2013-12-21T15:29:36Z</updated>
<author>
<name>Dave Young</name>
</author>
<published>2013-12-20T10:02:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=926172d46038d7610b6b8d84e40db727cefb482d'/>
<id>urn:sha1:926172d46038d7610b6b8d84e40db727cefb482d</id>
<content type='text'>
kexec kernel will need exactly same mapping for EFI runtime memory
ranges. Thus here export the runtime ranges mapping to sysfs,
kexec-tools will assemble them and pass to 2nd kernel via setup_data.

Introducing a new directory /sys/firmware/efi/runtime-map just like
/sys/firmware/memmap. Containing below attribute in each file of that
directory:

attribute  num_pages  phys_addr  type  virt_addr

Signed-off-by: Dave Young &lt;dyoung@redhat.com&gt;
Tested-by: Toshi Kani &lt;toshi.kani@hp.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>x86/efi: Don't select EFI from certain special ACPI drivers</title>
<updated>2013-12-19T20:32:46Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2013-12-16T14:39:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fce7d3bfc0ae70ca2a57868f2a9708b13185fd1f'/>
<id>urn:sha1:fce7d3bfc0ae70ca2a57868f2a9708b13185fd1f</id>
<content type='text'>
Commit 7ea6c6c1 ("Move cper.c from drivers/acpi/apei to
drivers/firmware/efi") results in CONFIG_EFI being enabled even
when the user doesn't want this. Since ACPI APEI used to build
fine without UEFI (and as far as I know also has no functional
depency on it), at least in that case using a reverse dependency
is wrong (and a straight one isn't needed).

Whether the same is true for ACPI_EXTLOG I don't know - if there
is a functional dependency, it should depend on EFI rather than
selecting it. It certainly has (currently) no build dependency.

Adjust Kconfig and build logic so that the bad dependency gets
avoided.

Signed-off-by: Jan Beulich &lt;jbeulich@suse.com&gt;
Acked-by: Tony Luck &lt;tony.luck@intel.com&gt;
Cc: Matt Fleming &lt;matt.fleming@intel.com&gt;
Link: http://lkml.kernel.org/r/52AF1EBC020000780010DBF9@nat28.tlf.novell.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
</feed>
