blob: e1d3cbe0904dfe0c699c4887d219bb975174e3e7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
ARM64 Hardware Platform Awareness
=================================
This document describes Arm64 specific features for HPA
1. ARM64 ELF hwcaps
-------------------
The majority of hwcaps are intended to indicate the presence of features
which are described by architected ID registers inaccessible to
userspace code at EL0. These hwcaps are defined in terms of ID register
fields, and should be interpreted with reference to the definition of
these fields in the ARM Architecture Reference Manual.
HWCAP_FP
Floating-point.
Functionality implied by ID_AA64PFR0_EL1.FP == 0b0000.
HWCAP_ASIMD
Advanced SIMD.
Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0000.
HWCAP_EVTSTRM
The generic timer is configured to generate events at a frequency of
approximately 100KHz.
HWCAP_AES
Advanced Encryption Standard.
Functionality implied by ID_AA64ISAR1_EL1.AES == 0b0001.
HWCAP_PMULL
Polynomial multiply long (vector)
Functionality implied by ID_AA64ISAR1_EL1.AES == 0b0010.
HWCAP_SHA1
SHA1 hash update accelerator.
Functionality implied by ID_AA64ISAR0_EL1.SHA1 == 0b0001.
HWCAP_SHA2
SHA2 hash update accelerator.
Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0001.
HWCAP_CRC32
CRC32 instruction.
Functionality implied by ID_AA64ISAR0_EL1.CRC32 == 0b0001.
HWCAP_ATOMICS
Atomics instruction.
Functionality implied by ID_AA64ISAR0_EL1.Atomic == 0b0010.
HWCAP_FPHP
Instructions to convert between half-precision and single-precision, and between half-precision and double-precision.
Functionality implied by ID_AA64PFR0_EL1.FP == 0b0001.
HWCAP_ASIMDHP
Indicates whether the Advanced SIMD and Floating-point extension supports half-precision floating-point conversion operations.
Functionality implied by ID_AA64PFR0_EL1.AdvSIMD == 0b0001.
HWCAP_CPUID
EL0 access to certain ID registers is available, to the extent
described by Documentation/arm64/cpu-feature-registers.txt.
These ID registers may imply the availability of features.
HWCAP_ASIMDRDM
Indicates whether Rounding Double Multiply (RDM) instructions are implemented for Advanced SIMD.
Functionality implied by ID_AA64ISAR0_EL1.RDM == 0b0001.
HWCAP_JSCVT
ARMv8.3 adds support for a new instruction to perform conversion
from double precision floating point to integer to match the
architected behaviour of the equivalent Javascript conversion.
Functionality implied by ID_AA64ISAR1_EL1.JSCVT == 0b0001.
HWCAP_FCMA
ARM v8.3 adds support for new instructions to aid floating-point
multiplication and addition of complex numbers.
Functionality implied by ID_AA64ISAR1_EL1.FCMA == 0b0001.
HWCAP_LRCPC
ARMv8.3 adds new instructions to support Release Consistent
processor consistent (RCpc) model, which is weaker than the
RCsc model.
Functionality implied by ID_AA64ISAR1_EL1.LRCPC == 0b0001.
HWCAP_DCPOP
The ARMv8.2-DCPoP feature introduces persistent memory support to the
architecture, by defining a point of persistence in the memory
hierarchy, and a corresponding cache maintenance operation, DC CVAP.
Functionality implied by ID_AA64ISAR1_EL1.DPB == 0b0001.
HWCAP_SHA3
Secure Hash Standard3 (SHA3)
Functionality implied by ID_AA64ISAR0_EL1.SHA3 == 0b0001.
HWCAP_SM3
Commercial Cryptography Scheme.
Functionality implied by ID_AA64ISAR0_EL1.SM3 == 0b0001.
HWCAP_SM4
Commercial Cryptography Scheme.
Functionality implied by ID_AA64ISAR0_EL1.SM4 == 0b0001.
HWCAP_ASIMDDP
Performing dot product of 8bit elements in each 32bit element
of two vectors and accumulating the result into a third vector.
Functionality implied by ID_AA64ISAR0_EL1.DP == 0b0001.
HWCAP_SHA512
Secure Hash Standard
Functionality implied by ID_AA64ISAR0_EL1.SHA2 == 0b0002.
HWCAP_SVE
Scalable Vector Extension (SVE) is a vector extension for
AArch64 execution mode for the A64 instruction set of the Armv8 architecture.
Functionality implied by ID_AA64PFR0_EL1.SVE == 0b0001.
2. ARM64 Memory Partitioning and Monitoring (MPAM)
--------------------------------------------------
Armv8.4-A adds a feature called Memory Partitioning and Monitoring (MPAM). This has several uses.
Some system designs require running multiple applications or multiple virtual machines concurrently on a system
where the memory system is shared and where the performance of some applications or some virtual machines must
be only minimally affected by other applications or virtual machines. These scenarios are common in enterprise
networking and server systems.
This proposal addresses these scenarios with two approaches that work together under software control:
- Memory/Cache system resource partitioning
- Performance resource monitoring
3. Arm Power State Coordination Interface (PSCI)
------------------------------------------------
PSCI has the following intended uses:
- Provides a generic interface that supervisory software can use to
manage power in the following situations:
- Core idle management.
- Dynamic addition of cores to and removal of cores from the
system, often referred to as hotplug.
- Secondary core boot.
- Moving trusted OS context from one core to another.
- System shutdown and reset.
- Provides an interface that supervisory software can use in conjunction
with Firmware Table (FDT and ACPI) descriptions to support the
generalization of power management code.
4. Arm TrustZone
----------------
Arm TrustZone technology provides system-wide hardware isolation for trusted software.
The family of TrustZone technologies can be integrated into any Arm Cortex-A core,
supporting high-performance applications processors, with TrustZone technology for Cortex-A processors.
5. Arm CPU Info Detection
-------------------------
Computing resources should be collected by NFV COE, such as:
- Arm specific:
CPU Part: indicates the primary part number.
For example:
0xD09 Cortex-A73 processor.
CPU Architecture: indicates the architecture code.
For example:
0xF Defined by CPUID scheme.
CPU Variant: indicates the variant number of the processor.
This is the major revision number n in the rn part of
the rnpn description of the product revision status.
CPU Implementer: indicates the implementer code.
For example:
0x41 ASCII character 'A' - implementer is ARM Limited.
CPU Revision: indicates the minor revision number of the processor.
This is the minor revision number n in the pn part of
the rnpn description of the product revision status.
|