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/ |
D | riscv,imsics.yaml | 1 # 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/ |
D | irq-riscv-aplic-msi.c | 1 // 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 …]
|
D | irq-riscv-intc.c | 1 // 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 …]
|
D | irq-riscv-imsic-state.c | 1 // 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 …]
|
D | irq-sifive-plic.c | 1 // 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 …]
|
D | irq-riscv-imsic-platform.c | 1 // 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/ |
D | riscv-imsic.h | 1 /* 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/ |
D | kvm_aia.h | 1 /* 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/ |
D | aia_device.c | 1 // 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/ |
D | Kconfig | 1 # 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/ |
D | ad74413r.c | 1 // 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/ |
D | wmi.c | 1 // 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/ |
D | bttv.rst | 1 .. 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/ |
D | MAINTAINERS | 5 --------------------------------------------------- 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 …]
|