<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/kernel/efi.c, branch linux-3.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2015-01-16T14:59:55Z</updated>
<entry>
<title>arm64/efi: add missing call to early_ioremap_reset()</title>
<updated>2015-01-16T14:59:55Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2015-01-08T09:54:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1a7227fe0013b6ff6b3b9d46db3faea30cbe48e5'/>
<id>urn:sha1:1a7227fe0013b6ff6b3b9d46db3faea30cbe48e5</id>
<content type='text'>
commit 0e63ea48b4d8035dd0e91a3fa6fb79458b47adfb upstream.

The early ioremap support introduced by patch bf4b558eba92
("arm64: add early_ioremap support") failed to add a call to
early_ioremap_reset() at an appropriate time. Without this call,
invocations of early_ioremap etc. that are done too late will go
unnoticed and may cause corruption.

This is exactly what happened when the first user of this feature
was added in patch f84d02755f5a ("arm64: add EFI runtime services").
The early mapping of the EFI memory map is unmapped during an early
initcall, at which time the early ioremap support is long gone.

Fix by adding the missing call to early_ioremap_reset() to
setup_arch(), and move the offending early_memunmap() to right after
the point where the early mapping of the EFI memory map is last used.

Fixes: f84d02755f5a ("arm64: add EFI runtime services")
Signed-off-by: Leif Lindholm &lt;leif.lindholm@linaro.org&gt;
Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>Merge branch 'next' into efi-next-merge</title>
<updated>2014-10-03T21:15:56Z</updated>
<author>
<name>Matt Fleming</name>
</author>
<published>2014-10-03T21:15:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75b128573b275d5a5a7210b98c4b8cb3b39c12e7'/>
<id>urn:sha1:75b128573b275d5a5a7210b98c4b8cb3b39c12e7</id>
<content type='text'>
Conflicts:
	arch/x86/boot/compressed/eboot.c
</content>
</entry>
<entry>
<title>arm64: efi: Format EFI memory type &amp; attrs with efi_md_typeattr_format()</title>
<updated>2014-10-03T17:41:01Z</updated>
<author>
<name>Laszlo Ersek</name>
</author>
<published>2014-09-03T11:32:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=65ba758f3e7d99c49b5710f6010bc6ba1e50d16c'/>
<id>urn:sha1:65ba758f3e7d99c49b5710f6010bc6ba1e50d16c</id>
<content type='text'>
An example log excerpt demonstrating the change:

Before the patch:

&gt; Processing EFI memory map:
&gt;   0x000040000000-0x000040000fff [Loader Data]
&gt;   0x000040001000-0x00004007ffff [Conventional Memory]
&gt;   0x000040080000-0x00004072afff [Loader Data]
&gt;   0x00004072b000-0x00005fdfffff [Conventional Memory]
&gt;   0x00005fe00000-0x00005fe0ffff [Loader Data]
&gt;   0x00005fe10000-0x0000964e8fff [Conventional Memory]
&gt;   0x0000964e9000-0x0000964e9fff [Loader Data]
&gt;   0x0000964ea000-0x000096c52fff [Loader Code]
&gt;   0x000096c53000-0x00009709dfff [Boot Code]*
&gt;   0x00009709e000-0x0000970b3fff [Runtime Code]*
&gt;   0x0000970b4000-0x0000970f4fff [Runtime Data]*
&gt;   0x0000970f5000-0x000097117fff [Runtime Code]*
&gt;   0x000097118000-0x000097199fff [Runtime Data]*
&gt;   0x00009719a000-0x0000971dffff [Runtime Code]*
&gt;   0x0000971e0000-0x0000997f8fff [Conventional Memory]
&gt;   0x0000997f9000-0x0000998f1fff [Boot Data]*
&gt;   0x0000998f2000-0x0000999eafff [Conventional Memory]
&gt;   0x0000999eb000-0x00009af09fff [Boot Data]*
&gt;   0x00009af0a000-0x00009af21fff [Conventional Memory]
&gt;   0x00009af22000-0x00009af46fff [Boot Data]*
&gt;   0x00009af47000-0x00009af5bfff [Conventional Memory]
&gt;   0x00009af5c000-0x00009afe1fff [Boot Data]*
&gt;   0x00009afe2000-0x00009afe2fff [Conventional Memory]
&gt;   0x00009afe3000-0x00009c01ffff [Boot Data]*
&gt;   0x00009c020000-0x00009efbffff [Conventional Memory]
&gt;   0x00009efc0000-0x00009f14efff [Boot Code]*
&gt;   0x00009f14f000-0x00009f162fff [Runtime Code]*
&gt;   0x00009f163000-0x00009f194fff [Runtime Data]*
&gt;   0x00009f195000-0x00009f197fff [Boot Data]*
&gt;   0x00009f198000-0x00009f198fff [Runtime Data]*
&gt;   0x00009f199000-0x00009f1acfff [Conventional Memory]
&gt;   0x00009f1ad000-0x00009f1affff [Boot Data]*
&gt;   0x00009f1b0000-0x00009f1b0fff [Runtime Data]*
&gt;   0x00009f1b1000-0x00009fffffff [Boot Data]*
&gt;   0x000004000000-0x000007ffffff [Memory Mapped I/O]
&gt;   0x000009010000-0x000009010fff [Memory Mapped I/O]

