Skip to content

Commit ab47243

Browse files
committed
Add cs42l43 PC focused SoundWire CODEC
Merge series from Charles Keepax <[email protected]>: This patch chain adds support for the Cirrus Logic cs42l43 PC focused SoundWire CODEC.
2 parents 46f53bd + ef75e76 commit ab47243

File tree

624 files changed

+10228
-2924
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

624 files changed

+10228
-2924
lines changed

Documentation/ABI/testing/sysfs-bus-cxl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,12 @@ Description:
8282
whether it resides in persistent capacity, volatile capacity,
8383
or the LSA, is made permanently unavailable by whatever means
8484
is appropriate for the media type. This functionality requires
85-
the device to be not be actively decoding any HPA ranges.
85+
the device to be disabled, that is, not actively decoding any
86+
HPA ranges. This permits avoiding explicit global CPU cache
87+
management, relying instead for it to be done when a region
88+
transitions between software programmed and hardware committed
89+
states. If this file is not present, then there is no hardware
90+
support for the operation.
8691

8792

8893
What /sys/bus/cxl/devices/memX/security/erase
@@ -92,7 +97,13 @@ Contact: [email protected]
9297
Description:
9398
(WO) Write a boolean 'true' string value to this attribute to
9499
secure erase user data by changing the media encryption keys for
95-
all user data areas of the device.
100+
all user data areas of the device. This functionality requires
101+
the device to be disabled, that is, not actively decoding any
102+
HPA ranges. This permits avoiding explicit global CPU cache
103+
management, relying instead for it to be done when a region
104+
transitions between software programmed and hardware committed
105+
states. If this file is not present, then there is no hardware
106+
support for the operation.
96107

97108

98109
What: /sys/bus/cxl/devices/memX/firmware/

Documentation/ABI/testing/sysfs-devices-system-cpu

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -513,17 +513,18 @@ Description: information about CPUs heterogeneity.
513513
cpu_capacity: capacity of cpuX.
514514

515515
What: /sys/devices/system/cpu/vulnerabilities
516+
/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
517+
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
518+
/sys/devices/system/cpu/vulnerabilities/l1tf
519+
/sys/devices/system/cpu/vulnerabilities/mds
516520
/sys/devices/system/cpu/vulnerabilities/meltdown
521+
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
522+
/sys/devices/system/cpu/vulnerabilities/retbleed
523+
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
517524
/sys/devices/system/cpu/vulnerabilities/spectre_v1
518525
/sys/devices/system/cpu/vulnerabilities/spectre_v2
519-
/sys/devices/system/cpu/vulnerabilities/spec_store_bypass
520-
/sys/devices/system/cpu/vulnerabilities/l1tf
521-
/sys/devices/system/cpu/vulnerabilities/mds
522526
/sys/devices/system/cpu/vulnerabilities/srbds
523527
/sys/devices/system/cpu/vulnerabilities/tsx_async_abort
524-
/sys/devices/system/cpu/vulnerabilities/itlb_multihit
525-
/sys/devices/system/cpu/vulnerabilities/mmio_stale_data
526-
/sys/devices/system/cpu/vulnerabilities/retbleed
527528
Date: January 2018
528529
Contact: Linux kernel mailing list <[email protected]>
529530
Description: Information about CPU vulnerabilities

Documentation/ABI/testing/sysfs-platform-hidma

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ What: /sys/devices/platform/hidma-*/chid
22
/sys/devices/platform/QCOM8061:*/chid
33
Date: Dec 2015
44
KernelVersion: 4.4
5-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
5+
Contact: "Sinan Kaya <okaya@kernel.org>"
66
Description:
77
Contains the ID of the channel within the HIDMA instance.
88
It is used to associate a given HIDMA channel with the

