Home
last modified time | relevance | path

Searched full:epc (Results 1 – 25 of 77) sorted by relevance

1234

/linux/drivers/pci/endpoint/
H A Dpci-epc-core.c3 * PCI Endpoint *Controller* (EPC) library
13 #include <linux/pci-epc.h>
23 struct pci_epc *epc = *(struct pci_epc **)res; in devm_pci_epc_release() local
25 pci_epc_destroy(epc); in devm_pci_epc_release()
30 * @epc: epc returned by pci_epc_get()
34 void pci_epc_put(struct pci_epc *epc) in pci_epc_put() argument
36 if (IS_ERR_OR_NULL(epc)) in pci_epc_put()
39 module_put(epc->ops->owner); in pci_epc_put()
40 put_device(&epc->dev); in pci_epc_put()
54 struct pci_epc *epc; in pci_epc_get() local
[all …]
H A Dpci-epc-mem.c13 #include <linux/pci-epc.h>
40 * @epc: the EPC device that invoked pci_epc_mem_init
47 int pci_epc_multi_mem_init(struct pci_epc *epc, in pci_epc_multi_mem_init() argument
60 epc->num_windows = 0; in pci_epc_multi_mem_init()
65 epc->windows = kzalloc_objs(*epc->windows, num_windows); in pci_epc_multi_mem_init()
66 if (!epc->windows) in pci_epc_multi_mem_init()
98 epc->windows[i] = mem; in pci_epc_multi_mem_init()
101 epc->mem = epc->windows[0]; in pci_epc_multi_mem_init()
102 epc->num_windows = num_windows; in pci_epc_multi_mem_init()
108 mem = epc->windows[i]; in pci_epc_multi_mem_init()
[all …]
H A Dpci-ep-msi.c3 * PCI Endpoint *Controller* (EPC) MSI library
18 #include <linux/pci-epc.h>
26 struct pci_epc *epc; in pci_epf_write_msi_msg() local
29 epc = pci_epc_get(dev_name(msi_desc_to_dev(desc))); in pci_epf_write_msi_msg()
30 if (IS_ERR(epc)) in pci_epf_write_msi_msg()
33 epf = list_first_entry_or_null(&epc->pci_epf, struct pci_epf, list); in pci_epf_write_msi_msg()
38 pci_epc_put(epc); in pci_epf_write_msi_msg()
45 struct pci_epc *epc = epf->epc; in pci_epf_alloc_doorbell_embedded() local
52 count = pci_epc_get_aux_resources_count(epc, epf->func_no, in pci_epf_alloc_doorbell_embedded()
64 ret = pci_epc_get_aux_resources(epc, epf->func_no, epf->vfunc_no, in pci_epf_alloc_doorbell_embedded()
[all …]
H A DMakefile7 obj-$(CONFIG_PCI_ENDPOINT) += pci-epc-core.o pci-epf-core.o\
8 pci-epc-mem.o functions/
/linux/include/linux/
H A Dpci-epc.h3 * PCI Endpoint *Controller* (EPC) header file
36 * struct pci_epc_map - information about EPC memory for mapping a RC PCI
44 * @phys_base: base physical address of the allocated EPC memory for mapping the
47 * @virt_base: base virtual address of the allocated EPC memory for mapping the
69 * EPC backends may expose auxiliary blocks (e.g. DMA engines) by mapping their
106 * struct pci_epc_ops - set of function pointers for performing EPC operations
127 * @get_features: ops to get the features supported by the EPC
134 int (*write_header)(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
136 int (*set_bar)(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
138 void (*clear_bar)(struct pci_epc *epc, u8 func_no, u8 vfunc_no,
[all …]
H A Dpci-epf.h60 * @bind: ops to perform when a EPC device has been bound to EPF device
61 * @unbind: ops to perform when a binding has been lost between a EPC device
73 * struct pci_epc_event_ops - Callbacks for capturing the EPC events
74 * @epc_init: Callback for the EPC initialization complete event
75 * @epc_deinit: Callback for the EPC deinitialization event
76 * @link_up: Callback for the EPC link up event
77 * @link_down: Callback for the EPC link down event
78 * @bus_master_enable: Callback for the EPC Bus Master Enable event
119 * complete BAR layout. This allows an EPC driver to program multiple
202 * @epc: the EPC device to which this EPF device is bound
[all …]
/linux/arch/mips/kernel/
H A Dbranch.c32 long epc = regs->cp0_epc; in __isa_exception_epc() local
35 if (__get_user(inst, (u16 __user *) msk_isa16_mode(epc))) { in __isa_exception_epc()
38 return epc; in __isa_exception_epc()
45 epc += 4; in __isa_exception_epc()
47 epc += 2; in __isa_exception_epc()
49 epc += 2; in __isa_exception_epc()
51 epc += 4; in __isa_exception_epc()
53 return epc; in __isa_exception_epc()
326 long epc; in __MIPS16e_compute_return_epc() local
328 epc = regs->cp0_epc; in __MIPS16e_compute_return_epc()
[all …]
H A Dkprobes.c192 * result of evaluation would be the updated epc. The insturction in delayslot
205 long epc; in evaluate_branch_instruction() local
208 epc = regs->cp0_epc; in evaluate_branch_instruction()
209 if (epc & 3) in evaluate_branch_instruction()
229 …pr_notice("Failed to emulate branch instruction because of unaligned epc - sending SIGBUS to %s.\n… in evaluate_branch_instruction()
264 * epc to be restored.
/linux/drivers/pci/controller/
H A Dpcie-rockchip-ep.c18 #include <linux/pci-epc.h>
29 * @epc: PCI EPC device
50 struct pci_epc *epc; member
114 static int rockchip_pcie_ep_write_header(struct pci_epc *epc, u8 fn, u8 vfn, in rockchip_pcie_ep_write_header() argument
118 struct rockchip_pcie_ep *ep = epc_get_drvdata(epc); in rockchip_pcie_ep_write_header()
151 static int rockchip_pcie_ep_set_bar(struct pci_epc *epc, u8 fn, u8 vfn, in rockchip_pcie_ep_set_bar() argument
154 struct rockchip_pcie_ep *ep = epc_get_drvdata(epc); in rockchip_pcie_ep_set_bar()
219 static void rockchip_pcie_ep_clear_bar(struct pci_epc *epc, u8 fn, u8 vfn, in rockchip_pcie_ep_clear_bar() argument
222 struct rockchip_pcie_ep *ep = epc_get_drvdata(epc); in rockchip_pcie_ep_clear_bar()
253 static u64 rockchip_pcie_ep_align_addr(struct pci_epc *epc, u64 pci_addr, in rockchip_pcie_ep_align_addr() argument
[all …]
/linux/drivers/pci/endpoint/functions/
H A Dpci-epf-ntb.c42 #include <linux/pci-epc.h>
83 struct epf_ntb_epc *epc[2]; member
95 struct pci_epc *epc; member
146 struct pci_epc *epc; in epf_ntb_link_up() local
152 ntb_epc = ntb->epc[type]; in epf_ntb_link_up()
153 epc = ntb_epc->epc; in epf_ntb_link_up()
163 ret = pci_epc_raise_irq(epc, func_no, vfunc_no, irq_type, 1); in epf_ntb_link_up()
165 dev_err(&epc->dev, in epf_ntb_link_up()
244 struct pci_epc *epc; in epf_ntb_configure_mw() local
248 ntb_epc = ntb->epc[type]; in epf_ntb_configure_mw()
[all …]
H A Dpci-epf-test.c19 #include <linux/pci-epc.h>
260 filter.dev = epf->epc->dev.parent; in pci_epf_test_init_dma_chan()
361 struct pci_epc *epc = epf->epc; in pci_epf_test_copy() local
390 ret = pci_epc_mem_map(epc, epf->func_no, epf->vfunc_no, in pci_epf_test_copy()
398 ret = pci_epc_mem_map(epf->epc, epf->func_no, epf->vfunc_no, in pci_epf_test_copy()
403 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, in pci_epf_test_copy()
430 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &dst_map); in pci_epf_test_copy()
431 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &src_map); in pci_epf_test_copy()
440 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &dst_map); in pci_epf_test_copy()
441 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &src_map); in pci_epf_test_copy()
[all …]
H A Dpci-epf-vntb.c47 #include <linux/pci-epc.h>
240 ret = pci_epc_map_addr(ntb->epf->epc, func_no, vfunc_no, phys_addr, addr, size); in epf_ntb_configure_mw()
242 dev_err(&ntb->epf->epc->dev, in epf_ntb_configure_mw()
257 pci_epc_unmap_addr(ntb->epf->epc, in epf_ntb_teardown_mw()
364 * @ntb: EPC associated with one of the HOST which holds peer's outbound
387 pci_epc_clear_bar(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no, epf_bar); in epf_ntb_config_sspad_bar_clear()
416 ret = pci_epc_set_bar(ntb->epf->epc, func_no, vfunc_no, epf_bar); in epf_ntb_config_sspad_bar_set()
458 const struct pci_epc_features *epc_features = pci_epc_get_features(epf->epc, in epf_ntb_config_spad_bar_alloc()
510 epc_features = pci_epc_get_features(ntb->epf->epc, ntb->epf->func_no, ntb->epf->vfunc_no); in epf_ntb_configure_interrupt()
524 ret = pci_epc_set_msi(ntb->epf->epc, in epf_ntb_configure_interrupt()
[all …]
/linux/Documentation/arch/x86/
H A Dsgx.rst37 SGX utilizes an *Enclave Page Cache (EPC)* to store pages that are associated
56 Regular EPC pages contain the code and data of an enclave.
64 number for a page evicted from the EPC.
69 The processor tracks EPC pages in a hardware metadata structure called the
70 *Enclave Page Cache Map (EPCM)*. The EPCM contains an entry for each EPC page
146 EPC sanitization
155 The sanitization is done by going through EPC address space and applying the
231 EPC leaks
234 When EPC page leaks happen, a WARNING like this is shown in dmesg:
236 "EREMOVE returned ... and an EPC page was leaked. SGX may become unusable..."
[all …]
/linux/arch/riscv/kernel/
H A Dcfi.c11 * Returns the target address and the expected type when regs->epc points
31 * ebreak ; <- regs->epc in decode_cfi_insn()
38 if (get_kernel_nofault(insn, (void *)regs->epc - 4)) in decode_cfi_insn()
45 if (get_kernel_nofault(insn, (void *)regs->epc) || in decode_cfi_insn()
46 get_kernel_nofault(insn, (void *)regs->epc + GET_INSN_LENGTH(insn))) in decode_cfi_insn()
70 if (!is_cfi_trap(regs->epc)) in handle_cfi_failure()
74 return report_cfi_failure_noaddr(regs, regs->epc); in handle_cfi_failure()
76 return report_cfi_failure(regs, regs->epc, &target, type); in handle_cfi_failure()
H A Dtraps.c151 do_trap_error(regs, signo, code, regs->epc, "Oops - " str); \
156 do_trap_error(regs, signo, code, regs->epc, "Oops - " str); \
180 do_trap_error(regs, SIGILL, ILL_ILLOPC, regs->epc, in do_trap_insn_illegal()
188 do_trap_error(regs, SIGILL, ILL_ILLOPC, regs->epc, in do_trap_insn_illegal()
228 do_trap_error(regs, SIGBUS, BUS_ADRALN, regs->epc, in do_trap_misaligned()
293 force_sig_fault(SIGTRAP, TRAP_BRKPT, (void __user *)regs->epc); in handle_break()
299 else if (report_bug(regs->epc, regs) == BUG_TRAP_TYPE_WARN || in handle_break()
301 regs->epc += get_break_insn_length(regs->epc); in handle_break()
332 regs->epc += 4; in do_trap_ecall_u()
348 do_trap_error(regs, SIGILL, ILL_ILLTRP, regs->epc, in do_trap_ecall_u()
[all …]
H A Dkgdb.c39 unsigned long pc = regs->epc; in get_step_address()
201 {DBG_REG_EPC, GDB_SIZEOF_REG, offsetof(struct pt_regs, epc)},
255 regs->epc = pc; in kgdb_arch_set_pc()
283 regs->epc = addr; in kgdb_arch_update_addr()
333 type = kgdb_riscv_kgdbbreak(regs->epc); in kgdb_riscv_notify()
344 regs->epc += 4; in kgdb_riscv_notify()
H A Dsignal.c347 frame, (void *)regs->epc, (void *)regs->sp); in SYSCALL_DEFINE0()
468 regs->epc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame()
477 (void *)regs->epc, (void *)regs->ra, frame); in setup_rt_frame()
508 continue_addr = regs->epc; in arch_do_signal_or_restart()
525 regs->epc = restart_addr; in arch_do_signal_or_restart()
540 if (regs->epc == restart_addr && in arch_do_signal_or_restart()
546 regs->epc = continue_addr; in arch_do_signal_or_restart()
558 if (syscall && regs->epc == restart_addr && retval == -ERESTART_RESTARTBLOCK) in arch_do_signal_or_restart()
/linux/arch/mips/kvm/
H A Demulate.c46 long epc = instpc; in kvm_compute_return_epc() local
50 if (epc & 3) { in kvm_compute_return_epc()
51 kvm_err("%s: unaligned epc\n", __func__); in kvm_compute_return_epc()
56 err = kvm_get_badinstrp((u32 *)epc, vcpu, &insn.word); in kvm_compute_return_epc()
65 arch->gprs[insn.r_format.rd] = epc + 8; in kvm_compute_return_epc()
85 epc = epc + 4 + (insn.i_format.simmediate << 2); in kvm_compute_return_epc()
87 epc += 8; in kvm_compute_return_epc()
88 nextpc = epc; in kvm_compute_return_epc()
94 epc = epc + 4 + (insn.i_format.simmediate << 2); in kvm_compute_return_epc()
96 epc += 8; in kvm_compute_return_epc()
[all …]
H A Dtrace.h176 { KVM_TRACE_COP0(14, 0), "EPC" }, \
317 __field(unsigned long, epc)
325 __entry->epc = kvm_read_c0_guest_epc(&vcpu->arch.cop0);
332 TP_printk("EPC: 0x%08lx PC: 0x%08lx Status: 0x%08x Cause: 0x%08x BadVAddr: 0x%08lx",
333 __entry->epc,
/linux/arch/riscv/include/asm/
H A Dftrace.h128 unsigned long epc; member
161 return arch_ftrace_regs(fregs)->epc; in ftrace_regs_get_instruction_pointer()
167 arch_ftrace_regs(fregs)->epc = pc; in ftrace_regs_set_instruction_pointer()
206 arch_ftrace_regs(fregs)->epc = arch_ftrace_regs(fregs)->ra; in ftrace_override_function_with_return()
215 regs->epc = afregs->epc; in ftrace_partial_regs()
H A Dptrace.h16 unsigned long epc; member
74 return regs->epc; in instruction_pointer()
79 regs->epc = val; in instruction_pointer_set()
/linux/arch/riscv/mm/
H A Dextable.c26 regs->epc = get_ex_fixup(ex); in ex_handler_fixup()
57 regs->epc = get_ex_fixup(ex); in ex_handler_uaccess_err_zero()
78 regs->epc = get_ex_fixup(ex); in ex_handler_load_unaligned_zeropad()
86 ex = search_exception_tables(regs->epc); in fixup_exception()
/linux/include/uapi/linux/
H A Dzorro.h36 #define ZORRO_ID(manuf, prod, epc) \ argument
37 ((ZORRO_MANUF_##manuf << 16) | ((prod) << 8) | (epc))
48 * (epc). The epc has to be ANDed with the GVP_PRODMASK before the
/linux/arch/csky/kernel/
H A Datomic.S21 mfcr a3, epc
53 mtcr a3, epc
/linux/Documentation/devicetree/bindings/usb/
H A Drenesas,rzn1-usbf.yaml41 - description: The USBF EPC interrupt
42 - description: The USBF AHB-EPC interrupt

1234