<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/kernel/head.S, 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>2019-03-23T07:19:00Z</updated>
<entry>
<title>arm64: Relax GIC version check during early boot</title>
<updated>2019-03-23T07:19:00Z</updated>
<author>
<name>Vladimir Murzin</name>
</author>
<published>2019-02-20T11:43:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7e7a77e27dc8c9455cdac3f8bc2c843c7d1d0e8e'/>
<id>urn:sha1:7e7a77e27dc8c9455cdac3f8bc2c843c7d1d0e8e</id>
<content type='text'>
[ Upstream commit 74698f6971f25d045301139413578865fc2bd8f9 ]

Updates to the GIC architecture allow ID_AA64PFR0_EL1.GIC to have
values other than 0 or 1. At the moment, Linux is quite strict in the
way it handles this field at early boot stage (cpufeature is fine) and
will refuse to use the system register CPU interface if it doesn't
find the value 1.

Fixes: 021f653791ad17e03f98aaa7fb933816ae16f161 ("irqchip: gic-v3: Initial support for GICv3")
Reported-by: Chase Conklin &lt;Chase.Conklin@arm.com&gt;
Reviewed-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Vladimir Murzin &lt;vladimir.murzin@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>arm64: Make sure SPsel is always set</title>
<updated>2017-10-05T07:35:52Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2017-09-26T14:57:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6528968794bc6b4091a7603ae863472c1ef7c393'/>
<id>urn:sha1:6528968794bc6b4091a7603ae863472c1ef7c393</id>
<content type='text'>
commit 5371513fb338fb9989c569dc071326d369d6ade8 upstream.

When the kernel is entered at EL2 on an ARMv8.0 system, we construct
the EL1 pstate and make sure this uses the the EL1 stack pointer
(we perform an exception return to EL1h).