After the patch:

&gt; Processing EFI memory map:
&gt;   0x000040000000-0x000040000fff [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x000040001000-0x00004007ffff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x000040080000-0x00004072afff [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00004072b000-0x00005fdfffff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00005fe00000-0x00005fe0ffff [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00005fe10000-0x0000964e8fff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x0000964e9000-0x0000964e9fff [Loader Data        |   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x0000964ea000-0x000096c52fff [Loader Code        |   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x000096c53000-0x00009709dfff [Boot Code          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009709e000-0x0000970b3fff [Runtime Code       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x0000970b4000-0x0000970f4fff [Runtime Data       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x0000970f5000-0x000097117fff [Runtime Code       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x000097118000-0x000097199fff [Runtime Data       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009719a000-0x0000971dffff [Runtime Code       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x0000971e0000-0x0000997f8fff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x0000997f9000-0x0000998f1fff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x0000998f2000-0x0000999eafff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x0000999eb000-0x00009af09fff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009af0a000-0x00009af21fff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00009af22000-0x00009af46fff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009af47000-0x00009af5bfff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00009af5c000-0x00009afe1fff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009afe2000-0x00009afe2fff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00009afe3000-0x00009c01ffff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009c020000-0x00009efbffff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00009efc0000-0x00009f14efff [Boot Code          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009f14f000-0x00009f162fff [Runtime Code       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009f163000-0x00009f194fff [Runtime Data       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009f195000-0x00009f197fff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009f198000-0x00009f198fff [Runtime Data       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009f199000-0x00009f1acfff [Conventional Memory|   |  |  |  |   |WB|WT|WC|UC]
&gt;   0x00009f1ad000-0x00009f1affff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009f1b0000-0x00009f1b0fff [Runtime Data       |RUN|  |  |  |   |WB|WT|WC|UC]*
&gt;   0x00009f1b1000-0x00009fffffff [Boot Data          |   |  |  |  |   |WB|WT|WC|UC]*
&gt;   0x000004000000-0x000007ffffff [Memory Mapped I/O  |RUN|  |  |  |   |  |  |  |UC]
&gt;   0x000009010000-0x000009010fff [Memory Mapped I/O  |RUN|  |  |  |   |  |  |  |UC]

The attribute bitmap is now displayed, in decoded form.

Signed-off-by: Laszlo Ersek &lt;lersek@redhat.com&gt;
Tested-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>arm64/efi: Do not enter virtual mode if booting with efi=noruntime or noefi</title>
<updated>2014-10-03T17:40:59Z</updated>
<author>
<name>Dave Young</name>
</author>
<published>2014-08-18T01:30:07Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6632210f50530ea53dd21f786f2854609d928689'/>
<id>urn:sha1:6632210f50530ea53dd21f786f2854609d928689</id>
<content type='text'>
In case efi runtime disabled via noefi kernel cmdline
arm64_enter_virtual_mode should error out.

At the same time move early_memunmap(memmap.map, mapsize) to the
beginning of the function or it will leak early mem.

Signed-off-by: Dave Young &lt;dyoung@redhat.com&gt;
Reviewed-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>arm64/efi: uefi_init error handling fix</title>
<updated>2014-10-03T17:40:59Z</updated>
<author>
<name>Dave Young</name>
</author>
<published>2014-08-14T09:15:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=88f8abd594082b9c08789e8527e4e38116a963ec'/>
<id>urn:sha1:88f8abd594082b9c08789e8527e4e38116a963ec</id>
<content type='text'>
There's one early memmap leak in uefi_init error path, fix it and
slightly tune the error handling code.

Signed-off-by: Dave Young &lt;dyoung@redhat.com&gt;
Acked-by: Mark Salter &lt;msalter@redhat.com&gt;
Reported-by: Will Deacon &lt;will.deacon@arm.com&gt;
Acked-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip</title>
<updated>2014-08-24T23:17:41Z</updated>
<author>
<name>Linus Torvalds</name>
</author>
<published>2014-08-24T23:17:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7be141d0554921751db103b54e9f794956aa4f65'/>
<id>urn:sha1:7be141d0554921751db103b54e9f794956aa4f65</id>
<content type='text'>
Pull x86 fixes from Ingo Molnar:
 "A couple of EFI fixes, plus misc fixes all around the map"

* 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  efi/arm64: Store Runtime Services revision
  firmware: Do not use WARN_ON(!spin_is_locked())
  x86_32, entry: Clean up sysenter_badsys declaration
  x86/doc: Fix the 'tlb_single_page_flush_ceiling' sysconfig path
  x86/mm: Fix sparse 'tlb_single_page_flush_ceiling' warning and make the variable read-mostly
  x86/mm: Fix RCU splat from new TLB tracepoints
</content>
</entry>
<entry>
<title>efi/arm64: Store Runtime Services revision</title>
<updated>2014-08-22T07:45:41Z</updated>
<author>
<name>Semen Protsenko</name>
</author>
<published>2014-08-15T13:22:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6a7519e81321343165f89abb8b616df186d3e57a'/>
<id>urn:sha1:6a7519e81321343165f89abb8b616df186d3e57a</id>
<content type='text'>
"efi" global data structure contains "runtime_version" field which must
be assigned in order to use it later in Runtime Services virtual calls
(virt_efi_* functions).

Before this patch "runtime_version" was unassigned (0), so each
Runtime Service virtual call that checks revision would fail.

Signed-off-by: Semen Protsenko &lt;semen.protsenko@linaro.org&gt;
Acked-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Cc: &lt;stable@vger.kernel.org&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>arm64: ignore DT memreserve entries when booting in UEFI mode</title>
<updated>2014-08-19T19:22:03Z</updated>
<author>
<name>Leif Lindholm</name>
</author>
<published>2014-07-28T18:03:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86c8b27a01cf6c16fc159ade223cb2ccc70dc4b5'/>
<id>urn:sha1:86c8b27a01cf6c16fc159ade223cb2ccc70dc4b5</id>
<content type='text'>
UEFI provides its own method for marking regions to reserve, via the
memory map which is also used to initialise memblock. So when using the
UEFI memory map, ignore any memreserve entries present in the DT.

Reported-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Leif Lindholm &lt;leif.lindholm@linaro.org&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>efi/arm64: Handle missing virtual mapping for UEFI System Table</title>
<updated>2014-07-18T20:24:04Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2014-07-04T15:25:09Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=99a5603e2a1f146ac0c6414d8a3669aa749ccff8'/>
<id>urn:sha1:99a5603e2a1f146ac0c6414d8a3669aa749ccff8</id>
<content type='text'>
If we cannot resolve the virtual address of the UEFI System Table, its
physical offset must be missing from the virtual memory map, and there
is really no point in proceeding with installing the virtual memory map
and the runtime services dispatch table. So back out gracefully.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Mark Salter &lt;msalter@redhat.com&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
<entry>
<title>efi/arm64: Preserve FP/SIMD registers on UEFI runtime services calls</title>
<updated>2014-07-07T19:29:42Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2014-07-04T17:41:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e15dd4949a937d8e8482f37f8fe493357417f203'/>
<id>urn:sha1:e15dd4949a937d8e8482f37f8fe493357417f203</id>
<content type='text'>
According to the UEFI spec section 2.3.6.4, the use of FP/SIMD
instructions is allowed, and should adhere to the AAPCS64 calling
convention, which states that 'only the bottom 64 bits of each value
stored in registers v8-v15 need to be preserved' (section 5.1.2).

This applies equally to UEFI Runtime Services called by the kernel, so
make sure the FP/SIMD register file is preserved in this case. We do this
by enabling the wrappers for UEFI Runtime Services (CONFIG_EFI_RUNTIME_WRAPPERS)
and inserting calls to kernel_neon_begin()and kernel_neon_end() into
these wrappers.

Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Matt Fleming &lt;matt.fleming@intel.com&gt;
</content>
</entry>
</feed>