Documentation/ABI/testing/sysfs-platform-hidma-mgmt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ What: /sys/devices/platform/hidma-mgmt*/chanops/chan*/priority
22
/sys/devices/platform/QCOM8060:*/chanops/chan*/priority
33
Date: Nov 2015
44
KernelVersion: 4.4
5-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
5+
Contact: "Sinan Kaya <okaya@kernel.org>"
66
Description:
77
Contains either 0 or 1 and indicates if the DMA channel is a
88
low priority (0) or high priority (1) channel.
@@ -11,7 +11,7 @@ What: /sys/devices/platform/hidma-mgmt*/chanops/chan*/weight
1111
/sys/devices/platform/QCOM8060:*/chanops/chan*/weight
1212
Date: Nov 2015
1313
KernelVersion: 4.4
14-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
14+
Contact: "Sinan Kaya <okaya@kernel.org>"
1515
Description:
1616
Contains 0..15 and indicates the weight of the channel among
1717
equal priority channels during round robin scheduling.
@@ -20,7 +20,7 @@ What: /sys/devices/platform/hidma-mgmt*/chreset_timeout_cycles
2020
/sys/devices/platform/QCOM8060:*/chreset_timeout_cycles
2121
Date: Nov 2015
2222
KernelVersion: 4.4
23-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
23+
Contact: "Sinan Kaya <okaya@kernel.org>"
2424
Description:
2525
Contains the platform specific cycle value to wait after a
2626
reset command is issued. If the value is chosen too short,
@@ -32,7 +32,7 @@ What: /sys/devices/platform/hidma-mgmt*/dma_channels
3232
/sys/devices/platform/QCOM8060:*/dma_channels
3333
Date: Nov 2015
3434
KernelVersion: 4.4
35-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
35+
Contact: "Sinan Kaya <okaya@kernel.org>"
3636
Description:
3737
Contains the number of dma channels supported by one instance
3838
of HIDMA hardware. The value may change from chip to chip.
@@ -41,23 +41,23 @@ What: /sys/devices/platform/hidma-mgmt*/hw_version_major
4141
/sys/devices/platform/QCOM8060:*/hw_version_major
4242
Date: Nov 2015
4343
KernelVersion: 4.4
44-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
44+
Contact: "Sinan Kaya <okaya@kernel.org>"
4545
Description:
4646
Version number major for the hardware.
4747

4848
What: /sys/devices/platform/hidma-mgmt*/hw_version_minor
4949
/sys/devices/platform/QCOM8060:*/hw_version_minor
5050
Date: Nov 2015
5151
KernelVersion: 4.4
52-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
52+
Contact: "Sinan Kaya <okaya@kernel.org>"
5353
Description:
5454
Version number minor for the hardware.
5555

