| /linux/arch/riscv/boot/dts/sifive/ |
| H A D | fu540-c000.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 2 /* Copyright (c) 2018-2019 SiFive, Inc */ 4 /dts-v1/; 6 #include <dt-bindings/clock/sifive-fu540-prci.h> 9 #address-cells = <2>; 10 #size-cells = <2>; 11 compatible = "sifive,fu540-c000", "sifive,fu540"; 23 #address-cells = <1>; 24 #size-cells = <0>; 28 i-cache-block-size = <64>; [all …]
|
| H A D | fu740-c000.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 4 /dts-v1/; 6 #include <dt-bindings/clock/sifive-fu740-prci.h> 9 #address-cells = <2>; 10 #size-cells = <2>; 11 compatible = "sifive,fu740-c000", "sifive,fu740"; 23 #address-cells = <1>; 24 #size-cells = <0>; 28 i-cache-block-size = <64>; 29 i-cache-sets = <128>; [all …]
|
| /linux/arch/powerpc/boot/dts/ |
| H A D | microwatt.dts | 1 /dts-v1/; 2 #include <dt-bindings/gpio/gpio.h> 5 #size-cells = <0x02>; 6 #address-cells = <0x02>; 8 compatible = "microwatt-soc"; 15 reserved-memory { 16 #size-cells = <0x02>; 17 #address-cells = <0x02>; 28 #clock-cells = <0>; 29 compatible = "fixed-clock"; [all …]
|
| /linux/arch/riscv/boot/dts/microchip/ |
| H A D | mpfs.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 2 /* Copyright (c) 2020-2021 Microchip Technology Inc */ 4 /dts-v1/; 5 #include "dt-bindings/clock/microchip,mpfs-clock.h" 8 #address-cells = <2>; 9 #size-cells = <2>; 14 #address-cells = <1>; 15 #size-cells = <0>; 16 timebase-frequency = <1000000>; 21 i-cache-block-size = <64>; [all …]
|
| /linux/Documentation/core-api/ |
| H A D | cachetlb.rst | 2 Cache and TLB Flushing Under Linux 7 This document describes the cache/tlb flushing interfaces called 17 thinking SMP cache/tlb flushing must be so inefficient, this is in 23 First, the TLB flushing interfaces, since they are the simplest. The 24 "TLB" is abstracted under Linux as something the cpu uses to cache 25 virtual-->physical address translations obtained from the software 27 possible for stale translations to exist in this "TLB" cache. 44 the TLB. After running, this interface must make sure that 47 there will be no entries in the TLB for 'mm'. 57 address translations from the TLB. After running, this [all …]
|
| /linux/arch/parisc/kernel/ |
| H A D | cache.c | 6 * Copyright (C) 1999-2006 Helge Deller <deller@gmx.de> (07-13-1999) 10 * Cache and TLB management 55 void flush_data_cache_local(void *); /* flushes local data-cache only */ 56 void flush_instruction_cache_local(void); /* flushes local code-cache only */ 62 * by software. We need a spinlock around all TLB flushes to ensure 125 test_bit(PG_dcache_dirty, &folio->flags.f)) { in __update_cache() 126 while (nr--) in __update_cache() 128 clear_bit(PG_dcache_dirty, &folio->flags.f); in __update_cache() 130 while (nr--) in __update_cache() 139 seq_printf(m, "I-cache\t\t: %ld KB\n", in show_cache_info() [all …]
|
| /linux/arch/arc/mm/ |
| H A D | tlb.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * TLB Management (flush/create/diagnostics) for MMUv3 and MMUv4 5 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 26 * Utility Routine to erase a J-TLB entry 63 /* Locate the TLB entry for this vaddr + ASID */ in tlb_entry_erase() 89 * with existing location. This will cause Write CMD to over-write in tlb_entry_insert() 95 /* setup the other half of TLB entry (pfn, rwx..) */ in tlb_entry_insert() 101 * which doesn't flush uTLBs. I'd rather be safe than sorry. in tlb_entry_insert() 131 * Un-conditionally (without lookup) erase the entire MMU contents 139 int num_tlb = mmu->sets * mmu->ways; in local_flush_tlb_all() [all …]
|
| H A D | tlbex.S | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * TLB Exception Handling for ARC 5 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 8 * -MMU v1: moved out legacy code into a separate file 9 * -MMU v3: PD{0,1} bits layout changed: They don't overlap anymore, 13 * -For MMU V2, we need not do heuristics at the time of committing a D-TLB 14 * entry, so that it doesn't knock out its I-TLB entry 15 * -Some more fine tuning: 19 * -Practically rewrote the I/D TLB Miss handlers 26 * -Passing ECR (Exception Cause REG) to do_page_fault( ) for printing [all …]
|
| /linux/Documentation/devicetree/bindings/riscv/ |
| H A D | cpus.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR MIT) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: RISC-V CPUs 10 - Paul Walmsley <paul.walmsley@sifive.com> 11 - Palmer Dabbelt <palmer@sifive.com> 12 - Conor Dooley <conor@kernel.org> 15 This document uses some terminology common to the RISC-V community 19 mandated by the RISC-V ISA: a PC and some registers. This 27 - $ref: /schemas/cpu.yaml# [all …]
|
| /linux/Documentation/arch/loongarch/ |
| H A D | introduction.rst | 1 .. SPDX-License-Identifier: GPL-2.0 7 LoongArch is a new RISC ISA, which is a bit like MIPS or RISC-V. There are 8 currently 3 variants: a reduced 32-bit version (LA32R), a standard 32-bit 9 version (LA32S) and a 64-bit version (LA64). There are 4 privilege levels 22 ---- 24 LoongArch has 32 GPRs ( ``$r0`` ~ ``$r31`` ); each one is 32-bit wide in LA32 25 and 64-bit wide in LA64. ``$r0`` is hard-wired to zero, and the other registers 26 are not architecturally special. (Except ``$r1``, which is hard-wired as the 30 the LoongArch ELF psABI spec, in :ref:`References <loongarch-references>`: 40 ``$r4``-``$r11`` ``$a0``-``$a7`` Argument registers No [all …]
|
| /linux/drivers/parisc/ |
| H A D | ccio-dma.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 ** ccio-dma.c: 4 ** DMA management routines for first generation cache-coherent machines. 9 ** (c) Copyright 2000 Hewlett-Packard Company 13 ** the I/O MMU - basically what x86 does. 16 ** o outbound DMA is slower - U2 won't prefetch data (GSC+ XQL signal). 17 ** o Inbound DMA less efficient - U2 can't use DMA_FAST attribute. 19 ** o Doesn't work under PCX-U/U+ machines since they didn't follow 20 ** the coherency design originally worked out. Only PCX-W does. 34 #include <linux/dma-map-ops.h> [all …]
|
| /linux/arch/parisc/include/uapi/asm/ |
| H A D | pdc.h | 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 14 #define PDC_BAD_PROC -1 /* Called non-existent procedure*/ 15 #define PDC_BAD_OPTION -2 /* Called with non-existent option */ 16 #define PDC_ERROR -3 /* Call could not complete without an error */ 17 #define PDC_NE_MOD -5 /* Module not found */ 18 #define PDC_NE_CELL_MOD -7 /* Cell module not found */ 19 #define PDC_NE_BOOTDEV -9 /* Cannot locate a console device or boot device */ 20 #define PDC_INVALID_ARG -10 /* Called with an invalid argument */ 21 #define PDC_BUS_POW_WARN -12 /* Call could not complete in allowed power budget */ 22 #define PDC_NOT_NARROW -17 /* Narrow mode not supported */ [all …]
|
| /linux/arch/riscv/kvm/ |
| H A D | tlb.c | 1 // SPDX-License-Identifier: GPL-2.0 16 #include <asm/insn-def.h> 166 vcpu->arch.last_exit_cpu == vcpu->cpu) in kvm_riscv_local_tlb_sanitize() 170 * On RISC-V platforms with hardware VMID support, we share same in kvm_riscv_local_tlb_sanitize() 172 * have stale G-stage TLB entries on the current Host CPU due to in kvm_riscv_local_tlb_sanitize() 176 * To cleanup stale TLB entries, we simply flush all G-stage TLB in kvm_riscv_local_tlb_sanitize() 180 vmid = READ_ONCE(vcpu->kvm->arch.vmid.vmid); in kvm_riscv_local_tlb_sanitize() 184 * Flush VS-stage TLB entries for implementation where VS-stage in kvm_riscv_local_tlb_sanitize() 185 * TLB does not cahce guest physical address and VMID. in kvm_riscv_local_tlb_sanitize() 199 struct kvm_vmid *v = &vcpu->kvm->arch.vmid; in kvm_riscv_tlb_flush_process() [all …]
|
| /linux/arch/sparc/kernel/ |
| H A D | tsb.S | 1 /* SPDX-License-Identifier: GPL-2.0 */ 17 /* Invoked from TLB miss handler, we are in the 23 * %g3: FAULT_CODE_{D,I}TLB 46 * %g1 -- PAGE_SIZE TSB entry address 47 * %g3 -- FAULT_CODE_{D,I}TLB 48 * %g4 -- missing virtual address 49 * %g6 -- TAG TARGET (vaddr >> 22) 67 cmp %g5, -1 106 * %g1 -- TSB entry address 107 * %g3 -- FAULT_CODE_{D,I}TLB [all …]
|
| H A D | ktlb.S | 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* arch/sparc64/kernel/ktlb.S: Kernel mapping TLB miss handling. 57 /* fallthrough to TLB load */ 70 * instruction get nop'd out and we get here to branch 71 * to the sun4v tlb load code. The registers are setup 78 * The sun4v TLB load wants the PTE in %g3 so we fix that 148 /* Index through the base page size TSB even for linear 169 /* fallthrough to TLB load */ 173 661: stxa %g5, [%g0] ASI_DTLB_DATA_IN ! Reload TLB 182 * instruction get nop'd out and we get here to branch [all …]
|
| /linux/tools/perf/Documentation/ |
| H A D | perf-mem.txt | 1 perf-mem(1) 5 ---- 6 perf-mem - Profile memory accesses 9 -------- 14 ----------- 20 and stores are sampled. Use the -t option to limit to loads or stores. 22 Note that on Intel systems the memory latency reported is the use-latency, 27 and kernel support is required. See linkperf:perf-arm-spe[1] for a setup guide. 31 On AMD this use IBS Op PMU to sample load-store operations. 34 -------------- [all …]
|
| /linux/tools/perf/pmu-events/arch/powerpc/power9/ |
| H A D | other.json | 50 …"BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from anothe… 65 "BriefDescription": "Read-write data cache collisions" 75 … "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 16G (hpt mode) or 1G (radix mode)" 85 …"BriefDescription": "A radix translation attempt missed in the TLB and all levels of page walk cac… 90 "BriefDescription": "D-cache invalidates sent over the reload bus to the core" 200 "BriefDescription": "Read-write data cache collisions" 280 …-word boundary, which causes it to require an additional slice than than what normally would be re… 300 "BriefDescription": "I-cache Invalidates sent over the realod bus to the core" 395 …-word boundary, which causes it to require an additional slice than than what normally would be re… 430 "BriefDescription": "TM Load (fav or non-fav) ran into conflict (failed)" [all …]
|
| H A D | pipeline.json | 10 "BriefDescription": "Number of I-ERAT reloads" 25 …"BriefDescription": "Finish stall because the NTF instruction was a multi-cycle instruction issued… 35 …"BriefDescription": "A Page Table Entry was loaded into the TLB from another chip's L4 on a differ… 40 …"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L2 without confl… 80 …"BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from anothe… 95 …"BriefDescription": "A Page Table Entry was loaded into the TLB with Modified (M) data from anothe… 110 "BriefDescription": "Data ERAT Miss (Data TLB Access) page size 4K" 115 …"BriefDescription": "A Page Table Entry was loaded into the TLB from local core's L3 without dispa… 120 …"BriefDescription": "Marked Data ERAT Miss (Data TLB Access) page size 16G (hpt mode) and 1G (radi… 160 …"BriefDescription": "A Page Table Entry was loaded into the TLB either shared or modified data fro… [all …]
|
| /linux/drivers/firmware/efi/ |
| H A D | cper-arm.c | 1 // SPDX-License-Identifier: GPL-2.0 70 "Local management operation (processor initiated a TLB management operation that resulted in an error)", 71 "External management operation (processor raised a TLB error caused by another processor or device broadcasting TLB operations)", 139 printk("%scache level: %d\n", pfx, level); in cper_print_arm_err_info() 142 printk("%sTLB level: %d\n", pfx, level); in cper_print_arm_err_info() 145 printk("%saffinity level at which the bus error occurred: %d\n", in cper_print_arm_err_info() 237 printk("%sMIDR: 0x%016llx\n", pfx, proc->mid 314 int size = ALIGN(sizeof(*ctx_info) + ctx_info->size, 16); cper_print_proc_arm() local [all...] |
| /linux/arch/riscv/mm/ |
| H A D | tlbflush.c | 1 // SPDX-License-Identifier: GPL-2.0 33 * Flush entire TLB if number of entries to be flushed is greater 39 unsigned long size, in local_flush_tlb_range_threshold_asid() argument 43 unsigned long nr_ptes_in_range = DIV_ROUND_UP(size, stride); in local_flush_tlb_range_threshold_asid() 68 unsigned long size, unsigned long stride, unsigned long asid) in local_flush_tlb_range_asid() argument 70 if (size <= stride) in local_flush_tlb_range_asid() 72 else if (size == FLUSH_TLB_MAX_SIZE) in local_flush_tlb_range_asid() 75 local_flush_tlb_range_threshold_asid(start, size, stride, asid); in local_flush_tlb_range_asid() 81 local_flush_tlb_range_asid(start, end - start, PAGE_SIZE, FLUSH_TLB_NO_ASID); in local_flush_tlb_kernel_range() 102 unsigned long size; member [all …]
|
| /linux/arch/arm/mach-omap1/ |
| H A D | usb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 12 #include <linux/dma-map-ops.h> 15 #include <linux/soc/ti/omap1-io.h> 24 /* These routines should handle the standard chip-specific modes 27 * Some board-*.c files will need to set up additional mux options, 28 * like for suspend handling, vbus sensing, GPIOs, and the D+ pullup. 32 * - 1611B H2 (with usb1 mini-AB) using standard Mini-B or OTG cables 33 * - 5912 OSK OHCI (with usb0 standard-A), standard A-to-B cables 34 * - 5912 OSK UDC, with *nonstandard* A-to-A cable 35 * - 1510 Innovator UDC with bundled usb0 cable [all …]
|
| /linux/arch/mips/mm/ |
| H A D | tlbex.c | 6 * Synthesize TLB refill handlers at runtime. 10 * Copyright (C) 2006 Ralf Baechle (ralf@linux-mips.org) 34 #include <asm/cpu-type.h> 54 * TLB load/store/modify handlers. 133 * CVMSEG starts at address -32768 and extends for in scratchpad_offset() 137 return CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE * 128 - (8 * i) - 32768; in scratchpad_offset() 232 * TLB exception handlers. 243 pr_define("_PAGE_PRESENT_SHIFT %d\n", _PAGE_PRESENT_SHIFT); in output_pgtable_bits_defines() 244 pr_define("_PAGE_NO_READ_SHIFT %d\n", _PAGE_NO_READ_SHIFT); in output_pgtable_bits_defines() 245 pr_define("_PAGE_WRITE_SHIFT %d\n", _PAGE_WRITE_SHIFT); in output_pgtable_bits_defines() [all …]
|
| /linux/arch/arm/mm/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 17 A 32-bit RISC microprocessor based on the ARM7 processor core 36 A 32-bit RISC processor with 8kByte Cache, Write Buffer and 53 A 32-bit RISC processor with 8KB cache or 4KB variants, 69 A 32-bit RISC microprocessor based on the ARM9 processor core 147 instruction sequences for cache and TLB operations. Curiously, 166 Branch Target Buffer, Unified TLB and cache line size 16. 182 ARM940T is a member of the ARM9TDMI family of general- 184 instruction and 4KB data cases, each with a 4-word line 190 # ARM946E-S [all …]
|
| /linux/drivers/gpu/drm/msm/ |
| H A D | msm_iommu.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 #include <linux/adreno-smmu-priv.h> 8 #include <linux/io-pgtable.h> 31 const struct iommu_flush_ops *tlb; member 48 size_t size, size_t *count) in calc_pgsize() argument 55 /* Page sizes supported by the hardware and small enough for @size */ in calc_pgsize() 56 pgsizes = pagetable->pgsize_bitmap & GENMASK(__fls(size), 0); in calc_pgsize() 62 /* Make sure we have at least one suitable page size */ in calc_pgsize() 65 /* Pick the biggest page size remaining */ in calc_pgsize() 71 /* Find the next biggest support page size, if it exists */ in calc_pgsize() [all …]
|
| /linux/Documentation/arch/arm/ |
| H A D | interrupts.rst | 5 2.5.2-rmk5: 7 major architecture-specific subsystems. 10 MMU TLB. Each MMU TLB variant is now handled completely separately - 11 we have TLB v3, TLB v4 (without write buffer), TLB v4 (with write buffer), 12 and finally TLB v4 (with write buffer, with I TLB invalidate entry). 14 allow more flexible TLB handling for the future. 26 SA1100 ------------> Neponset -----------> SA1111 28 -----------> USAR 30 -----------> SMC9196 33 exclusive of each other - if you're processing one interrupt from the [all …]
|