<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/firmware/efi/Kconfig, branch linux-6.3.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.3.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-6.3.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2022-12-01T15:08:18Z</updated>
<entry>
<title>efi: libstub: Always enable initrd command line loader and bump version</title>
<updated>2022-12-01T15:08:18Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-11-29T17:23:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e346bebbd36b1576a3335331fed61bb48c6d8823'/>
<id>urn:sha1:e346bebbd36b1576a3335331fed61bb48c6d8823</id>
<content type='text'>
In preparation for setting a cross-architecture baseline for EFI boot
support, remove the Kconfig option that permits the command line initrd
loader to be disabled. Also, bump the minor version so that any image
built with the new version can be identified as supporting this.

Acked-by: Leif Lindholm &lt;quic_llindhol@quicinc.com&gt;
Reviewed-by: Daniel Kiper &lt;daniel.kiper@oracle.com&gt;
Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi: x86: Move EFI runtime map sysfs code to arch/x86</title>
<updated>2022-11-18T08:14:09Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-11-07T08:17:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1fff234de2b6047ee311c6bf88f31ad5008f2889'/>
<id>urn:sha1:1fff234de2b6047ee311c6bf88f31ad5008f2889</id>
<content type='text'>
The EFI runtime map code is only wired up on x86, which is the only
architecture that has a need for it in its implementation of kexec.

So let's move this code under arch/x86 and drop all references to it
from generic code. To ensure that the efi_runtime_map_init() is invoked
at the appropriate time use a 'sync' subsys_initcall() that will be
called right after the EFI initcall made from generic code where the
original invocation of efi_runtime_map_init() resided.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
Reviewed-by: Dave Young &lt;dyoung@redhat.com&gt;
</content>
</entry>
<entry>
<title>efi: runtime-maps: Clarify purpose and enable by default for kexec</title>
<updated>2022-11-18T08:14:09Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-11-07T07:42:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=8dfac4d8ad27c168c6e778adbebaac85b92606d8'/>
<id>urn:sha1:8dfac4d8ad27c168c6e778adbebaac85b92606d8</id>
<content type='text'>
The current Kconfig logic for CONFIG_EFI_RUNTIME_MAPS does not convey
that without it, a kexec kernel is not able to boot in EFI mode at all.
So clarify this, and make the option only configurable via the menu
system if CONFIG_EXPERT is set.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
Reviewed-by: Dave Young &lt;dyoung@redhat.com&gt;
</content>
</entry>
<entry>
<title>efi: memmap: Move EFI fake memmap support into x86 arch tree</title>
<updated>2022-11-18T08:14:09Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-10-01T16:38:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4059ba656ce5c13c8ca345955712152ae41420c8'/>
<id>urn:sha1:4059ba656ce5c13c8ca345955712152ae41420c8</id>
<content type='text'>
The EFI fake memmap support is specific to x86, which manipulates the
EFI memory map in various different ways after receiving it from the EFI
stub. On other architectures, we have managed to push back on this, and
the EFI memory map is kept pristine.

