mirror-linux/arch
Vladimir Kondratiev 5fe331cdcf riscv: Helper to parse hart index
RISC-V APLIC specification defines "hart index" in [1]. Similar definitions
can be found for ACLINT in [2]

Quote from the APLIC specification:

Within a given interrupt domain, each of the domain’s harts has a unique
index number in the range 0 to 2^14 − 1 (= 16,383). The index number a
domain associates with a hart may or may not have any relationship to the
unique hart identifier (“hart ID”) that the RISC-V Privileged
Architecture assigns to the hart. Two different interrupt domains may
employ entirely different index numbers for the same set of harts.

Further, it says in "4.5 Memory-mapped control region for an interrupt
domain":

The array of IDC structures may include some for potential hart index
numbers that are not actual hart index numbers in the domain.  For example,
the first IDC structure is always for hart index 0, but 0 is not
necessarily a valid index number for any hart in the domain.

Support arbitrary hart indices specified in an optional property
"riscv,hart-indexes" which is specified as an array of u32 elements, one
per interrupt target, listing hart indexes in the same order as in
"interrupts-extended".

If this property is not specified, fall back to use logical hart indices
within the domain.

Signed-off-by: Vladimir Kondratiev <vladimir.kondratiev@mobileye.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/all/20250612143911.3224046-2-vladimir.kondratiev@mobileye.com
Link: https://github.com/riscv/riscv-aia [1]
Link: https://github.com/riscvarchive/riscv-aclint [2]
2025-06-26 16:06:40 +02:00
..
alpha treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
arc Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
arm Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
arm64 Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
csky Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
hexagon Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
loongarch Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
m68k Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
microblaze Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
mips Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
nios2 Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
openrisc Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
parisc Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
powerpc treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
riscv riscv: Helper to parse hart index 2025-06-26 16:06:40 +02:00
s390 Kbuild updates for v6.16 2025-06-07 10:05:35 -07:00
sh treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
sparc treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
um treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
x86 The delayed from_timer() API cleanup: 2025-06-08 11:33:00 -07:00
xtensa treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
.gitignore
Kconfig fs/resctrl: Add boiler plate for external resctrl code 2025-05-16 11:05:40 +02:00