/linux-6.14.4/drivers/net/ipa/ |
D | ipa_main.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2024 Linaro Ltd. 20 #include "ipa.h" 39 * This driver supports the Qualcomm IP Accelerator (IPA), which is a 40 * networking component found in many Qualcomm SoCs. The IPA is connected 44 * The IPA is the conduit between the AP and the modem that carries network 48 * The IPA provides protocol checksum calculation, offloading this work 49 * from the AP. The IPA offers additional functionality, including routing, 51 * currently supported. Despite that, some resources--including routing [all …]
|
D | ipa_interrupt.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2024 Linaro Ltd. 7 /* DOC: IPA Interrupts 9 * The IPA has an interrupt line distinct from the interrupt used by the GSI 11 * transfer completions), IPA interrupts are related to other events related 12 * to the IPA. Some of the IPA interrupts come from a microcontroller 13 * embedded in the IPA. Each IPA interrupt type can be both masked and 16 * Two of the IPA interrupts are initiated by the microcontroller. A third 17 * can be generated to signal the need for a wakeup/resume when an IPA [all …]
|
D | ipa_endpoint.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2024 Linaro Ltd. 10 #include <linux/dma-direction.h> 16 #include "ipa.h" 30 #define IPA_REPLENISH_BATCH 16 /* Must be non-zero */ 33 #define IPA_RX_BUFFER_OVERHEAD (PAGE_SIZE - SKB_MAX_ORDER(NET_SKB_PAD, 0)) 35 /* Where to find the QMAP mux_id for a packet within modem-supplied metadata */ 40 /** enum ipa_status_opcode - IPA status opcode field hardware values */ 51 /** enum ipa_status_exception - IPA status exception field hardware values */ [all …]
|
D | ipa_resource.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2024 Linaro Ltd. 9 #include "ipa.h" 15 * DOC: IPA Resources 17 * The IPA manages a set of resources internally for various purposes. 18 * A given IPA version has a fixed number of resource types, and a fixed 22 * Each version of IPA also has some number of resource groups. Each 28 static bool ipa_resource_limits_valid(struct ipa *ipa, in ipa_resource_limits_valid() argument 38 group_count = data->rsrc_group_src_count; in ipa_resource_limits_valid() [all …]
|
D | ipa_table.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2024 Linaro Ltd. 10 #include <linux/dma-mapping.h> 16 #include "ipa.h" 25 * DOC: IPA Filter and Route Tables 27 * The IPA has tables defined in its local (IPA-resident) memory that define 29 * endian 64-bit "slot" that holds the address of a rule definition. (The 35 * by all IPA hardware (IPA v4.2 doesn't support hashed tables). 38 * an object (such as a route or filter table) in IPA-resident memory must [all …]
|
D | ipa_mem.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2024 Linaro Ltd. 7 #include <linux/dma-mapping.h> 16 #include "ipa.h" 29 const struct ipa_mem *ipa_mem_find(struct ipa *ipa, enum ipa_mem_id mem_id) in ipa_mem_find() argument 33 for (i = 0; i < ipa->mem_count; i++) { in ipa_mem_find() 34 const struct ipa_mem *mem = &ipa->mem[i]; in ipa_mem_find() 36 if (mem->id == mem_id) in ipa_mem_find() 47 struct ipa *ipa = container_of(trans->gsi, struct ipa, gsi); in ipa_mem_zero_region_add() local [all …]
|
D | ipa_reg.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2024 Linaro Ltd. 10 #include "ipa.h" 13 /* Is this register ID valid for the current IPA version? */ 14 static bool ipa_reg_id_valid(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg_id_valid() argument 16 enum ipa_version version = ipa->version; in ipa_reg_id_valid() 102 const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg() argument 104 if (WARN(!ipa_reg_id_valid(ipa, reg_id), "invalid reg %u\n", reg_id)) in ipa_reg() 107 return reg(ipa->regs, reg_id); in ipa_reg() [all …]
|
D | ipa_uc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2024 Linaro Ltd. 12 #include "ipa.h" 19 * DOC: The IPA embedded microcontroller 21 * The IPA incorporates a microcontroller that is able to do some additional 31 * A 128 byte block of structured memory within the IPA SRAM is used together 33 * AP and the IPA microcontroller. Each side writes data to the shared area 45 * struct ipa_uc_mem_area - AP/microcontroller shared memory area 46 * @command: command code (AP->microcontroller) [all …]
|
D | ipa_cmd.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2024 Linaro Ltd. 10 #include <linux/dma-direction.h> 15 #include "ipa.h" 23 * DOC: IPA Immediate Commands 25 * The AP command TX endpoint is used to issue immediate commands to the IPA. 26 * An immediate command is generally used to request the IPA do something 31 * has a well-defined format, having a payload of a known length. This 74 /* For IPA v4.0+, the pipeline clear options are encoded in the opcode */ [all …]
|
D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 3 # Makefile for the Qualcomm IPA driver. 7 # Some IPA versions can reuse another set of GSI register definitions. 12 obj-$(CONFIG_QCOM_IPA) += ipa.o 14 ipa-y := ipa_main.o ipa_power.o ipa_reg.o ipa_mem.o \ 21 ipa-y += $(IPA_REG_VERSIONS:%=reg/ipa_reg-v%.o) 23 ipa-y += $(GSI_REG_VERSIONS:%=reg/gsi_reg-v%.o) 25 ipa-y += $(IPA_DATA_VERSIONS:%=data/ipa_data-v%.o)
|
D | ipa_reg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2024 Linaro Ltd. 9 #include "reg.h" 13 struct ipa; 16 * DOC: IPA Registers 18 * IPA registers are located within the "ipa-reg" address space defined by 22 * All IPA registers are 32 bits wide. 25 * instances of something. For example, each IPA endpoint has an set of 33 * Each version of IPA implements an array of ipa_reg structures indexed [all …]
|
D | gsi_reg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2023 Linaro Ltd. 30 * function-like macro that takes a parameter used in the computation. 38 * (though the actual limit is hardware-dependent). 42 * (though the actual limit is hardware-dependent). 45 /* enum gsi_reg_id - GSI register IDs */ 47 INTER_EE_SRC_CH_IRQ_MSK, /* IPA v3.5+ */ 48 INTER_EE_SRC_EV_CH_IRQ_MSK, /* IPA v3.5+ */ 77 HW_PARAM_2, /* IPA v3.5.1+ */ [all …]
|
D | gsi.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2018-2024 Linaro Ltd. 23 #include "reg.h" 26 * DOC: The IPA Generic Software Interface 28 * The generic software interface (GSI) is an integral component of the IPA, 29 * providing a well-defined communication layer between the AP subsystem 30 * and the IPA core. The modem uses the GSI layer as well. 32 * -------- --------- 34 * | AP +<---. .----+ Modem | [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/net/ |
D | qcom,ipa.yaml | 1 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/net/qcom,ipa.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm IP Accelerator (IPA) 10 - Alex Elder <[email protected]> 13 This binding describes the Qualcomm IPA. The IPA is capable of offloading 17 The IPA sits between multiple independent "execution environments," 18 including the Application Processor (AP) and the modem. The IPA presents 20 The GSI is an integral part of the IPA, but it is logically isolated [all …]
|
/linux-6.14.4/arch/arm64/kvm/hyp/nvhe/ |
D | mem_protect.c | 1 // SPDX-License-Identifier: GPL-2.0-only 33 hyp_spin_lock(&vm->lock); in guest_lock_component() 40 hyp_spin_unlock(&vm->lock); in guest_unlock_component() 128 /* The host stage 2 is id-mapped, so use parange for T0SZ */ in prepare_host_vtcr() 145 mmu->arch = &host_mmu.arch; in kvm_host_prepare_stage2() 157 mmu->pgd_phys = __hyp_pa(host_mmu.pgt.pgd); in kvm_host_prepare_stage2() 158 mmu->pgt = &host_mmu.pgt; in kvm_host_prepare_stage2() 159 atomic64_set(&mmu->vmid.id, 0); in kvm_host_prepare_stage2() 172 void *addr = hyp_alloc_pages(¤t_vm->pool, get_order(size)); in guest_s2_zalloc_pages_exact() 186 hyp_put_page(¤t_vm->pool, addr + (i * PAGE_SIZE)); in guest_s2_free_pages_exact() [all …]
|
/linux-6.14.4/arch/arm/boot/dts/qcom/ |
D | qcom-sdx55.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 9 #include <dt-bindings/clock/qcom,gcc-sdx55.h> 10 #include <dt-bindings/clock/qcom,rpmh.h> 11 #include <dt-bindings/gpio/gpio.h> 12 #include <dt-bindings/interconnect/qcom,sdx55.h> 13 #include <dt-bindings/interrupt-controller/arm-gic.h> 14 #include <dt-bindings/power/qcom-rpmpd.h> 15 #include <dt-bindings/soc/qcom,rpmh-rsc.h> 18 #address-cells = <1>; 19 #size-cells = <1>; [all …]
|
D | qcom-sdx65.dtsi | 1 // SPDX-License-Identifier: BSD-3-Clause 9 #include <dt-bindings/clock/qcom,gcc-sdx65.h> 10 #include <dt-bindings/clock/qcom,rpmh.h> 11 #include <dt-bindings/gpio/gpio.h> 12 #include <dt-bindings/interrupt-controller/arm-gic.h> 13 #include <dt-bindings/power/qcom-rpmpd.h> 14 #include <dt-bindings/soc/qcom,rpmh-rsc.h> 15 #include <dt-bindings/interconnect/qcom,sdx65.h> 18 #address-cells = <1>; 19 #size-cells = <1>; [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/interconnect/ |
D | qcom,sdm660.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm SDM660 Network-On-Chip interconnect 10 - Konrad Dybcio <[email protected]> 19 - qcom,sdm660-a2noc 20 - qcom,sdm660-bimc 21 - qcom,sdm660-cnoc 22 - qcom,sdm660-gnoc 23 - qcom,sdm660-mnoc [all …]
|
D | qcom,sm6115.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm SM6115 Network-On-Chip interconnect 10 - Konrad Dybcio <[email protected]> 19 - qcom,sm6115-bimc 20 - qcom,sm6115-cnoc 21 - qcom,sm6115-snoc 23 reg: 30 clock-names: [all …]
|
D | qcom,qcs615-rpmh.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 3 --- 4 $id: http://devicetree.org/schemas/interconnect/qcom,qcs615-rpmh.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: Qualcomm RPMh Network-On-Chip Interconnect on QCS615 10 - Raviteja Laggyshetty <[email protected]> 20 See also: include/dt-bindings/interconnect/qcom,qcs615-rpmh.h 25 - qcom,qcs615-aggre1-noc 26 - qcom,qcs615-camnoc-virt 27 - qcom,qcs615-config-noc [all …]
|
/linux-6.14.4/tools/testing/selftests/kvm/lib/s390/ |
D | diag318_test_handler.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 23 * we create an ad-hoc VM here to handle the instruction then extract the 31 uint64_t reg; in diag318_handler() local 36 run = vcpu->run; in diag318_handler() 39 TEST_ASSERT(run->s390_sieic.icptcode == ICPT_INSTRUCTION, in diag318_handler() 40 "Unexpected intercept code: 0x%x", run->s390_sieic.icptcode); in diag318_handler() 41 TEST_ASSERT((run->s390_sieic.ipa & 0xff00) == IPA0_DIAG, in diag318_handler() 42 "Unexpected IPA0 code: 0x%x", (run->s390_sieic.ipa & 0xff00)); in diag318_handler() 44 reg = (run->s390_sieic.ipa & 0x00f0) >> 4; in diag318_handler() 45 diag318_info = run->s.regs.gprs[reg]; in diag318_handler()
|
D | ucall.c | 1 // SPDX-License-Identifier: GPL-2.0 11 struct kvm_run *run = vcpu->run; in ucall_arch_get_ucall() 13 if (run->exit_reason == KVM_EXIT_S390_SIEIC && in ucall_arch_get_ucall() 14 run->s390_sieic.icptcode == 4 && in ucall_arch_get_ucall() 15 (run->s390_sieic.ipa >> 8) == 0x83 && /* 0x83 means DIAGNOSE */ in ucall_arch_get_ucall() 16 (run->s390_sieic.ipb >> 16) == 0x501) { in ucall_arch_get_ucall() 17 int reg = run->s390_sieic.ipa & 0xf; in ucall_arch_get_ucall() local 19 return (void *)run->s.regs.gprs[reg]; in ucall_arch_get_ucall()
|
/linux-6.14.4/arch/s390/kvm/ |
D | diag.c | 1 // SPDX-License-Identifier: GPL-2.0 14 #include <asm/virtio-ccw.h> 15 #include "kvm-s390.h" 17 #include "trace-s390.h" 25 start = vcpu->run->s.regs.gprs[(vcpu->arch.sie_block->ipa & 0xf0) >> 4]; in diag_release_pages() 26 end = vcpu->run->s.regs.gprs[vcpu->arch.sie_block->ipa & 0xf] + PAGE_SIZE; in diag_release_pages() 27 vcpu->stat.instruction_diagnose_10++; in diag_release_pages() 40 gmap_discard(vcpu->arch.gmap, start, end); in diag_release_pages() 48 gmap_discard(vcpu->arch.gmap, start, prefix); in diag_release_pages() 50 gmap_discard(vcpu->arch.gmap, 0, PAGE_SIZE); in diag_release_pages() [all …]
|
/linux-6.14.4/tools/testing/selftests/kvm/s390/ |
D | sync_regs_test.c | 1 // SPDX-License-Identifier: GPL-2.0-only 37 #define REG_COMPARE(reg) \ argument 38 TEST_ASSERT(left->reg == right->reg, \ 39 "Register " #reg \ 41 left->reg, right->reg) 43 #define REG_COMPARE32(reg) \ argument 44 TEST_ASSERT(left->reg == right->reg, \ 45 "Register " #reg \ 47 left->reg, right->reg) 76 struct kvm_run *run = vcpu->run; in test_read_invalid() [all …]
|
/linux-6.14.4/drivers/net/ipa/reg/ |
D | ipa_reg-v3.1.c | 1 // SPDX-License-Identifier: GPL-2.0 3 /* Copyright (C) 2022-2024 Linaro Ltd. */ 18 /* Bits 5-31 reserved */ 41 /* Bits 17-31 reserved */ 52 /* Bits 22-23 reserved */ 54 /* Bits 25-31 reserved */ 69 /* Bits 8-31 reserved */ 83 /* Bits 1-3 reserved */ 85 /* Bits 5-7 reserved */ 87 /* Bits 9-11 reserved */ [all …]
|