But if the kernel is either entered at EL1 or stays at EL2 (because
we're on a VHE-capable system), we fail to set SPsel, and use whatever
stack selection the higher exception level has choosen for us.

Let's not take any chance, and make sure that SPsel is set to one
before we decide the mode we're going to run in.

Acked-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>arm64: head.S: initialise mdcr_el2 in el2_setup</title>
<updated>2015-10-07T14:05:15Z</updated>
<author>
<name>Will Deacon</name>
</author>
<published>2015-09-02T17:49:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=dbb4b0e5a9ad6ec3221bcea438e585d6410df22d'/>
<id>urn:sha1:dbb4b0e5a9ad6ec3221bcea438e585d6410df22d</id>
<content type='text'>
[ Upstream commit d10bcd473301888f957ec4b6b12aa3621be78d59 ]

When entering the kernel at EL2, we fail to initialise the MDCR_EL2
register which controls debug access and PMU capabilities at EL1.

This patch ensures that the register is initialised so that all traps
are disabled and all the PMU counters are available to the host. When a
guest is scheduled, KVM takes care to configure trapping appropriately.

Cc: &lt;stable@vger.kernel.org&gt;
Acked-by: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
</content>
</entry>
<entry>
<title>arm64/efi: efistub: cover entire static mem footprint in PE/COFF .text</title>
<updated>2014-09-08T13:39:18Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2014-07-30T10:59:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c16173fa568582113145daee70fc317b10bc51e0'/>
<id>urn:sha1:c16173fa568582113145daee70fc317b10bc51e0</id>
<content type='text'>
The static memory footprint of a kernel Image at boot is larger than the
Image file itself. Things like .bss data and initial page tables are allocated
statically but populated dynamically so their content is not contained in the
Image file.

However, if EFI (or GRUB) has loaded the Image at precisely the desired offset
of base of DRAM + TEXT_OFFSET, the Image will be booted in place, and we have
to make sure that the allocation done by the PE/COFF loader is large enough.

Fix this by growing the PE/COFF .text section to cover the entire static
memory footprint. The part of the section that is not covered by the payload
will be zero initialised by the PE/COFF loader.

Acked-by: Mark Salter &lt;msalter@redhat.com&gt;
Acked-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Leif Lindholm &lt;leif.lindholm@linaro.org&gt;
Tested-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;
</content>
</entry>
<entry>
<title>arm64: Remove unused variable in head.S</title>
<updated>2014-08-26T18:24:00Z</updated>
<author>
<name>Geoff Levand</name>
</author>
<published>2014-08-22T19:49:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5843be2279d7a91ef48c20ac31715d1eb9607a84'/>
<id>urn:sha1:5843be2279d7a91ef48c20ac31715d1eb9607a84</id>
<content type='text'>
Remove an unused local variable from head.S.  It seems this was never
used even from the initial commit
9703d9d7f77ce129621f7d80a844822e2daa7008 (arm64: Kernel booting and
initialisation), and is a left over from a previous implementation
of __calc_phys_offset.

Signed-off-by: Geoff Levand &lt;geoff@infradead.org&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: align randomized TEXT_OFFSET on 4 kB boundary</title>
<updated>2014-08-19T18:26:09Z</updated>
<author>
<name>Ard Biesheuvel</name>
</author>
<published>2014-08-13T17:53:03Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4190312beb2acfb7bfb1bb971e24a759aa96b0e8'/>
<id>urn:sha1:4190312beb2acfb7bfb1bb971e24a759aa96b0e8</id>
<content type='text'>
When booting via UEFI, the kernel Image is loaded at a 4 kB boundary and
the embedded EFI stub is executed in place. The EFI stub relocates the
Image to reside TEXT_OFFSET bytes above a 2 MB boundary, and jumps into
the kernel proper.

In AArch64, PC relative symbol references are emitted using adrp/add or
adrp/ldr pairs, where the offset into a 4 kB page is resolved using a
separate :lo12: relocation. This implicitly assumes that the code will
always be executed at the same relative offset with respect to a 4 kB
boundary, or the references will point to the wrong address.

This means we should link the kernel at a 4 kB aligned base address in
order to remain compatible with the base address the UEFI loader uses
when doing the initial load of Image. So update the code that generates
TEXT_OFFSET to choose a multiple of 4 kB.

At the same time, update the code so it chooses from the interval [0..2MB)
as the author originally intended.

Reviewed-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>arm64: gicv3: Allow GICv3 compilation with older binutils</title>
<updated>2014-07-25T12:12:15Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2014-07-24T13:14:42Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72c5839515260dce966cd24f54436e6583288e6c'/>
<id>urn:sha1:72c5839515260dce966cd24f54436e6583288e6c</id>
<content type='text'>
GICv3 introduces new system registers accessible with the full msr/mrs
syntax (e.g. mrs x0, Sop0_op1_CRm_CRn_op2). However, only recent
binutils understand the new syntax. This patch introduces msr_s/mrs_s
assembly macros which generate the equivalent instructions above and
converts the existing GICv3 code (both drivers/irqchip/ and
arch/arm64/kernel/).

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Reported-by: Olof Johansson &lt;olof@lixom.net&gt;
Tested-by: Olof Johansson &lt;olof@lixom.net&gt;
Suggested-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Mark Rutland &lt;mark.rutland@arm.com&gt;
Acked-by: Jason Cooper &lt;jason@lakedaemon.net&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Cc: Marc Zyngier &lt;marc.zyngier@arm.com&gt;
</content>
</entry>
<entry>
<title>Merge tag 'deps-irqchip-gic-3.17' of git://git.infradead.org/users/jcooper/linux</title>
<updated>2014-07-25T12:03:22Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2014-07-25T12:03:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ecb3c2bbf233d0c8d6e48009afa52c45c0204857'/>
<id>urn:sha1:ecb3c2bbf233d0c8d6e48009afa52c45c0204857</id>
<content type='text'>
* tag 'deps-irqchip-gic-3.17' of git://git.infradead.org/users/jcooper/linux:
  irqchip: gic-v3: Initial support for GICv3
  irqchip: gic: Move some bits of GICv2 to a library-type file

Conflicts:
	arch/arm64/Kconfig
</content>
</entry>
<entry>
<title>arm64: Add support for 48-bit VA space with 64KB page configuration</title>
<updated>2014-07-23T14:28:15Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2014-07-21T14:54:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=383c2799113b00a5f12c820ff0fd3dfca9e5be89'/>
<id>urn:sha1:383c2799113b00a5f12c820ff0fd3dfca9e5be89</id>
<content type='text'>
This patch allows support for 3 levels of page tables with 64KB page
configuration allowing 48-bit VA space. The pgd is no longer a full
PAGE_SIZE (PTRS_PER_PGD is 64) and (swapper|idmap)_pg_dir are not fully
populated (pgd_alloc falls back to kzalloc).

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Tested-by: Jungseok Lee &lt;jungseoklee85@gmail.com&gt;
</content>
</entry>
<entry>
<title>arm64: Clean up the initial page table creation in head.S</title>
<updated>2014-07-23T14:28:01Z</updated>
<author>
<name>Catalin Marinas</name>
</author>
<published>2014-07-16T11:10:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b4a0d8b37797663b0e523c102dbb3e4b712a720c'/>
<id>urn:sha1:b4a0d8b37797663b0e523c102dbb3e4b712a720c</id>
<content type='text'>
This patch adds a create_table_entry macro which is used to populate pgd
and pud entries, also reducing the number of arguments for
create_pgd_entry.

Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;
Tested-by: Jungseok Lee &lt;jungseoklee85@gmail.com&gt;
</content>
</entry>
</feed>
