Commit b693d0b3 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Jonathan Corbet

docs: arm64: convert docs to ReST and rename to .rst

The documentation is in a format that is very close to ReST format.

The conversion is actually:
  - add blank lines in order to identify paragraphs;
  - fixing tables markups;
  - adding some lists markups;
  - marking literal blocks;
  - adjust some title markups.

At its new index.rst, let's add a :orphan: while this is not linked to
the main index.rst file, in order to avoid build warnings.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
parent 305a99eb
Booting AArch64 Linux =====================
===================== Booting AArch64 Linux
=====================
Author: Will Deacon <will.deacon@arm.com> Author: Will Deacon <will.deacon@arm.com>
Date : 07 September 2012 Date : 07 September 2012
This document is based on the ARM booting document by Russell King and This document is based on the ARM booting document by Russell King and
...@@ -12,7 +14,7 @@ The AArch64 exception model is made up of a number of exception levels ...@@ -12,7 +14,7 @@ The AArch64 exception model is made up of a number of exception levels
counterpart. EL2 is the hypervisor level and exists only in non-secure counterpart. EL2 is the hypervisor level and exists only in non-secure
mode. EL3 is the highest priority level and exists only in secure mode. mode. EL3 is the highest priority level and exists only in secure mode.
For the purposes of this document, we will use the term `boot loader' For the purposes of this document, we will use the term `boot loader`
simply to define all software that executes on the CPU(s) before control simply to define all software that executes on the CPU(s) before control
is passed to the Linux kernel. This may include secure monitor and is passed to the Linux kernel. This may include secure monitor and
hypervisor code, or it may just be a handful of instructions for hypervisor code, or it may just be a handful of instructions for
...@@ -70,7 +72,7 @@ Image target is available instead. ...@@ -70,7 +72,7 @@ Image target is available instead.
Requirement: MANDATORY Requirement: MANDATORY
The decompressed kernel image contains a 64-byte header as follows: The decompressed kernel image contains a 64-byte header as follows::
u32 code0; /* Executable code */ u32 code0; /* Executable code */
u32 code1; /* Executable code */ u32 code1; /* Executable code */
...@@ -103,19 +105,26 @@ Header notes: ...@@ -103,19 +105,26 @@ Header notes:
- The flags field (introduced in v3.17) is a little-endian 64-bit field - The flags field (introduced in v3.17) is a little-endian 64-bit field
composed as follows: composed as follows:
Bit 0: Kernel endianness. 1 if BE, 0 if LE.
Bit 1-2: Kernel Page size. ============= ===============================================================
0 - Unspecified. Bit 0 Kernel endianness. 1 if BE, 0 if LE.
1 - 4K Bit 1-2 Kernel Page size.
2 - 16K
3 - 64K * 0 - Unspecified.
Bit 3: Kernel physical placement * 1 - 4K
0 - 2MB aligned base should be as close as possible * 2 - 16K
* 3 - 64K
Bit 3 Kernel physical placement
0
2MB aligned base should be as close as possible
to the base of DRAM, since memory below it is not to the base of DRAM, since memory below it is not
accessible via the linear mapping accessible via the linear mapping
1 - 2MB aligned base may be anywhere in physical 1
2MB aligned base may be anywhere in physical
memory memory
Bits 4-63: Reserved. Bits 4-63 Reserved.
============= ===============================================================
- When image_size is zero, a bootloader should attempt to keep as much - When image_size is zero, a bootloader should attempt to keep as much
memory as possible free for use by the kernel immediately after the memory as possible free for use by the kernel immediately after the
...@@ -147,19 +156,22 @@ Before jumping into the kernel, the following conditions must be met: ...@@ -147,19 +156,22 @@ Before jumping into the kernel, the following conditions must be met:
corrupted by bogus network packets or disk data. This will save corrupted by bogus network packets or disk data. This will save
you many hours of debug. you many hours of debug.
- Primary CPU general-purpose register settings - Primary CPU general-purpose register settings:
x0 = physical address of device tree blob (dtb) in system RAM.
x1 = 0 (reserved for future use) - x0 = physical address of device tree blob (dtb) in system RAM.
x2 = 0 (reserved for future use) - x1 = 0 (reserved for future use)
x3 = 0 (reserved for future use) - x2 = 0 (reserved for future use)
- x3 = 0 (reserved for future use)
- CPU mode - CPU mode
All forms of interrupts must be masked in PSTATE.DAIF (Debug, SError, All forms of interrupts must be masked in PSTATE.DAIF (Debug, SError,
IRQ and FIQ). IRQ and FIQ).
The CPU must be in either EL2 (RECOMMENDED in order to have access to The CPU must be in either EL2 (RECOMMENDED in order to have access to
the virtualisation extensions) or non-secure EL1. the virtualisation extensions) or non-secure EL1.
- Caches, MMUs - Caches, MMUs
The MMU must be off. The MMU must be off.
Instruction cache may be on or off. Instruction cache may be on or off.
The address range corresponding to the loaded kernel image must be The address range corresponding to the loaded kernel image must be
...@@ -172,18 +184,21 @@ Before jumping into the kernel, the following conditions must be met: ...@@ -172,18 +184,21 @@ Before jumping into the kernel, the following conditions must be met:
operations (not recommended) must be configured and disabled. operations (not recommended) must be configured and disabled.
- Architected timers - Architected timers
CNTFRQ must be programmed with the timer frequency and CNTVOFF must CNTFRQ must be programmed with the timer frequency and CNTVOFF must
be programmed with a consistent value on all CPUs. If entering the be programmed with a consistent value on all CPUs. If entering the
kernel at EL1, CNTHCTL_EL2 must have EL1PCTEN (bit 0) set where kernel at EL1, CNTHCTL_EL2 must have EL1PCTEN (bit 0) set where
available. available.
- Coherency - Coherency
All CPUs to be booted by the kernel must be part of the same coherency All CPUs to be booted by the kernel must be part of the same coherency
domain on entry to the kernel. This may require IMPLEMENTATION DEFINED domain on entry to the kernel. This may require IMPLEMENTATION DEFINED
initialisation to enable the receiving of maintenance operations on initialisation to enable the receiving of maintenance operations on
each CPU. each CPU.
- System registers - System registers
All writable architected system registers at the exception level where All writable architected system registers at the exception level where
the kernel image will be entered must be initialised by software at a the kernel image will be entered must be initialised by software at a
higher exception level to prevent execution in an UNKNOWN state. higher exception level to prevent execution in an UNKNOWN state.
...@@ -195,28 +210,40 @@ Before jumping into the kernel, the following conditions must be met: ...@@ -195,28 +210,40 @@ Before jumping into the kernel, the following conditions must be met:
For systems with a GICv3 interrupt controller to be used in v3 mode: For systems with a GICv3 interrupt controller to be used in v3 mode:
- If EL3 is present: - If EL3 is present:
ICC_SRE_EL3.Enable (bit 3) must be initialiased to 0b1.
ICC_SRE_EL3.SRE (bit 0) must be initialised to 0b1. - ICC_SRE_EL3.Enable (bit 3) must be initialiased to 0b1.
- ICC_SRE_EL3.SRE (bit 0) must be initialised to 0b1.
- If the kernel is entered at EL1: - If the kernel is entered at EL1:
ICC.SRE_EL2.Enable (bit 3) must be initialised to 0b1
ICC_SRE_EL2.SRE (bit 0) must be initialised to 0b1. - ICC.SRE_EL2.Enable (bit 3) must be initialised to 0b1
- ICC_SRE_EL2.SRE (bit 0) must be initialised to 0b1.
- The DT or ACPI tables must describe a GICv3 interrupt controller. - The DT or ACPI tables must describe a GICv3 interrupt controller.
For systems with a GICv3 interrupt controller to be used in For systems with a GICv3 interrupt controller to be used in
compatibility (v2) mode: compatibility (v2) mode:
- If EL3 is present: - If EL3 is present:
ICC_SRE_EL3.SRE (bit 0) must be initialised to 0b0. ICC_SRE_EL3.SRE (bit 0) must be initialised to 0b0.
- If the kernel is entered at EL1: - If the kernel is entered at EL1:
ICC_SRE_EL2.SRE (bit 0) must be initialised to 0b0. ICC_SRE_EL2.SRE (bit 0) must be initialised to 0b0.
- The DT or ACPI tables must describe a GICv2 interrupt controller. - The DT or ACPI tables must describe a GICv2 interrupt controller.
For CPUs with pointer authentication functionality: For CPUs with pointer authentication functionality:
- If EL3 is present: - If EL3 is present:
SCR_EL3.APK (bit 16) must be initialised to 0b1
SCR_EL3.API (bit 17) must be initialised to 0b1 - SCR_EL3.APK (bit 16) must be initialised to 0b1
- SCR_EL3.API (bit 17) must be initialised to 0b1
- If the kernel is entered at EL1: - If the kernel is entered at EL1:
HCR_EL2.APK (bit 40) must be initialised to 0b1
HCR_EL2.API (bit 41) must be initialised to 0b1 - HCR_EL2.APK (bit 40) must be initialised to 0b1
- HCR_EL2.API (bit 41) must be initialised to 0b1
The requirements described above for CPU mode, caches, MMUs, architected The requirements described above for CPU mode, caches, MMUs, architected
timers, coherency and system registers apply to all CPUs. All CPUs must timers, coherency and system registers apply to all CPUs. All CPUs must
......
================
ARM64 ELF hwcaps ARM64 ELF hwcaps
================ ================
...@@ -15,16 +16,16 @@ of flags called hwcaps, exposed in the auxilliary vector. ...@@ -15,16 +16,16 @@ of flags called hwcaps, exposed in the auxilliary vector.
Userspace software can test for features by acquiring the AT_HWCAP or Userspace software can test for features by acquiring the AT_HWCAP or
AT_HWCAP2 entry of the auxiliary vector, and testing whether the relevant AT_HWCAP2 entry of the auxiliary vector, and testing whether the relevant
flags are set, e.g. flags are set, e.g.::
bool floating_point_is_present(void) bool floating_point_is_present(void)
{ {
unsigned long hwcaps = getauxval(AT_HWCAP); unsigned long hwcaps = getauxval(AT_HWCAP);
if (hwcaps & HWCAP_FP) if (hwcaps & HWCAP_FP)
return true; return true;
return false; return false;
} }
Where software relies on a feature described by a hwcap, it should check Where software relies on a feature described by a hwcap, it should check
the relevant hwcap flag to verify that the feature is present before the relevant hwcap flag to verify that the feature is present before
...@@ -45,7 +46,7 @@ userspace code at EL0. These hwcaps are defined in terms of ID register ...@@ -45,7 +46,7 @@ userspace code at EL0. These hwcaps are defined in terms of ID register
fields, and should be interpreted with reference to the definition of fields, and should be interpreted with reference to the definition of
these fields in the ARM Architecture Reference Manual (ARM ARM). these fields in the ARM Architecture Reference Manual (ARM ARM).
Such hwcaps are described below in the form: Such hwcaps are described below in the form::
Functionality implied by idreg.field == val. Functionality implied by idreg.field == val.
...@@ -64,75 +65,58 @@ reference to ID registers, and may refer to other documentation. ...@@ -64,75 +65,58 @@ reference to ID registers, and may refer to other documentation.
--------------------------------- ---------------------------------
HWCAP_FP HWCAP_FP
Functionality implied by ID_AA64PFR0_EL1.FP == 0b0000. Functionality implied by ID_AA64PFR0_EL1.FP == 0b0000.
HWCAP_ASIMD HWCAP_ASIMD
Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0000. Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0000.
HWCAP_EVTSTRM HWCAP_EVTSTRM
The generic timer is configured to generate events at a frequency of The generic timer is configured to generate events at a frequency of
approximately 100KHz. approximately 100KHz.
HWCAP_AES HWCAP_AES
Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0001.
HWCAP_PMULL HWCAP_PMULL
Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0010. Functionality implied by ID_AA64ISAR0_EL1.AES == 0b0010.
HWCAP_SHA1 HWCAP_SHA1
Functionality implied by ID_AA64ISAR0_EL1.SHA1 == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.SHA1 == 0b0001.
HWCAP_SHA2 HWCAP_SHA2
Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0001.
HWCAP_CRC32 HWCAP_CRC32
Functionality implied by ID_AA64ISAR0_EL1.CRC32 == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.CRC32 == 0b0001.
HWCAP_ATOMICS HWCAP_ATOMICS
Functionality implied by ID_AA64ISAR0_EL1.Atomic == 0b0010. Functionality implied by ID_AA64ISAR0_EL1.Atomic == 0b0010.
HWCAP_FPHP HWCAP_FPHP
Functionality implied by ID_AA64PFR0_EL1.FP == 0b0001. Functionality implied by ID_AA64PFR0_EL1.FP == 0b0001.
HWCAP_ASIMDHP HWCAP_ASIMDHP
Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0001. Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0001.
HWCAP_CPUID HWCAP_CPUID
EL0 access to certain ID registers is available, to the extent EL0 access to certain ID registers is available, to the extent
described by Documentation/arm64/cpu-feature-registers.txt. described by Documentation/arm64/cpu-feature-registers.rst.
These ID registers may imply the availability of features. These ID registers may imply the availability of features.
HWCAP_ASIMDRDM HWCAP_ASIMDRDM
Functionality implied by ID_AA64ISAR0_EL1.RDM == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.RDM == 0b0001.
HWCAP_JSCVT HWCAP_JSCVT
Functionality implied by ID_AA64ISAR1_EL1.JSCVT == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.JSCVT == 0b0001.
HWCAP_FCMA HWCAP_FCMA
Functionality implied by ID_AA64ISAR1_EL1.FCMA == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.FCMA == 0b0001.
HWCAP_LRCPC HWCAP_LRCPC
Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0001.
HWCAP_DCPOP HWCAP_DCPOP
Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0001. Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0001.
HWCAP2_DCPODP HWCAP2_DCPODP
...@@ -140,27 +124,21 @@ HWCAP2_DCPODP ...@@ -140,27 +124,21 @@ HWCAP2_DCPODP
Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0010. Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0010.
HWCAP_SHA3 HWCAP_SHA3
Functionality implied by ID_AA64ISAR0_EL1.SHA3 == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.SHA3 == 0b0001.
HWCAP_SM3 HWCAP_SM3
Functionality implied by ID_AA64ISAR0_EL1.SM3 == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.SM3 == 0b0001.
HWCAP_SM4 HWCAP_SM4
Functionality implied by ID_AA64ISAR0_EL1.SM4 == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.SM4 == 0b0001.
HWCAP_ASIMDDP HWCAP_ASIMDDP
Functionality implied by ID_AA64ISAR0_EL1.DP == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.DP == 0b0001.
HWCAP_SHA512 HWCAP_SHA512
Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0010. Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0010.
HWCAP_SVE HWCAP_SVE
Functionality implied by ID_AA64PFR0_EL1.SVE == 0b0001. Functionality implied by ID_AA64PFR0_EL1.SVE == 0b0001.
HWCAP2_SVE2 HWCAP2_SVE2
...@@ -188,40 +166,32 @@ HWCAP2_SVESM4 ...@@ -188,40 +166,32 @@ HWCAP2_SVESM4
Functionality implied by ID_AA64ZFR0_EL1.SM4 == 0b0001. Functionality implied by ID_AA64ZFR0_EL1.SM4 == 0b0001.
HWCAP_ASIMDFHM HWCAP_ASIMDFHM
Functionality implied by ID_AA64ISAR0_EL1.FHM == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.FHM == 0b0001.
HWCAP_DIT HWCAP_DIT
Functionality implied by ID_AA64PFR0_EL1.DIT == 0b0001. Functionality implied by ID_AA64PFR0_EL1.DIT == 0b0001.
HWCAP_USCAT HWCAP_USCAT
Functionality implied by ID_AA64MMFR2_EL1.AT == 0b0001. Functionality implied by ID_AA64MMFR2_EL1.AT == 0b0001.
HWCAP_ILRCPC HWCAP_ILRCPC
Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0010. Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0010.
HWCAP_FLAGM HWCAP_FLAGM
Functionality implied by ID_AA64ISAR0_EL1.TS == 0b0001. Functionality implied by ID_AA64ISAR0_EL1.TS == 0b0001.
HWCAP_SSBS HWCAP_SSBS
Functionality implied by ID_AA64PFR1_EL1.SSBS == 0b0010. Functionality implied by ID_AA64PFR1_EL1.SSBS == 0b0010.
HWCAP_PACA HWCAP_PACA
Functionality implied by ID_AA64ISAR1_EL1.APA == 0b0001 or Functionality implied by ID_AA64ISAR1_EL1.APA == 0b0001 or
ID_AA64ISAR1_EL1.API == 0b0001, as described by ID_AA64ISAR1_EL1.API == 0b0001, as described by
Documentation/arm64/pointer-authentication.txt. Documentation/arm64/pointer-authentication.rst.
HWCAP_PACG HWCAP_PACG
Functionality implied by ID_AA64ISAR1_EL1.GPA == 0b0001 or Functionality implied by ID_AA64ISAR1_EL1.GPA == 0b0001 or
ID_AA64ISAR1_EL1.GPI == 0b0001, as described by ID_AA64ISAR1_EL1.GPI == 0b0001, as described by
Documentation/arm64/pointer-authentication.txt. Documentation/arm64/pointer-authentication.rst.
4. Unused AT_HWCAP bits 4. Unused AT_HWCAP bits
......
====================
HugeTLBpage on ARM64 HugeTLBpage on ARM64
==================== ====================
...@@ -31,8 +32,10 @@ and level of the page table. ...@@ -31,8 +32,10 @@ and level of the page table.
The following hugepage sizes are supported - The following hugepage sizes are supported -
CONT PTE PMD CONT PMD PUD ====== ======== ==== ======== ===
-------- --- -------- --- - CONT PTE PMD CONT PMD PUD
====== ======== ==== ======== ===
4K: 64K 2M 32M 1G 4K: 64K 2M 32M 1G
16K: 2M 32M 1G 16K: 2M 32M 1G
64K: 2M 512M 16G 64K: 2M 512M 16G
====== ======== ==== ======== ===
:orphan:
==================
ARM64 Architecture
==================
.. toctree::
:maxdepth: 1
acpi_object_usage
arm-acpi
booting
cpu-feature-registers
elf_hwcaps
hugetlbpage
legacy_instructions
memory
pointer-authentication
silicon-errata
sve
tagged-pointers
.. only:: subproject and html
Indices
=======
* :ref:`genindex`
===================
Legacy instructions
===================
The arm64 port of the Linux kernel provides infrastructure to support The arm64 port of the Linux kernel provides infrastructure to support
emulation of instructions which have been deprecated, or obsoleted in emulation of instructions which have been deprecated, or obsoleted in
the architecture. The infrastructure code uses undefined instruction the architecture. The infrastructure code uses undefined instruction
...@@ -10,11 +14,13 @@ behaviours and the corresponding values of the sysctl nodes - ...@@ -10,11 +14,13 @@ behaviours and the corresponding values of the sysctl nodes -
* Undef * Undef
Value: 0 Value: 0
Generates undefined instruction abort. Default for instructions that Generates undefined instruction abort. Default for instructions that
have been obsoleted in the architecture, e.g., SWP have been obsoleted in the architecture, e.g., SWP
* Emulate * Emulate
Value: 1 Value: 1
Uses software emulation. To aid migration of software, in this mode Uses software emulation. To aid migration of software, in this mode
usage of emulated instruction is traced as well as rate limited usage of emulated instruction is traced as well as rate limited
warnings are issued. This is the default for deprecated warnings are issued. This is the default for deprecated
...@@ -22,6 +28,7 @@ behaviours and the corresponding values of the sysctl nodes - ...@@ -22,6 +28,7 @@ behaviours and the corresponding values of the sysctl nodes -
* Hardware Execution * Hardware Execution
Value: 2 Value: 2
Although marked as deprecated, some implementations may support the Although marked as deprecated, some implementations may support the
enabling/disabling of hardware support for the execution of these enabling/disabling of hardware support for the execution of these
instructions. Using hardware execution generally provides better instructions. Using hardware execution generally provides better
...@@ -38,20 +45,24 @@ individual instruction notes for further information. ...@@ -38,20 +45,24 @@ individual instruction notes for further information.
Supported legacy instructions Supported legacy instructions
----------------------------- -----------------------------
* SWP{B} * SWP{B}
Node: /proc/sys/abi/swp
Status: Obsolete :Node: /proc/sys/abi/swp
Default: Undef (0) :Status: Obsolete
:Default: Undef (0)
* CP15 Barriers * CP15 Barriers
Node: /proc/sys/abi/cp15_barrier
Status: Deprecated :Node: /proc/sys/abi/cp15_barrier
Default: Emulate (1) :Status: Deprecated
:Default: Emulate (1)
* SETEND * SETEND
Node: /proc/sys/abi/setend
Status: Deprecated :Node: /proc/sys/abi/setend
Default: Emulate (1)* :Status: Deprecated
Note: All the cpus on the system must have mixed endian support at EL0 :Default: Emulate (1)*
for this feature to be enabled. If a new CPU - which doesn't support mixed
endian - is hotplugged in after this feature has been enabled, there could Note: All the cpus on the system must have mixed endian support at EL0
be unexpected results in the application. for this feature to be enabled. If a new CPU - which doesn't support mixed
endian - is hotplugged in after this feature has been enabled, there could
be unexpected results in the application.
Memory Layout on AArch64 Linux ==============================
============================== Memory Layout on AArch64 Linux
==============================
Author: Catalin Marinas <catalin.marinas@arm.com> Author: Catalin Marinas <catalin.marinas@arm.com>
...@@ -21,47 +22,47 @@ The swapper_pg_dir address is written to TTBR1 and never written to ...@@ -21,47 +22,47 @@ The swapper_pg_dir address is written to TTBR1 and never written to
TTBR0. TTBR0.
AArch64 Linux memory layout with 4KB pages + 3 levels: AArch64 Linux memory layout with 4KB pages + 3 levels::
Start End Size Use Start End Size Use
----------------------------------------------------------------------- -----------------------------------------------------------------------
0000000000000000 0000007fffffffff 512GB user 0000000000000000 0000007fffffffff 512GB user
ffffff8000000000 ffffffffffffffff 512GB kernel ffffff8000000000 ffffffffffffffff 512GB kernel
AArch64 Linux memory layout with 4KB pages + 4 levels: AArch64 Linux memory layout with 4KB pages + 4 levels::
Start End Size Use Start End Size Use
----------------------------------------------------------------------- -----------------------------------------------------------------------
0000000000000000 0000ffffffffffff 256TB user 0000000000000000 0000ffffffffffff 256TB user
ffff000000000000 ffffffffffffffff 256TB kernel ffff000000000000 ffffffffffffffff 256TB kernel
AArch64 Linux memory layout with 64KB pages + 2 levels: AArch64 Linux memory layout with 64KB pages + 2 levels::
Start End Size Use Start End Size Use
----------------------------------------------------------------------- -----------------------------------------------------------------------
0000000000000000 000003ffffffffff 4TB user 0000000000000000 000003ffffffffff 4TB user
fffffc0000000000 ffffffffffffffff 4TB kernel fffffc0000000000 ffffffffffffffff 4TB kernel
AArch64 Linux memory layout with 64KB pages + 3 levels: AArch64 Linux memory layout with 64KB pages + 3 levels::
Start End Size Use Start End Size Use
----------------------------------------------------------------------- -----------------------------------------------------------------------
0000000000000000 0000ffffffffffff 256TB user 0000000000000000 0000ffffffffffff 256TB user
ffff000000000000 ffffffffffffffff 256TB kernel ffff000000000000 ffffffffffffffff 256TB kernel
For details of the virtual kernel memory layout please see the kernel For details of the virtual kernel memory layout please see the kernel
booting log. booting log.
Translation table lookup with 4KB pages: Translation table lookup with 4KB pages::
+--------+--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------+--------+
|63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0| |63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
+--------+--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------+--------+
| | | | | | | | | | | |
| | | | | v | | | | | v
| | | | | [11:0] in-page offset | | | | | [11:0] in-page offset
...@@ -72,11 +73,11 @@ Translation table lookup with 4KB pages: ...@@ -72,11 +73,11 @@ Translation table lookup with 4KB pages:
+-------------------------------------------------> [63] TTBR0/1 +-------------------------------------------------> [63] TTBR0/1
Translation table lookup with 64KB pages: Translation table lookup with 64KB pages::
+--------+--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------+--------+
|63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0| |63 56|55 48|47 40|39 32|31 24|23 16|15 8|7 0|
+--------+--------+--------+--------+--------+--------+--------+--------+ +--------+--------+--------+--------+--------+--------+--------+--------+
| | | | | | | | | |
| | | | v | | | | v
| | | | [15:0] in-page offset | | | | [15:0] in-page offset
......
=======================================
Pointer authentication in AArch64 Linux Pointer authentication in AArch64 Linux
======================================= =======================================
Author: Mark Rutland <mark.rutland@arm.com> Author: Mark Rutland <mark.rutland@arm.com>
Date: 2017-07-19 Date: 2017-07-19
This document briefly describes the provision of pointer authentication This document briefly describes the provision of pointer authentication
......
Silicon Errata and Software Workarounds =======================================
======================================= Silicon Errata and Software Workarounds
=======================================
Author: Will Deacon <will.deacon@arm.com> Author: Will Deacon <will.deacon@arm.com>
Date : 27 November 2015 Date : 27 November 2015
It is an unfortunate fact of life that hardware is often produced with It is an unfortunate fact of life that hardware is often produced with
...@@ -9,11 +11,13 @@ so-called "errata", which can cause it to deviate from the architecture ...@@ -9,11 +11,13 @@ so-called "errata", which can cause it to deviate from the architecture
under specific circumstances. For hardware produced by ARM, these under specific circumstances. For hardware produced by ARM, these
errata are broadly classified into the following categories: errata are broadly classified into the following categories:
Category A: A critical error without a viable workaround. ========== ========================================================
Category B: A significant or critical error with an acceptable Category A A critical error without a viable workaround.
Category B A significant or critical error with an acceptable
workaround. workaround.
Category C: A minor error that is not expected to occur under normal Category C A minor error that is not expected to occur under normal
operation. operation.
========== ========================================================
For more information, consult one of the "Software Developers Errata For more information, consult one of the "Software Developers Errata
Notice" documents available on infocenter.arm.com (registration Notice" documents available on infocenter.arm.com (registration
...@@ -42,47 +46,86 @@ file acts as a registry of software workarounds in the Linux Kernel and ...@@ -42,47 +46,86 @@ file acts as a registry of software workarounds in the Linux Kernel and
will be updated when new workarounds are committed and backported to will be updated when new workarounds are committed and backported to
stable kernels. stable kernels.
| Implementor | Component | Erratum ID | Kconfig |
+----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+
| Implementor | Component | Erratum ID | Kconfig |
+================+=================+=================+=============================+
| Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 | | Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 |
| | | | | +----------------+-----------------+-----------------+-----------------------------+
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 | | ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 | | ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 | | ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 | | ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 | | ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 | | ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 | | ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A57 | #852523 | N/A | | ARM | Cortex-A57 | #852523 | N/A |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 | | ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A72 | #853709 | N/A | | ARM | Cortex-A72 | #853709 | N/A |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 | | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 | | ARM | Cortex-A55 | #1024718 | ARM64_ERRATUM_1024718 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 | | ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 | | ARM | Cortex-A76 | #1165522 | ARM64_ERRATUM_1165522 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 | | ARM | Cortex-A76 | #1286807 | ARM64_ERRATUM_1286807 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 | | ARM | Cortex-A76 | #1463225 | ARM64_ERRATUM_1463225 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 | | ARM | Neoverse-N1 | #1188873,1418040| ARM64_ERRATUM_1418040 |
+----------------+-----------------+-----------------+-----------------------------+
| ARM | MMU-500 | #841119,826419 | N/A | | ARM | MMU-500 | #841119,826419 | N/A |
| | | | | +----------------+-----------------+-----------------+-----------------------------+
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 | | Cavium | ThunderX ITS | #22375,24313 | CAVIUM_ERRATUM_22375 |
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 | | Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 |
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 | | Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 |
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 | | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 | | Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX SMMUv2 | #27704 | N/A | | Cavium | ThunderX SMMUv2 | #27704 | N/A |
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX2 SMMUv3| #74 | N/A | | Cavium | ThunderX2 SMMUv3| #74 | N/A |
+----------------+-----------------+-----------------+-----------------------------+
| Cavium | ThunderX2 SMMUv3| #126 | N/A | | Cavium | ThunderX2 SMMUv3| #126 | N/A |
| | | | | +----------------+-----------------+-----------------+-----------------------------+
+----------------+-----------------+-----------------+-----------------------------+
| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 | | Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 |
| | | | | +----------------+-----------------+-----------------+-----------------------------+
+----------------+-----------------+-----------------+-----------------------------+
| Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 | | Hisilicon | Hip0{5,6,7} | #161010101 | HISILICON_ERRATUM_161010101 |
+----------------+-----------------+-----------------+-----------------------------+
| Hisilicon | Hip0{6,7} | #161010701 | N/A | | Hisilicon | Hip0{6,7} | #161010701 | N/A |
+----------------+-----------------+-----------------+-----------------------------+
| Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 | | Hisilicon | Hip07 | #161600802 | HISILICON_ERRATUM_161600802 |
+----------------+-----------------+-----------------+-----------------------------+
| Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A | | Hisilicon | Hip08 SMMU PMCG | #162001800 | N/A |
| | | | | +----------------+-----------------+-----------------+-----------------------------+
+----------------+-----------------+-----------------+-----------------------------+
| Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 | | Qualcomm Tech. | Kryo/Falkor v1 | E1003 | QCOM_FALKOR_ERRATUM_1003 |
+----------------+-----------------+-----------------+-----------------------------+
| Qualcomm Tech. | Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 | | Qualcomm Tech. | Falkor v1 | E1009 | QCOM_FALKOR_ERRATUM_1009 |
+----------------+-----------------+-----------------+-----------------------------+
| Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 | | Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 |
+----------------+-----------------+-----------------+-----------------------------+
| Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 | | Qualcomm Tech. | Falkor v{1,2} | E1041 | QCOM_FALKOR_ERRATUM_1041 |
+----------------+-----------------+-----------------+-----------------------------+
+----------------+-----------------+-----------------+-----------------------------+
| Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 | | Fujitsu | A64FX | E#010001 | FUJITSU_ERRATUM_010001 |
+----------------+-----------------+-----------------+-----------------------------+
Scalable Vector Extension support for AArch64 Linux ===================================================
=================================================== Scalable Vector Extension support for AArch64 Linux
===================================================
Author: Dave Martin <Dave.Martin@arm.com> Author: Dave Martin <Dave.Martin@arm.com>
Date: 4 August 2017 Date: 4 August 2017
This document outlines briefly the interface provided to userspace by Linux in This document outlines briefly the interface provided to userspace by Linux in
...@@ -426,7 +428,7 @@ In A64 state, SVE adds the following: ...@@ -426,7 +428,7 @@ In A64 state, SVE adds the following:
* FPSR and FPCR are retained from ARMv8-A, and interact with SVE floating-point * FPSR and FPCR are retained from ARMv8-A, and interact with SVE floating-point
operations in a similar way to the way in which they interact with ARMv8 operations in a similar way to the way in which they interact with ARMv8
floating-point operations. floating-point operations::
8VL-1 128 0 bit index 8VL-1 128 0 bit index
+---- //// -----------------+ +---- //// -----------------+
...@@ -483,6 +485,8 @@ ARMv8-A defines the following floating-point / SIMD register state: ...@@ -483,6 +485,8 @@ ARMv8-A defines the following floating-point / SIMD register state:
* 32 128-bit vector registers V0..V31 * 32 128-bit vector registers V0..V31
* 2 32-bit status/control registers FPSR, FPCR * 2 32-bit status/control registers FPSR, FPCR
::
127 0 bit index 127 0 bit index
+---------------+ +---------------+
V0 | | V0 | |
...@@ -517,7 +521,7 @@ References ...@@ -517,7 +521,7 @@ References
[2] arch/arm64/include/uapi/asm/ptrace.h [2] arch/arm64/include/uapi/asm/ptrace.h
AArch64 Linux ptrace ABI definitions AArch64 Linux ptrace ABI definitions
[3] Documentation/arm64/cpu-feature-registers.txt [3] Documentation/arm64/cpu-feature-registers.rst
[4] ARM IHI0055C [4] ARM IHI0055C
http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055c/IHI0055C_beta_aapcs64.pdf http://infocenter.arm.com/help/topic/com.arm.doc.ihi0055c/IHI0055C_beta_aapcs64.pdf
......
Tagged virtual addresses in AArch64 Linux =========================================
========================================= Tagged virtual addresses in AArch64 Linux
=========================================
Author: Will Deacon <will.deacon@arm.com> Author: Will Deacon <will.deacon@arm.com>
Date : 12 June 2013 Date : 12 June 2013
This document briefly describes the provision of tagged virtual This document briefly describes the provision of tagged virtual
......
Chinese translated version of Documentation/arm64/booting.txt Chinese translated version of Documentation/arm64/booting.rst
If you have any comment or update to the content, please contact the If you have any comment or update to the content, please contact the
original document maintainer directly. However, if you have a problem original document maintainer directly. However, if you have a problem
...@@ -10,7 +10,7 @@ M: Will Deacon <will.deacon@arm.com> ...@@ -10,7 +10,7 @@ M: Will Deacon <will.deacon@arm.com>
zh_CN: Fu Wei <wefu@redhat.com> zh_CN: Fu Wei <wefu@redhat.com>
C: 55f058e7574c3615dea4615573a19bdb258696c6 C: 55f058e7574c3615dea4615573a19bdb258696c6
--------------------------------------------------------------------- ---------------------------------------------------------------------
Documentation/arm64/booting.txt 的中文翻译 Documentation/arm64/booting.rst 的中文翻译
如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
......
Chinese translated version of Documentation/arm64/legacy_instructions.txt Chinese translated version of Documentation/arm64/legacy_instructions.rst
If you have any comment or update to the content, please contact the If you have any comment or update to the content, please contact the
original document maintainer directly. However, if you have a problem original document maintainer directly. However, if you have a problem
...@@ -10,7 +10,7 @@ Maintainer: Punit Agrawal <punit.agrawal@arm.com> ...@@ -10,7 +10,7 @@ Maintainer: Punit Agrawal <punit.agrawal@arm.com>
Suzuki K. Poulose <suzuki.poulose@arm.com> Suzuki K. Poulose <suzuki.poulose@arm.com>
Chinese maintainer: Fu Wei <wefu@redhat.com> Chinese maintainer: Fu Wei <wefu@redhat.com>
--------------------------------------------------------------------- ---------------------------------------------------------------------
Documentation/arm64/legacy_instructions.txt 的中文翻译 Documentation/arm64/legacy_instructions.rst 的中文翻译
如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
......
Chinese translated version of Documentation/arm64/memory.txt Chinese translated version of Documentation/arm64/memory.rst
If you have any comment or update to the content, please contact the If you have any comment or update to the content, please contact the
original document maintainer directly. However, if you have a problem original document maintainer directly. However, if you have a problem
...@@ -9,7 +9,7 @@ or if there is a problem with the translation. ...@@ -9,7 +9,7 @@ or if there is a problem with the translation.
Maintainer: Catalin Marinas <catalin.marinas@arm.com> Maintainer: Catalin Marinas <catalin.marinas@arm.com>
Chinese maintainer: Fu Wei <wefu@redhat.com> Chinese maintainer: Fu Wei <wefu@redhat.com>
--------------------------------------------------------------------- ---------------------------------------------------------------------
Documentation/arm64/memory.txt 的中文翻译 Documentation/arm64/memory.rst 的中文翻译
如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
......
Chinese translated version of Documentation/arm64/silicon-errata.txt Chinese translated version of Documentation/arm64/silicon-errata.rst
If you have any comment or update to the content, please contact the If you have any comment or update to the content, please contact the
original document maintainer directly. However, if you have a problem original document maintainer directly. However, if you have a problem
...@@ -10,7 +10,7 @@ M: Will Deacon <will.deacon@arm.com> ...@@ -10,7 +10,7 @@ M: Will Deacon <will.deacon@arm.com>
zh_CN: Fu Wei <wefu@redhat.com> zh_CN: Fu Wei <wefu@redhat.com>
C: 1926e54f115725a9248d0c4c65c22acaf94de4c4 C: 1926e54f115725a9248d0c4c65c22acaf94de4c4
--------------------------------------------------------------------- ---------------------------------------------------------------------
Documentation/arm64/silicon-errata.txt 的中文翻译 Documentation/arm64/silicon-errata.rst 的中文翻译
如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
......
Chinese translated version of Documentation/arm64/tagged-pointers.txt Chinese translated version of Documentation/arm64/tagged-pointers.rst
If you have any comment or update to the content, please contact the If you have any comment or update to the content, please contact the
original document maintainer directly. However, if you have a problem original document maintainer directly. However, if you have a problem
...@@ -9,7 +9,7 @@ or if there is a problem with the translation. ...@@ -9,7 +9,7 @@ or if there is a problem with the translation.
Maintainer: Will Deacon <will.deacon@arm.com> Maintainer: Will Deacon <will.deacon@arm.com>
Chinese maintainer: Fu Wei <wefu@redhat.com> Chinese maintainer: Fu Wei <wefu@redhat.com>
--------------------------------------------------------------------- ---------------------------------------------------------------------
Documentation/arm64/tagged-pointers.txt 的中文翻译 Documentation/arm64/tagged-pointers.rst 的中文翻译
如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文 如果想评论或更新本文的内容,请直接联系原文档的维护者。如果你使用英文
交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻 交流有困难的话,也可以向中文版维护者求助。如果本翻译更新不及时或者翻
......
...@@ -2205,7 +2205,7 @@ max_vq. This is the maximum vector length available to the guest on ...@@ -2205,7 +2205,7 @@ max_vq. This is the maximum vector length available to the guest on
this vcpu, and determines which register slices are visible through this vcpu, and determines which register slices are visible through
this ioctl interface. this ioctl interface.
(See Documentation/arm64/sve.txt for an explanation of the "vq" (See Documentation/arm64/sve.rst for an explanation of the "vq"
nomenclature.) nomenclature.)
KVM_REG_ARM64_SVE_VLS is only accessible after KVM_ARM_VCPU_INIT. KVM_REG_ARM64_SVE_VLS is only accessible after KVM_ARM_VCPU_INIT.
......
...@@ -83,7 +83,7 @@ static inline unsigned long efi_get_max_fdt_addr(unsigned long dram_base) ...@@ -83,7 +83,7 @@ static inline unsigned long efi_get_max_fdt_addr(unsigned long dram_base)
* guaranteed to cover the kernel Image. * guaranteed to cover the kernel Image.
* *
* Since the EFI stub is part of the kernel Image, we can relax the * Since the EFI stub is part of the kernel Image, we can relax the
* usual requirements in Documentation/arm64/booting.txt, which still * usual requirements in Documentation/arm64/booting.rst, which still
* apply to other bootloaders, and are required for some kernel * apply to other bootloaders, and are required for some kernel
* configurations. * configurations.
*/ */
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
/* /*
* struct arm64_image_header - arm64 kernel image header * struct arm64_image_header - arm64 kernel image header
* See Documentation/arm64/booting.txt for details * See Documentation/arm64/booting.rst for details
* *
* @code0: Executable code, or * @code0: Executable code, or
* @mz_header alternatively used for part of MZ header * @mz_header alternatively used for part of MZ header
......
...@@ -137,7 +137,7 @@ struct sve_context { ...@@ -137,7 +137,7 @@ struct sve_context {
* vector length beyond its initial architectural limit of 2048 bits * vector length beyond its initial architectural limit of 2048 bits
* (16 quadwords). * (16 quadwords).
* *
* See linux/Documentation/arm64/sve.txt for a description of the VL/VQ * See linux/Documentation/arm64/sve.rst for a description of the VL/VQ
* terminology. * terminology.
*/ */
#define SVE_VQ_BYTES __SVE_VQ_BYTES /* bytes per quadword */ #define SVE_VQ_BYTES __SVE_VQ_BYTES /* bytes per quadword */
......
...@@ -53,7 +53,7 @@ static void *image_load(struct kimage *image, ...@@ -53,7 +53,7 @@ static void *image_load(struct kimage *image,
/* /*
* We require a kernel with an unambiguous Image header. Per * We require a kernel with an unambiguous Image header. Per
* Documentation/arm64/booting.txt, this is the case when image_size * Documentation/arm64/booting.rst, this is the case when image_size
* is non-zero (practically speaking, since v3.17). * is non-zero (practically speaking, since v3.17).
*/ */
h = (struct arm64_image_header *)kernel; h = (struct arm64_image_header *)kernel;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment