-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Automatic merge of 'master' into merge-test (2024-05-23 22:34)
- Loading branch information
Showing
1,706 changed files
with
57,026 additions
and
41,516 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -29,3 +29,16 @@ Description: Initiates a SoC reset on the MHI controller. A SoC reset is | |
This can be useful as a method of recovery if the device is | ||
non-responsive, or as a means of loading new firmware as a | ||
system administration task. | ||
|
||
What: /sys/bus/mhi/devices/.../trigger_edl | ||
Date: April 2024 | ||
KernelVersion: 6.10 | ||
Contact: [email protected] | ||
Description: Writing a non-zero value to this file will force devices to | ||
enter EDL (Emergency Download) mode. This entry only exists for | ||
devices capable of entering the EDL mode using the standard EDL | ||
triggering mechanism defined in the MHI spec v1.2. Once in EDL | ||
mode, the flash programmer image can be downloaded to the | ||
device to enter the flash programmer execution environment. | ||
This can be useful if user wants to use QDL (Qualcomm Download, | ||
which is used to download firmware over EDL) to update firmware. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,7 +22,7 @@ Contact: Mathieu Poirier <[email protected]> | |
Description: (RW) Used in conjunction with @addr_idx. Specifies | ||
characteristics about the address comparator being configure, | ||
for example the access type, the kind of instruction to trace, | ||
processor contect ID to trigger on, etc. Individual fields in | ||
processor context ID to trigger on, etc. Individual fields in | ||
the access type register may vary on the version of the trace | ||
entity. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -97,7 +97,7 @@ Date: August 2023 | |
KernelVersion: 6.7 | ||
Contact: Anshuman Khandual <[email protected]> | ||
Description: (Read) Shows all supported Coresight TMC-ETR buffer modes available | ||
for the users to configure explicitly. This file is avaialble only | ||
for the users to configure explicitly. This file is available only | ||
for TMC ETR devices. | ||
|
||
What: /sys/bus/coresight/devices/<memory_map>.tmc/buf_mode_preferred | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -244,7 +244,7 @@ KernelVersion 6.9 | |
Contact: Jinlong Mao (QUIC) <[email protected]>, Tao Zhang (QUIC) <[email protected]> | ||
Description: | ||
(RW) Read or write the status of timestamp upon all interface. | ||
Only value 0 and 1 can be written to this node. Set this node to 1 to requeset | ||
Only value 0 and 1 can be written to this node. Set this node to 1 to request | ||
timestamp to all trace packet. | ||
Accepts only one of the 2 values - 0 or 1. | ||
0 : Disable the timestamp of all trace packets. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
What: /sys/devices/hisi_ptt<sicl_id>_<core_id>/tune | ||
What: /sys/bus/event_source/devices/hisi_ptt<sicl_id>_<core_id>/tune | ||
Date: October 2022 | ||
KernelVersion: 6.1 | ||
Contact: Yicong Yang <[email protected]> | ||
|
@@ -8,7 +8,7 @@ Description: This directory contains files for tuning the PCIe link | |
|
||
See Documentation/trace/hisi-ptt.rst for more information. | ||
|
||
What: /sys/devices/hisi_ptt<sicl_id>_<core_id>/tune/qos_tx_cpl | ||
What: /sys/bus/event_source/devices/hisi_ptt<sicl_id>_<core_id>/tune/qos_tx_cpl | ||
Date: October 2022 | ||
KernelVersion: 6.1 | ||
Contact: Yicong Yang <[email protected]> | ||
|
@@ -18,7 +18,7 @@ Description: (RW) Controls the weight of Tx completion TLPs, which influence | |
will return an error, and out of range values will be converted | ||
to 2. The value indicates a probable level of the event. | ||
|
||
What: /sys/devices/hisi_ptt<sicl_id>_<core_id>/tune/qos_tx_np | ||
What: /sys/bus/event_source/devices/hisi_ptt<sicl_id>_<core_id>/tune/qos_tx_np | ||
Date: October 2022 | ||
KernelVersion: 6.1 | ||
Contact: Yicong Yang <[email protected]> | ||
|
@@ -28,7 +28,7 @@ Description: (RW) Controls the weight of Tx non-posted TLPs, which influence | |
will return an error, and out of range values will be converted | ||
to 2. The value indicates a probable level of the event. | ||
|
||
What: /sys/devices/hisi_ptt<sicl_id>_<core_id>/tune/qos_tx_p | ||
What: /sys/bus/event_source/devices/hisi_ptt<sicl_id>_<core_id>/tune/qos_tx_p | ||
Date: October 2022 | ||
KernelVersion: 6.1 | ||
Contact: Yicong Yang <[email protected]> | ||
|
@@ -38,7 +38,7 @@ Description: (RW) Controls the weight of Tx posted TLPs, which influence the | |
will return an error, and out of range values will be converted | ||
to 2. The value indicates a probable level of the event. | ||
|
||
What: /sys/devices/hisi_ptt<sicl_id>_<core_id>/tune/rx_alloc_buf_level | ||
What: /sys/bus/event_source/devices/hisi_ptt<sicl_id>_<core_id>/tune/rx_alloc_buf_level | ||
Date: October 2022 | ||
KernelVersion: 6.1 | ||
Contact: Yicong Yang <[email protected]> | ||
|
@@ -49,7 +49,7 @@ Description: (RW) Control the allocated buffer watermark for inbound packets. | |
will return an error, and out of range values will be converted | ||
to 2. The value indicates a probable level of the event. | ||
|
||
What: /sys/devices/hisi_ptt<sicl_id>_<core_id>/tune/tx_alloc_buf_level | ||
What: /sys/bus/event_source/devices/hisi_ptt<sicl_id>_<core_id>/tune/tx_alloc_buf_level | ||
Date: October 2022 | ||
KernelVersion: 6.1 | ||
Contact: Yicong Yang <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -243,7 +243,8 @@ Description: | |
less measurements. Units after application of scale and offset | ||
are milli degrees Celsius. | ||
|
||
What: /sys/bus/iio/devices/iio:deviceX/in_tempX_input | ||
What: /sys/bus/iio/devices/iio:deviceX/in_tempY_input | ||
What: /sys/bus/iio/devices/iio:deviceX/in_temp_input | ||
KernelVersion: 2.6.38 | ||
Contact: [email protected] | ||
Description: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_operating_mode | ||
KernelVersion: 6.9 | ||
Contact: [email protected] | ||
Description: | ||
DAC operating mode. One of the following modes can be selected: | ||
|
||
* normal: This is DAC normal mode. | ||
* mixed-mode: In this mode the output is effectively chopped at | ||
the DAC sample rate. This has the effect of | ||
reducing the power of the fundamental signal while | ||
increasing the power of the images centered around | ||
the DAC sample rate, thus improving the output | ||
power of these images. | ||
|
||
What: /sys/bus/iio/devices/iio:deviceX/out_voltageY_operating_mode_available | ||
KernelVersion: 6.9 | ||
Contact: [email protected] | ||
Description: | ||
Available operating modes. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,4 +5,5 @@ Contact: Matthias Kaehlcke <[email protected]> | |
[email protected] | ||
Description: | ||
(RW) Controls whether the USB hub remains always powered | ||
during system suspend or not. | ||
during system suspend or not. This attribute is not | ||
available for non-hub devices. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
============================================================================== | ||
Concurrent Modification and Execution of Instructions (CMODX) for RISC-V Linux | ||
============================================================================== | ||
|
||
CMODX is a programming technique where a program executes instructions that were | ||
modified by the program itself. Instruction storage and the instruction cache | ||
(icache) are not guaranteed to be synchronized on RISC-V hardware. Therefore, the | ||
program must enforce its own synchronization with the unprivileged fence.i | ||
instruction. | ||
|
||
However, the default Linux ABI prohibits the use of fence.i in userspace | ||
applications. At any point the scheduler may migrate a task onto a new hart. If | ||
migration occurs after the userspace synchronized the icache and instruction | ||
storage with fence.i, the icache on the new hart will no longer be clean. This | ||
is due to the behavior of fence.i only affecting the hart that it is called on. | ||
Thus, the hart that the task has been migrated to may not have synchronized | ||
instruction storage and icache. | ||
|
||
There are two ways to solve this problem: use the riscv_flush_icache() syscall, | ||
or use the ``PR_RISCV_SET_ICACHE_FLUSH_CTX`` prctl() and emit fence.i in | ||
userspace. The syscall performs a one-off icache flushing operation. The prctl | ||
changes the Linux ABI to allow userspace to emit icache flushing operations. | ||
|
||
As an aside, "deferred" icache flushes can sometimes be triggered in the kernel. | ||
At the time of writing, this only occurs during the riscv_flush_icache() syscall | ||
and when the kernel uses copy_to_user_page(). These deferred flushes happen only | ||
when the memory map being used by a hart changes. If the prctl() context caused | ||
an icache flush, this deferred icache flush will be skipped as it is redundant. | ||
Therefore, there will be no additional flush when using the riscv_flush_icache() | ||
syscall inside of the prctl() context. | ||
|
||
prctl() Interface | ||
--------------------- | ||
|
||
Call prctl() with ``PR_RISCV_SET_ICACHE_FLUSH_CTX`` as the first argument. The | ||
remaining arguments will be delegated to the riscv_set_icache_flush_ctx | ||
function detailed below. | ||
|
||
.. kernel-doc:: arch/riscv/mm/cacheflush.c | ||
:identifiers: riscv_set_icache_flush_ctx | ||
|
||
Example usage: | ||
|
||
The following files are meant to be compiled and linked with each other. The | ||
modify_instruction() function replaces an add with 0 with an add with one, | ||
causing the instruction sequence in get_value() to change from returning a zero | ||
to returning a one. | ||
|
||
cmodx.c:: | ||
|
||
#include <stdio.h> | ||
#include <sys/prctl.h> | ||
|
||
extern int get_value(); | ||
extern void modify_instruction(); | ||
|
||
int main() | ||
{ | ||
int value = get_value(); | ||
printf("Value before cmodx: %d\n", value); | ||
|
||
// Call prctl before first fence.i is called inside modify_instruction | ||
prctl(PR_RISCV_SET_ICACHE_FLUSH_CTX_ON, PR_RISCV_CTX_SW_FENCEI, PR_RISCV_SCOPE_PER_PROCESS); | ||
modify_instruction(); | ||
// Call prctl after final fence.i is called in process | ||
prctl(PR_RISCV_SET_ICACHE_FLUSH_CTX_OFF, PR_RISCV_CTX_SW_FENCEI, PR_RISCV_SCOPE_PER_PROCESS); | ||
|
||
value = get_value(); | ||
printf("Value after cmodx: %d\n", value); | ||
return 0; | ||
} | ||
|
||
cmodx.S:: | ||
|
||
.option norvc | ||
|
||
.text | ||
.global modify_instruction | ||
modify_instruction: | ||
lw a0, new_insn | ||
lui a5,%hi(old_insn) | ||
sw a0,%lo(old_insn)(a5) | ||
fence.i | ||
ret | ||
|
||
.section modifiable, "awx" | ||
.global get_value | ||
get_value: | ||
li a0, 0 | ||
old_insn: | ||
addi a0, a0, 0 | ||
ret | ||
|
||
.data | ||
new_insn: | ||
addi a0, a0, 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -13,6 +13,7 @@ RISC-V architecture | |
patch-acceptance | ||
uabi | ||
vector | ||
cmodx | ||
|
||
features | ||
|
||
|
Oops, something went wrong.