So let's move the fake memmap code into the x86 arch tree, where it
arguably belongs.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi: libstub: Undeprecate the command line initrd loader</title>
<updated>2022-11-18T08:14:08Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-09-26T21:23:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75e1a2460d79566bf1e43e5a3a7a9039510a82e0'/>
<id>urn:sha1:75e1a2460d79566bf1e43e5a3a7a9039510a82e0</id>
<content type='text'>
The initrd= command line loader can be useful for development, but it
was limited to loading files from the same file system as the loaded
kernel (and it didn't work on x86 mixed mode).

As both issues have been fixed, and the initrd= can now be used with
files residing on any simple file system exposed by the EFI firmware,
let's permit it to be enabled on RISC-V and LoongArch, which did not
support it up to this point.

Note that LoadFile2 remains the preferred option, as it is much simpler
to use and implement, but generic loaders (including the UEFI shell) may
not implement this so there, initrd= can now be used as well (if enabled
in the build)

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi: libstub: Remove zboot signing from build options</title>
<updated>2022-10-21T09:09:40Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-10-17T10:48:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f57fb375a203e28bf7c08ca01d5ee72028b391d9'/>
<id>urn:sha1:f57fb375a203e28bf7c08ca01d5ee72028b391d9</id>
<content type='text'>
The zboot decompressor series introduced a feature to sign the PE/COFF
kernel image for secure boot as part of the kernel build. This was
necessary because there are actually two images that need to be signed:
the kernel with the EFI stub attached, and the decompressor application.

This is a bit of a burden, because it means that the images must be
signed on the the same system that performs the build, and this is not
realistic for distros.

During the next cycle, we will introduce changes to the zboot code so
that the inner image no longer needs to be signed. This means that the
outer PE/COFF image can be handled as usual, and be signed later in the
release process.

Let's remove the associated Kconfig options now so that they don't end
up in a LTS release while already being deprecated.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi/libstub: implement generic EFI zboot</title>
<updated>2022-09-20T07:50:30Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-05-01T23:08:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a050910972bb25152b42ad2e544652117c5ad915'/>
<id>urn:sha1:a050910972bb25152b42ad2e544652117c5ad915</id>
<content type='text'>
Implement a minimal EFI app that decompresses the real kernel image and
launches it using the firmware's LoadImage and StartImage boot services.
This removes the need for any arch-specific hacks.

Note that on systems that have UEFI secure boot policies enabled,
LoadImage/StartImage require images to be signed, or their hashes known
a priori, in order to be permitted to boot.

There are various possible strategies to work around this requirement,
but they all rely either on overriding internal PI/DXE protocols (which
are not part of the EFI spec) or omitting the firmware provided
LoadImage() and StartImage() boot services, which is also undesirable,
given that they encapsulate platform specific policies related to secure
boot and measured boot, but also related to memory permissions (whether
or not and which types of heap allocations have both write and execute
permissions.)

The only generic and truly portable way around this is to simply sign
both the inner and the outer image with the same key/cert pair, so this
is what is implemented here.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi/loongarch: Add efistub booting support</title>
<updated>2022-09-06T09:19:34Z</updated>
<author>
<name>Huacai Chen</name>
</author>
<published>2022-08-19T10:20:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ead384d956345681e1ddf97890d5e15ded015f07'/>
<id>urn:sha1:ead384d956345681e1ddf97890d5e15ded015f07</id>
<content type='text'>
This patch adds efistub booting support, which is the standard UEFI boot
protocol for LoongArch to use.

We use generic efistub, which means we can pass boot information (i.e.,
system table, memory map, kernel command line, initrd) via a light FDT
and drop a lot of non-standard code.

We use a flat mapping to map the efi runtime in the kernel's address
space. In efi, VA = PA; in kernel, VA = PA + PAGE_OFFSET. As a result,
flat mapping is not identity mapping, SetVirtualAddressMap() is still
needed for the efi runtime.

Tested-by: Xi Ruoyao &lt;xry111@xry111.site&gt;
Signed-off-by: Huacai Chen &lt;chenhuacai@loongson.cn&gt;
[ardb: change fpic to fpie as suggested by Xi Ruoyao]
Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi: vars: Remove deprecated 'efivars' sysfs interface</title>
<updated>2022-06-24T18:40:19Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-06-20T11:34:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0f5b2c69a4cbe4166ca24b76d5ada98ed2867741'/>
<id>urn:sha1:0f5b2c69a4cbe4166ca24b76d5ada98ed2867741</id>
<content type='text'>
Commit 5d9db883761a ("efi: Add support for a UEFI variable filesystem")
dated Oct 5, 2012, introduced a new efivarfs pseudo-filesystem to
replace the efivars sysfs interface that was used up to that point to
expose EFI variables to user space.

The main problem with the sysfs interface was that it only supported up
to 1024 bytes of payload per file, whereas the underlying variables
themselves are only bounded by a platform specific per-variable and
global limit that is typically much higher than 1024 bytes.

The deprecated sysfs interface is only enabled on x86 and Itanium, other
EFI enabled architectures only support the efivarfs pseudo-filesystem.

So let's finally rip off the band aid, and drop the old interface
entirely. This will make it easier to refactor and clean up the
underlying infrastructure that is shared between efivars, efivarfs and
efi-pstore, and is long overdue for a makeover.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
<entry>
<title>efi: pstore: Omit efivars caching EFI varstore access layer</title>
<updated>2022-06-24T18:40:19Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2022-06-20T11:21:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=859748255b43460685e93a1f8a40b8cdc3be02f2'/>
<id>urn:sha1:859748255b43460685e93a1f8a40b8cdc3be02f2</id>
<content type='text'>
Avoid the efivars layer and simply call the newly introduced EFI
varstore helpers instead. This simplifies the code substantially, and
also allows us to remove some hacks in the shared efivars layer that
were added for efi-pstore specifically.

In order to be able to delete the EFI variable associated with a record,
store the UTF-16 name of the variable in the pstore record's priv field.
That way, we don't have to make guesses regarding which variable the
record may have been loaded from.

Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;
</content>
</entry>
</feed>
