Home
last modified time | relevance | path

Searched +full:hart +full:- +full:index +full:- +full:bits (Results 1 – 14 of 14) sorted by relevance

/linux-6.12.1/Documentation/devicetree/bindings/interrupt-controller/
Driscv,imsics.yaml1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
4 $id: http://devicetree.org/schemas/interrupt-controller/riscv,imsics.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: RISC-V Incoming MSI Controller (IMSIC)
10 - Anup Patel <anup@brainfault.org>
13 The RISC-V advanced interrupt architecture (AIA) defines a per-CPU incoming
14 MSI controller (IMSIC) for handling MSIs in a RISC-V platform. The RISC-V
15 AIA specification can be found at https://github.com/riscv/riscv-aia.
17 The IMSIC is a per-CPU (or per-HART) device with separate interrupt file
[all …]
/linux-6.12.1/drivers/irqchip/
Dirq-riscv-aplic-msi.c1 // SPDX-License-Identifier: GPL-2.0
12 #include <linux/irqchip/riscv-aplic.h>
13 #include <linux/irqchip/riscv-imsic.h>
21 #include "irq-riscv-aplic-main.h"
43 * The section "4.9.2 Special consideration for level-sensitive interrupt in aplic_msi_irq_retrigger_level()
44 * sources" of the RISC-V AIA specification says: in aplic_msi_irq_retrigger_level()
52 writel(d->hwirq, priv->regs + APLIC_SETIPNUM_LE); in aplic_msi_irq_retrigger_level()
60 * EOI handling is required only for level-triggered interrupts in aplic_msi_irq_eoi()
73 * Updating sourcecfg register for level-triggered interrupts in aplic_msi_irq_set_type()
84 struct aplic_msicfg *mc = &priv->msicfg; in aplic_msi_write_msg()
[all …]
Dirq-riscv-intc.c1 // SPDX-License-Identifier: GPL-2.0
4 * Copyright (C) 2017-2018 SiFive
8 #define pr_fmt(fmt) "riscv-intc: " fmt
11 #include <linux/bits.h>
31 unsigned long cause = regs->cause & ~CAUSE_IRQ_FLAG; in riscv_intc_irq()
46 * On RISC-V systems local interrupts are masked or unmasked by writing
48 * on the local hart, these functions can only be called on the hart that
54 if (IS_ENABLED(CONFIG_32BIT) && d->hwirq >= BITS_PER_LONG) in riscv_intc_irq_mask()
55 csr_clear(CSR_IEH, BIT(d->hwirq - BITS_PER_LONG)); in riscv_intc_irq_mask()
57 csr_clear(CSR_IE, BIT(d->hwirq)); in riscv_intc_irq_mask()
[all …]
Dirq-riscv-imsic-state.c1 // SPDX-License-Identifier: GPL-2.0
7 #define pr_fmt(fmt) "riscv-imsic: " fmt
22 #include "irq-riscv-imsic-state.h"
63 return imsic ? &imsic->global : NULL; in imsic_get_global_config()
74 imask = BIT(id & (__riscv_xlen - 1)); in __imsic_eix_read_clear()
102 * are XLEN-wide and we must not touch IDs which in __imsic_eix_update()
106 for (i = id & (__riscv_xlen - 1); id < last_id && i < __riscv_xlen; i++) { in __imsic_eix_update()
133 lockdep_assert_held(&lpriv->lock); in __imsic_local_sync()
135 for_each_set_bit(i, lpriv->dirty_bitmap, imsic->global.nr_ids + 1) { in __imsic_local_sync()
138 vec = &lpriv->vectors[i]; in __imsic_local_sync()
[all …]
Dirq-sifive-plic.c1 // SPDX-License-Identifier: GPL-2.0
6 #define pr_fmt(fmt) "riscv-plic: " fmt
25 * This driver implements a version of the RISC-V PLIC with the actual layout
28 * https://static.dev.sifive.com/U54-MC-RVCoreIP.pdf
30 * The largest number supported by devices marked as 'sifive,plic-1.0.0', is
31 * 1024, of which device 0 is defined as non-existent by the RISC-V Privileged
46 * Each hart context has a vector of interrupt enable bits associated with it.
53 * Each hart context has a set of control registers associated with it. Right
54 * now there's only two: a source priority threshold over which the hart will
112 raw_spin_lock_irqsave(&handler->enable_lock, flags); in plic_toggle()
[all …]
Dirq-riscv-imsic-platform.c1 // SPDX-License-Identifier: GPL-2.0
7 #define pr_fmt(fmt) "riscv-imsic: " fmt
23 #include "irq-riscv-imsic-state.h"
31 global = &imsic->global; in imsic_cpu_page_phys()
32 local = per_cpu_ptr(global->local, cpu); in imsic_cpu_page_phys()
34 if (BIT(global->guest_index_bits) <= guest_index) in imsic_cpu_page_phys()
38 *out_msi_pa = local->msi_pa + (guest_index * IMSIC_MMIO_PAGE_SZ); in imsic_cpu_page_phys()
59 return -ENOENT; in imsic_irq_retrigger()
61 local = per_cpu_ptr(imsic->global.local, vec->cpu); in imsic_irq_retrigger()
62 writel_relaxed(vec->local_id, local->msi_va); in imsic_irq_retrigger()
[all …]
/linux-6.12.1/include/linux/irqchip/
Driscv-imsic.h1 /* SPDX-License-Identifier: GPL-2.0-only */
50 * XLEN-1 12 0
52 * -------------------------------------------------------------
53 * |xxxxxx|Group Index|xxxxxxxxxxx|HART Index|Guest Index| 0 |
54 * -------------------------------------------------------------
57 /* Bits representing Guest index, HART index, and Group index */
72 /* Per-CPU IMSIC addresses */
/linux-6.12.1/arch/riscv/include/asm/
Dkvm_aia.h1 /* SPDX-License-Identifier: GPL-2.0-only */
18 /* In-kernel irqchip created */
21 /* In-kernel irqchip initialized */
33 /* Number of group bits in IMSIC address */
36 /* Position of group bits in IMSIC address */
39 /* Number of hart bits in IMSIC address */
42 /* Number of guest bits in IMSIC address */
72 /* HART index of IMSIC extacted from guest physical address */
79 #define KVM_RISCV_AIA_UNDEF_ADDR (-1)
81 #define kvm_riscv_aia_initialized(k) ((k)->arch.aia.initialized)
[all …]
/linux-6.12.1/arch/riscv/kvm/
Daia_device.c1 // SPDX-License-Identifier: GPL-2.0
10 #include <linux/bits.h>
11 #include <linux/irqchip/riscv-imsic.h>
19 for (; vcpu_lock_idx >= 0; vcpu_lock_idx--) { in unlock_vcpus()
21 mutex_unlock(&tmp_vcpu->mutex); in unlock_vcpus()
27 unlock_vcpus(kvm, atomic_read(&kvm->online_vcpus) - 1); in unlock_all_vcpus()
36 if (!mutex_trylock(&tmp_vcpu->mutex)) { in lock_all_vcpus()
37 unlock_vcpus(kvm, c - 1); in lock_all_vcpus()
49 struct kvm *kvm = dev->kvm; in aia_create()
53 return -EEXIST; in aia_create()
[all …]
/linux-6.12.1/arch/riscv/
DKconfig1 # SPDX-License-Identifier: GPL-2.0-only
4 # see Documentation/kbuild/kconfig-language.rst.
63 # LLD >= 14: https://github.com/llvm/llvm-project/issues/50505
216 # -Zsanitizer=shadow-call-stack flag.
226 depends on $(cc-option,-fpatchable-function-entry=8)
229 def_bool $(cc-option,-fsanitize=shadow-call-stack)
230 …# https://github.com/riscv-non-isa/riscv-elf-psabi-doc/commit/a484e843e6eeb51f0cb7b8819e50da6d2444…
231 depends on $(ld-option,--no-relax-gp)
235 # https://github.com/llvm/llvm-project/commit/6611d58f5bbcbec77262d392e2923e1d680f6985
238 # https://github.com/llvm/llvm-project/commit/bbc0f99f3bc96f1db16f649fc21dd18e5b0918f6
[all …]
/linux-6.12.1/drivers/iio/addac/
Dad74413r.c1 // SPDX-License-Identifier: GPL-2.0
26 #include <dt-bindings/iio/addac/adi,ad74413r.h>
64 * Synchronize consecutive operations when doing a one-shot
176 ad74413r_format_reg_write(reg, val, st->reg_tx_buf); in ad74413r_reg_write()
178 return spi_write(st->spi, st->reg_tx_buf, AD74413R_FRAME_SIZE); in ad74413r_reg_write()
186 dev_err(st->dev, "Bad CRC %02x for %02x%02x%02x\n", in ad74413r_crc_check()
188 return -EINVAL; in ad74413r_crc_check()
199 .tx_buf = st->reg_tx_buf, in ad74413r_reg_read()
204 .rx_buf = st->reg_rx_buf, in ad74413r_reg_read()
211 st->reg_tx_buf); in ad74413r_reg_read()
[all …]
/linux-6.12.1/drivers/platform/x86/
Dwmi.c1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * ACPI-WMI mapping driver
5 * Copyright (C) 2007-2008 Carlos Corbacho <carlos@strangeworlds.co.uk>
9 * Copyright (c) 2001-2007 Anton Altaparmakov
12 * WMI bus infrastructure by Andrew Lutomirski and Darren Hart:
20 #include <linux/bits.h>
37 MODULE_DESCRIPTION("ACPI-WMI Mapping Driver");
115 id = wdriver->id_table; in find_guid_context()
119 while (*id->guid_string) { in find_guid_context()
120 if (guid_parse_and_compare(id->guid_string, &wblock->gblock.guid)) in find_guid_context()
[all …]
/linux-6.12.1/Documentation/admin-guide/media/
Dbttv.rst1 .. SPDX-License-Identifier: GPL-2.0
8 ----------------------
12 ./scripts/config -e PCI
13 ./scripts/config -m I2C
14 ./scripts/config -m INPUT
15 ./scripts/config -m MEDIA_SUPPORT
16 ./scripts/config -e MEDIA_PCI_SUPPORT
17 ./scripts/config -e MEDIA_ANALOG_TV_SUPPORT
18 ./scripts/config -e MEDIA_DIGITAL_TV_SUPPORT
19 ./scripts/config -e MEDIA_RADIO_SUPPORT
[all …]
/linux-6.12.1/
DMAINTAINERS5 ---------------------------------------------------
21 W: *Web-page* with status/info
23 B: URI for where to file *bugs*. A web-page with detailed bug
28 patches to the given subsystem. This is either an in-tree file,
29 or a URI. See Documentation/maintainer/maintainer-entry-profile.rst
46 N: [^a-z]tegra all files whose path contains tegra
64 ----------------
83 3WARE SAS/SATA-RAID SCSI DRIVERS (3W-XXXX, 3W-9XXX, 3W-SAS)
85 L: linux-scsi@vger.kernel.org
88 F: drivers/scsi/3w-*
[all …]