| /linux/drivers/pci/endpoint/ |
| H A D | pci-epc-core.c | 3 * 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 D | pci-epc-mem.c | 13 #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 D | pci-ep-msi.c | 3 * 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 D | Makefile | 7 obj-$(CONFIG_PCI_ENDPOINT) += pci-epc-core.o pci-epf-core.o\ 8 pci-epc-mem.o functions/
|
| /linux/include/linux/ |
| H A D | pci-epc.h | 3 * 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 D | pci-epf.h | 60 * @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 D | branch.c | 32 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 D | kprobes.c | 192 * 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 D | pcie-rockchip-ep.c | 18 #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 D | pci-epf-ntb.c | 42 #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 D | pci-epf-test.c | 19 #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 D | pci-epf-vntb.c | 47 #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 D | sgx.rst | 37 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 D | cfi.c | 11 * 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 D | traps.c | 151 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 D | kgdb.c | 39 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 D | signal.c | 347 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 D | emulate.c | 46 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 D | trace.h | 176 { 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 D | ftrace.h | 128 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 D | ptrace.h | 16 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 D | extable.c | 26 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 D | zorro.h | 36 #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 D | atomic.S | 21 mfcr a3, epc 53 mtcr a3, epc
|
| /linux/Documentation/devicetree/bindings/usb/ |
| H A D | renesas,rzn1-usbf.yaml | 41 - description: The USBF EPC interrupt 42 - description: The USBF AHB-EPC interrupt
|