5656
What: /sys/devices/platform/hidma-mgmt*/max_rd_xactions
5757
/sys/devices/platform/QCOM8060:*/max_rd_xactions
5858
Date: Nov 2015
5959
KernelVersion: 4.4
60-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
60+
Contact: "Sinan Kaya <okaya@kernel.org>"
6161
Description:
6262
Contains a value between 0 and 31. Maximum number of
6363
read transactions that can be issued back to back.
@@ -69,7 +69,7 @@ What: /sys/devices/platform/hidma-mgmt*/max_read_request
6969
/sys/devices/platform/QCOM8060:*/max_read_request
7070
Date: Nov 2015
7171
KernelVersion: 4.4
72-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
72+
Contact: "Sinan Kaya <okaya@kernel.org>"
7373
Description:
7474
Size of each read request. The value needs to be a power
7575
of two and can be between 128 and 1024.
@@ -78,7 +78,7 @@ What: /sys/devices/platform/hidma-mgmt*/max_wr_xactions
7878
/sys/devices/platform/QCOM8060:*/max_wr_xactions
7979
Date: Nov 2015
8080
KernelVersion: 4.4
81-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
81+
Contact: "Sinan Kaya <okaya@kernel.org>"
8282
Description:
8383
Contains a value between 0 and 31. Maximum number of
8484
write transactions that can be issued back to back.
@@ -91,7 +91,7 @@ What: /sys/devices/platform/hidma-mgmt*/max_write_request
9191
/sys/devices/platform/QCOM8060:*/max_write_request
9292
Date: Nov 2015
9393
KernelVersion: 4.4
94-
Contact: "Sinan Kaya <okaya@codeaurora.org>"
94+
Contact: "Sinan Kaya <okaya@kernel.org>"
9595
Description:
9696
Size of each write request. The value needs to be a power
9797
of two and can be between 128 and 1024.
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
.. SPDX-License-Identifier: GPL-2.0
2+
3+
GDS - Gather Data Sampling
4+
==========================
5+
6+
Gather Data Sampling is a hardware vulnerability which allows unprivileged
7+
speculative access to data which was previously stored in vector registers.
8+
9+
Problem
10+
-------
11+
When a gather instruction performs loads from memory, different data elements
12+
are merged into the destination vector register. However, when a gather
13+
instruction that is transiently executed encounters a fault, stale data from
14+
architectural or internal vector registers may get transiently forwarded to the
15+
destination vector register instead. This will allow a malicious attacker to
16+
infer stale data using typical side channel techniques like cache timing
17+
attacks. GDS is a purely sampling-based attack.
18+
19+
The attacker uses gather instructions to infer the stale vector register data.
20+
The victim does not need to do anything special other than use the vector
21+
registers. The victim does not need to use gather instructions to be
22+
vulnerable.
23+
24+
Because the buffers are shared between Hyper-Threads cross Hyper-Thread attacks
25+
are possible.
26+
27+
Attack scenarios
28+
----------------
29+
Without mitigation, GDS can infer stale data across virtually all
30+
permission boundaries:
31+
32+
Non-enclaves can infer SGX enclave data
33+
Userspace can infer kernel data
34+
Guests can infer data from hosts
35+
Guest can infer guest from other guests
36+
Users can infer data from other users
37+
38+
Because of this, it is important to ensure that the mitigation stays enabled in
39+
lower-privilege contexts like guests and when running outside SGX enclaves.
40+
41+
The hardware enforces the mitigation for SGX. Likewise, VMMs should ensure
42+
that guests are not allowed to disable the GDS mitigation. If a host erred and
43+
allowed this, a guest could theoretically disable GDS mitigation, mount an
44+
attack, and re-enable it.
45+
46+
Mitigation mechanism
47+
--------------------
48+
This issue is mitigated in microcode. The microcode defines the following new
49+
bits:
50+
51+
================================ === ============================
52+
IA32_ARCH_CAPABILITIES[GDS_CTRL] R/O Enumerates GDS vulnerability
53+
and mitigation support.
54+
IA32_ARCH_CAPABILITIES[GDS_NO] R/O Processor is not vulnerable.
55+
IA32_MCU_OPT_CTRL[GDS_MITG_DIS] R/W Disables the mitigation
56+
0 by default.
57+
IA32_MCU_OPT_CTRL[GDS_MITG_LOCK] R/W Locks GDS_MITG_DIS=0. Writes
58+
to GDS_MITG_DIS are ignored
59+
Can't be cleared once set.
60+
================================ === ============================
61+
62+
GDS can also be mitigated on systems that don't have updated microcode by
63+
disabling AVX. This can be done by setting gather_data_sampling="force" or
64+
"clearcpuid=avx" on the kernel command-line.
65+
66+
If used, these options will disable AVX use by turning off XSAVE YMM support.
67+
However, the processor will still enumerate AVX support. Userspace that
68+
does not follow proper AVX enumeration to check both AVX *and* XSAVE YMM
69+
support will break.
70+
71+
Mitigation control on the kernel command line
72+
---------------------------------------------
73+
The mitigation can be disabled by setting "gather_data_sampling=off" or
74+
"mitigations=off" on the kernel command line. Not specifying either will default
75+
to the mitigation being enabled. Specifying "gather_data_sampling=force" will
76+
use the microcode mitigation when available or disable AVX on affected systems
77+
where the microcode hasn't been updated to include the mitigation.
78+
79+
GDS System Information
80+
------------------------
81+
The kernel provides vulnerability status information through sysfs. For
82+
GDS this can be accessed by the following sysfs file:
83+
84+
/sys/devices/system/cpu/vulnerabilities/gather_data_sampling
85+
86+
The possible values contained in this file are:
87+
88+
============================== =============================================
89+
Not affected Processor not vulnerable.
90+
Vulnerable Processor vulnerable and mitigation disabled.
91+
Vulnerable: No microcode Processor vulnerable and microcode is missing
92+
mitigation.
93+
Mitigation: AVX disabled,
94+
no microcode Processor is vulnerable and microcode is missing
95+
mitigation. AVX disabled as mitigation.
96+
Mitigation: Microcode Processor is vulnerable and mitigation is in
97+
effect.
98+
Mitigation: Microcode (locked) Processor is vulnerable and mitigation is in
99+
effect and cannot be disabled.
100+
Unknown: Dependent on
101+
hypervisor status Running on a virtual guest processor that is
102+
affected but with no way to know if host
103+
processor is mitigated or vulnerable.
104+
============================== =============================================
105+
106+
GDS Default mitigation
107+
----------------------
108+
The updated microcode will enable the mitigation by default. The kernel's
109+
default action is to leave the mitigation enabled.

Documentation/admin-guide/hw-vuln/index.rst

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ are configurable at compile, boot or run time.
1313
l1tf
1414
mds
1515
tsx_async_abort
16-
multihit.rst
17-
special-register-buffer-data-sampling.rst
18-
core-scheduling.rst
19-
l1d_flush.rst
20-
processor_mmio_stale_data.rst
21-
cross-thread-rsb.rst
16+
multihit
17+
special-register-buffer-data-sampling
18+
core-scheduling
19+
l1d_flush
20+
processor_mmio_stale_data
21+
cross-thread-rsb
22+
srso
23+
gather_data_sampling

0 commit comments

Comments
 (0)