Home
last modified time | relevance | path

Searched +full:ipa +full:- +full:reg (Results 1 – 25 of 97) sorted by relevance

1234

/openbmc/linux/drivers/net/ipa/
H A Dipa_interrupt.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2022 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 …]
H A Dipa_main.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2023 Linaro Ltd.
22 #include "ipa.h"
41 * This driver supports the Qualcomm IP Accelerator (IPA), which is a
42 * networking component found in many Qualcomm SoCs. The IPA is connected
46 * The IPA is the conduit between the AP and the modem that carries network
50 * The IPA provides protocol checksum calculation, offloading this work
51 * from the AP. The IPA offers additional functionality, including routing,
53 * currently supported. Despite that, some resources--including routing
[all …]
H A Dipa_endpoint.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2019-2023 Linaro Ltd.
12 #include <linux/dma-direction.h>
16 #include "ipa.h"
27 #define IPA_REPLENISH_BATCH 16 /* Must be non-zero */
30 #define IPA_RX_BUFFER_OVERHEAD (PAGE_SIZE - SKB_MAX_ORDER(NET_SKB_PAD, 0))
32 /* Where to find the QMAP mux_id for a packet within modem-supplied metadata */
37 /** enum ipa_status_opcode - IPA status opcode field hardware values */
48 /** enum ipa_status_exception - IPA status exception field hardware values */
[all …]
H A Dipa_resource.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2022 Linaro Ltd.
10 #include "ipa.h"
16 * DOC: IPA Resources
18 * The IPA manages a set of resources internally for various purposes.
19 * A given IPA version has a fixed number of resource types, and a fixed
23 * Each version of IPA also has some number of resource groups. Each
29 static bool ipa_resource_limits_valid(struct ipa *ipa, in ipa_resource_limits_valid() argument
39 group_count = data->rsrc_group_src_count; in ipa_resource_limits_valid()
[all …]
H A Dipa_table.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2023 Linaro Ltd.
15 #include <linux/dma-mapping.h>
17 #include "ipa.h"
28 * DOC: IPA Filter and Route Tables
30 * The IPA has tables defined in its local (IPA-resident) memory that define
32 * endian 64-bit "slot" that holds the address of a rule definition. (The
38 * by all IPA hardware (IPA v4.2 doesn't support hashed tables).
41 * an object (such as a route or filter table) in IPA-resident memory must
[all …]
H A Dipa_reg.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2019-2023 Linaro Ltd.
9 #include "ipa.h"
12 /* Is this register ID valid for the current IPA version? */
13 static bool ipa_reg_id_valid(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg_id_valid() argument
15 enum ipa_version version = ipa->version; in ipa_reg_id_valid()
101 const struct reg *ipa_reg(struct ipa *ipa, enum ipa_reg_id reg_id) in ipa_reg() argument
103 if (WARN(!ipa_reg_id_valid(ipa, reg_id), "invalid reg %u\n", reg_id)) in ipa_reg()
106 return reg(ipa->regs, reg_id); in ipa_reg()
[all …]
H A Dipa_mem.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2019-2023 Linaro Ltd.
10 #include <linux/dma-mapping.h>
15 #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 …]
H A Dipa_uc.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2022 Linaro Ltd.
12 #include "ipa.h"
17 * DOC: The IPA embedded microcontroller
19 * The IPA incorporates a microcontroller that is able to do some additional
29 * A 128 byte block of structured memory within the IPA SRAM is used together
31 * AP and the IPA microcontroller. Each side writes data to the shared area
43 * struct ipa_uc_mem_area - AP/microcontroller shared memory area
44 * @command: command code (AP->microcontroller)
[all …]
H A Dipa_cmd.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2019-2023 Linaro Ltd.
11 #include <linux/dma-direction.h>
15 #include "ipa.h"
22 * DOC: IPA Immediate Commands
24 * The AP command TX endpoint is used to issue immediate commands to the IPA.
25 * An immediate command is generally used to request the IPA do something
30 * has a well-defined format, having a payload of a known length. This
73 /* For IPA v4.0+, the pipeline clear options are encoded in the opcode */
[all …]
H A DMakefile1 # 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)
H A Dipa_reg.h1 /* SPDX-License-Identifier: GPL-2.0 */
3 /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2023 Linaro Ltd.
13 #include "reg.h"
15 struct ipa;
18 * DOC: IPA Registers
20 * IPA registers are located within the "ipa-reg" address space defined by
24 * All IPA registers are 32 bits wide.
27 * instances of something. For example, each IPA endpoint has an set of
35 * Each version of IPA implements an array of ipa_reg structures indexed
[all …]
H A Dgsi_reg.h1 /* 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 …]
H A Dgsi.c1 // SPDX-License-Identifier: GPL-2.0
3 /* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2023 Linaro Ltd.
19 #include "reg.h"
28 * DOC: The IPA Generic Software Interface
30 * The generic software interface (GSI) is an integral component of the IPA,
31 * providing a well-defined communication layer between the AP subsystem
32 * and the IPA core. The modem uses the GSI layer as well.
34 * -------- ---------
36 * | AP +<---. .----+ Modem |
[all …]
/openbmc/linux/Documentation/devicetree/bindings/net/
H A Dqcom,ipa.yaml1 # 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 <elder@kernel.org>
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 …]
/openbmc/linux/arch/arm/boot/dts/qcom/
H A Dqcom-sdx65.dtsi1 // 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 …]
H A Dqcom-sdx55.dtsi1 // 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 …]
/openbmc/linux/tools/testing/selftests/kvm/lib/s390x/
H A Ddiag318_test_handler.c1 // 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()
H A Ducall.c1 // 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()
/openbmc/linux/tools/testing/selftests/kvm/s390x/
H A Dsync_regs_test.c1 // SPDX-License-Identifier: GPL-2.0-only
39 #define REG_COMPARE(reg) \ argument
40 TEST_ASSERT(left->reg == right->reg, \
41 "Register " #reg \
43 left->reg, right->reg)
45 #define REG_COMPARE32(reg) \ argument
46 TEST_ASSERT(left->reg == right->reg, \
47 "Register " #reg \
49 left->reg, right->reg)
78 struct kvm_run *run = vcpu->run; in test_read_invalid()
[all …]
/openbmc/linux/drivers/net/ipa/reg/
H A Dipa_reg-v4.2.c1 // SPDX-License-Identifier: GPL-2.0
7 #include "../ipa.h"
29 /* Bits 21-31 reserved */
65 /* Bits 30-31 reserved */
76 /* Bits 22-23 reserved */
78 /* Bits 25-31 reserved */
93 /* Bits 8-31 reserved */
101 /* Bits 8-15 reserved */
110 /* Bits 1-3 reserved */
112 /* Bits 5-7 reserved */
[all …]
H A Dipa_reg-v3.5.1.c1 // SPDX-License-Identifier: GPL-2.0
7 #include "../ipa.h"
16 /* Bits 5-31 reserved */
44 /* Bits 22-31 reserved */
55 /* Bits 22-23 reserved */
57 /* Bits 25-31 reserved */
72 /* Bits 8-31 reserved */
86 /* Bits 1-3 reserved */
88 /* Bits 5-7 reserved */
90 /* Bits 9-11 reserved */
[all …]
H A Dipa_reg-v3.1.c1 // SPDX-License-Identifier: GPL-2.0
7 #include "../ipa.h"
16 /* Bits 5-31 reserved */
39 /* Bits 17-31 reserved */
50 /* Bits 22-23 reserved */
52 /* Bits 25-31 reserved */
67 /* Bits 8-31 reserved */
81 /* Bits 1-3 reserved */
83 /* Bits 5-7 reserved */
85 /* Bits 9-11 reserved */
[all …]
H A Dipa_reg-v4.7.c1 // SPDX-License-Identifier: GPL-2.0
7 #include "../ipa.h"
30 /* Bits 22-31 reserved */
78 /* Bits 22-23 reserved */
80 /* Bits 25-31 reserved */
95 /* Bits 8-31 reserved */
103 /* Bits 8-15 reserved */
112 /* Bits 1-3 reserved */
114 /* Bits 5-7 reserved */
116 /* Bits 9-11 reserved */
[all …]
/openbmc/linux/arch/s390/kvm/
H A Ddiag.c1 // 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 …]
H A Dpriv.c1 // SPDX-License-Identifier: GPL-2.0
17 #include <asm/asm-offsets.h>
23 #include <asm/page-states.h>
29 #include "kvm-s390.h"
34 vcpu->stat.instruction_ri++; in handle_ri()
36 if (test_kvm_facility(vcpu->kvm, 64)) { in handle_ri()
38 vcpu->arch.sie_block->ecb3 |= ECB3_RI; in handle_ri()
47 if ((vcpu->arch.sie_block->ipa & 0xf) <= 4) in kvm_s390_handle_aa()
50 return -EOPNOTSUPP; in kvm_s390_handle_aa()
55 vcpu->stat.instruction_gs++; in handle_gs()
[all …]

1234