| /linux/drivers/pci/endpoint/ |
| 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 | Makefile | 7 obj-$(CONFIG_PCI_ENDPOINT) += pci-epc-core.o pci-epf-core.o\ 8 pci-epc-mem.o functions/
|
| /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/cadence/ |
| H A D | pcie-cadence-ep.c | 11 #include <linux/pci-epc.h> 38 static int cdns_pcie_ep_write_header(struct pci_epc *epc, u8 fn, u8 vfn, in cdns_pcie_ep_write_header() argument 41 struct cdns_pcie_ep *ep = epc_get_drvdata(epc); in cdns_pcie_ep_write_header() 48 dev_err(&epc->dev, "Only Virtual Function #1 has deviceID\n"); in cdns_pcie_ep_write_header() 81 static int cdns_pcie_ep_set_bar(struct pci_epc *epc, u8 fn, u8 vfn, in cdns_pcie_ep_set_bar() argument 84 struct cdns_pcie_ep *ep = epc_get_drvdata(epc); in cdns_pcie_ep_set_bar() 152 static void cdns_pcie_ep_clear_bar(struct pci_epc *epc, u8 fn, u8 vfn, in cdns_pcie_ep_clear_bar() argument 155 struct cdns_pcie_ep *ep = epc_get_drvdata(epc); in cdns_pcie_ep_clear_bar() 185 static int cdns_pcie_ep_map_addr(struct pci_epc *epc, u8 fn, u8 vfn, in cdns_pcie_ep_map_addr() argument 188 struct cdns_pcie_ep *ep = epc_get_drvdata(epc); in cdns_pcie_ep_map_addr() [all …]
|
| /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/controller/dwc/ |
| H A D | pcie-designware-ep.c | 15 #include <linux/pci-epc.h> 65 funcs = pci->ep.epc->max_functions; in dw_pcie_ep_reset_bar() 85 static int dw_pcie_ep_write_header(struct pci_epc *epc, u8 func_no, u8 vfunc_no, in dw_pcie_ep_write_header() argument 88 struct dw_pcie_ep *ep = epc_get_drvdata(epc); in dw_pcie_ep_write_header() 353 static void dw_pcie_ep_clear_bar(struct pci_epc *epc, u8 func_no, u8 vfunc_no, in dw_pcie_ep_clear_bar() argument 356 struct dw_pcie_ep *ep = epc_get_drvdata(epc); in dw_pcie_ep_clear_bar() 490 static int dw_pcie_ep_set_bar(struct pci_epc *epc, u8 func_no, u8 vfunc_no, in dw_pcie_ep_set_bar() argument 493 struct dw_pcie_ep *ep = epc_get_drvdata(epc); in dw_pcie_ep_set_bar() 621 static u64 dw_pcie_ep_align_addr(struct pci_epc *epc, u64 pci_addr, in dw_pcie_ep_align_addr() argument 624 struct dw_pcie_ep *ep = epc_get_drvdata(epc); in dw_pcie_ep_align_addr() [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/drivers/pci/endpoint/functions/ |
| H A D | pci-epf-test.c | 19 #include <linux/pci-epc.h> 263 filter.dev = epf->epc->dev.parent; in pci_epf_test_init_dma_chan() 364 struct pci_epc *epc = epf->epc; in pci_epf_test_copy() local 393 ret = pci_epc_mem_map(epc, epf->func_no, epf->vfunc_no, in pci_epf_test_copy() 401 ret = pci_epc_mem_map(epf->epc, epf->func_no, epf->vfunc_no, in pci_epf_test_copy() 406 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, in pci_epf_test_copy() 433 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &dst_map); in pci_epf_test_copy() 434 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &src_map); in pci_epf_test_copy() 443 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &dst_map); in pci_epf_test_copy() 444 pci_epc_mem_unmap(epc, epf->func_no, epf->vfunc_no, &src_map); in pci_epf_test_copy() [all …]
|
| /linux/arch/riscv/kernel/ |
| H A D | traps_misaligned.c | 146 static inline int get_insn(struct pt_regs *regs, ulong epc, ulong *r_insn) in get_insn() argument 150 if (epc & 0x2) { in get_insn() 153 if (__read_insn(regs, insn, epc, u16)) in get_insn() 164 epc += sizeof(u16); in get_insn() 165 if (__read_insn(regs, tmp, epc, u16)) in get_insn() 171 if (__read_insn(regs, insn, epc, u32)) in get_insn() 196 unsigned long epc = regs->epc; in handle_vector_misaligned_load() local 199 if (get_insn(regs, epc, &insn)) in handle_vector_misaligned_load() 205 regs->epc = epc + INSN_LEN(insn); in handle_vector_misaligned_load() 210 regs->epc = epc; in handle_vector_misaligned_load() [all …]
|
| 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 | 152 do_trap_error(regs, signo, code, regs->epc, "Oops - " str); \ 157 do_trap_error(regs, signo, code, regs->epc, "Oops - " str); \ 181 do_trap_error(regs, SIGILL, ILL_ILLOPC, regs->epc, in do_trap_insn_illegal() 189 do_trap_error(regs, SIGILL, ILL_ILLOPC, regs->epc, in do_trap_insn_illegal() 229 do_trap_error(regs, SIGBUS, BUS_ADRALN, regs->epc, in do_trap_misaligned() 292 force_sig_fault(SIGTRAP, TRAP_BRKPT, (void __user *)regs->epc); in handle_break() 298 else if (report_bug(regs->epc, regs) == BUG_TRAP_TYPE_WARN || in handle_break() 300 regs->epc += get_break_insn_length(regs->epc); in handle_break() 330 regs->epc += 4; in do_trap_ecall_u() 349 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/x86/kernel/cpu/sgx/ |
| H A D | main.c | 40 /* Nodes with one or more EPC sections. */ 53 * Reset post-kexec EPC pages to the uninitialized state. The pages are removed 468 * __sgx_alloc_epc_page() - Allocate an EPC page 470 * Iterate through NUMA nodes and reserve ia free EPC page to the caller. Start 474 * - an EPC page: A borrowed EPC pages were available. 475 * - NULL: Out of EPC pages. 484 * Try local node first. If it doesn't have an EPC section, in __sgx_alloc_epc_page() 506 * @page: EPC page 521 * @page: EPC page 548 * sgx_alloc_epc_page() - Allocate an EPC page [all …]
|
| H A D | virt.c | 29 * virtual EPC instances, and the lock to protect it. 43 /* Calculate index of EPC page in virtual EPC's page_array */ in __sgx_vepc_fault() 118 * Take a previously guest-owned EPC page and return it to the in sgx_vepc_remove_page() 119 * general EPC page pool. in sgx_vepc_remove_page() 137 * virtual EPC have been EREMOVE'd. See comments in below in in sgx_vepc_free_page() 140 * The user of virtual EPC (KVM) needs to guarantee there's no in sgx_vepc_free_page() 213 * only had children in this 'epc' area. in sgx_vepc_release()
|
| /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
|
| H A D | entry.S | 213 /* increase epc for continue */ 214 mfcr a0, epc 216 mtcr a0, 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
|