| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/interrupt-controller/ |
| D | riscv,cpu-intc.txt | 1 RISC-V Hart-Level Interrupt Controller (HLIC) 2 --------------------------------------------- 4 RISC-V cores include Control Status Registers (CSRs) which are local to each 5 CPU core (HART in RISC-V terminology) and can be read or written by software. 10 The RISC-V supervisor ISA manual specifies three interrupt sources that are 13 timer interrupt comes from an architecturally mandated real-time timer that is 14 controlled via Supervisor Binary Interface (SBI) calls and CSR reads. External 16 via the platform-level interrupt controller (PLIC). 18 All RISC-V systems that conform to the supervisor ISA specification are 27 - compatible : "riscv,cpu-intc" [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/interrupt-controller/ |
| D | riscv,cpu-intc.txt | 1 RISC-V Hart-Level Interrupt Controller (HLIC) 2 --------------------------------------------- 4 RISC-V cores include Control Status Registers (CSRs) which are local to each 5 CPU core (HART in RISC-V terminology) and can be read or written by software. 10 The RISC-V supervisor ISA manual specifies three interrupt sources that are 13 timer interrupt comes from an architecturally mandated real-time timer that is 14 controlled via Supervisor Binary Interface (SBI) calls and CSR reads. External 16 via the platform-level interrupt controller (PLIC). 18 All RISC-V systems that conform to the supervisor ISA specification are 27 - compatible : "riscv,cpu-intc" [all …]
|
| D | sifive,plic-1.0.0.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 4 --- 5 $id: http://devicetree.org/schemas/interrupt-controller/sifive,plic-1.0.0.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: SiFive Platform-Level Interrupt Controller (PLIC) 11 SiFive SOCs include an implementation of the Platform-Level Interrupt Controller 12 (PLIC) high-level specification in the RISC-V Privileged Architecture 17 in an 4 core system with 2-way SMT, you have 8 harts and probably at least two 18 privilege modes per hart; machine mode and supervisor mode. 20 Each interrupt can be enabled on per-context basis. Any context can claim [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/riscv/ |
| D | extensions.yaml | 1 # SPDX-License-Identifier: (GPL-2.0 OR MIT) 3 --- 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: RISC-V ISA extensions 10 - Paul Walmsley <paul.walmsley@sifive.com> 11 - Palmer Dabbelt <palmer@sifive.com> 12 - Conor Dooley <conor@kernel.org> 15 RISC-V has a large number of extensions, some of which are "standard" 16 extensions, meaning they are ratified by RISC-V International, and others 36 Identifies the specific RISC-V instruction set architecture [all …]
|
| /kernel/linux/linux-6.6/arch/riscv/include/asm/ |
| D | csr.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 13 #define SR_SIE _AC(0x00000002, UL) /* Supervisor Interrupt Enable */ 15 #define SR_SPIE _AC(0x00000020, UL) /* Previous Supervisor IE */ 17 #define SR_SPP _AC(0x00000100, UL) /* Previously Supervisor */ 19 #define SR_SUM _AC(0x00040000, UL) /* Supervisor User Memory Access */ 21 #define SR_FS _AC(0x00006000, UL) /* Floating-point Status */ 39 #define SR_FS_VS (SR_FS | SR_VS) /* Vector and Floating-Point Unit */ 48 #define SR_UXL _AC(0x300000000, UL) /* XLEN mask for U-mode */ 49 #define SR_UXL_32 _AC(0x100000000, UL) /* XLEN = 32 for U-mode */ 50 #define SR_UXL_64 _AC(0x200000000, UL) /* XLEN = 64 for U-mode */ [all …]
|
| /kernel/linux/linux-6.6/Documentation/riscv/ |
| D | uabi.rst | 1 .. SPDX-License-Identifier: GPL-2.0 3 RISC-V Linux User ABI 7 ------------------------------------ 14 #. Single-letter extensions come first, in canonical order. 17 #. All multi-letter extensions will be separated from other extensions by an 21 single-letter extensions and before any higher-privileged extensions. 29 #. Standard supervisor-level extensions (starting with 'S') will be listed 30 after standard unprivileged extensions. If multiple supervisor-level 33 #. Standard machine-level extensions (starting with 'Zxm') will be listed 34 after any lower-privileged, standard extensions. If multiple machine-level [all …]
|
| /kernel/linux/linux-5.10/arch/microblaze/include/asm/ |
| D | mmu.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Copyright (C) 2008-2009 Michal Simek <monstr@monstr.eu> 4 * Copyright (C) 2008-2009 PetaLogix 12 # include <asm-generic/mmu.h> 30 unsigned long w:1; /* Write-thru cache mode */ 39 # define PP_RWXX 0 /* Supervisor read/write, User none */ 40 # define PP_RWRX 1 /* Supervisor read/write, User read */ 41 # define PP_RWRW 2 /* Supervisor read/write, User read/write */ 42 # define PP_RXRX 3 /* Supervisor read, User read */ 47 unsigned long ks:1; /* Supervisor 'key' (normally 0) */ [all …]
|
| /kernel/linux/linux-6.6/arch/microblaze/include/asm/ |
| D | mmu.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * Copyright (C) 2008-2009 Michal Simek <monstr@monstr.eu> 4 * Copyright (C) 2008-2009 PetaLogix 27 unsigned long w:1; /* Write-thru cache mode */ 36 # define PP_RWXX 0 /* Supervisor read/write, User none */ 37 # define PP_RWRX 1 /* Supervisor read/write, User read */ 38 # define PP_RWRW 2 /* Supervisor read/write, User read/write */ 39 # define PP_RXRX 3 /* Supervisor read, User read */ 44 unsigned long ks:1; /* Supervisor 'key' (normally 0) */ 46 unsigned long n:1; /* No-execute */ [all …]
|
| /kernel/linux/linux-6.6/arch/x86/kvm/ |
| D | mmu.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 57 return ((2ULL << (e - s)) - 1) << s; in rsvd_bits() 61 * The number of non-reserved physical address bits irrespective of features 81 return (1ULL << (max_gpa_bits - PAGE_SHIFT)) - 1; in kvm_mmu_max_gfn() 129 if (likely(vcpu->arch.mmu->root.hpa != INVALID_PAGE)) in kvm_mmu_reload() 151 u64 root_hpa = vcpu->arch.mmu->root.hpa; in kvm_mmu_load_pgd() 157 vcpu->arch.mmu->root_role.level); in kvm_mmu_load_pgd() 166 * be stale. Refresh CR0.WP and the metadata on-demand when checking in kvm_mmu_refresh_passthrough_bits() 172 if (!tdp_enabled || mmu == &vcpu->arch.guest_mmu) in kvm_mmu_refresh_passthrough_bits() 195 * For explicit supervisor accesses, SMAP is disabled if EFLAGS.AC = 1. in permission_fault() [all …]
|
| /kernel/linux/linux-5.10/arch/powerpc/include/asm/nohash/32/ |
| D | mmu-8xx.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 10 * During software tablewalk, the registers used perform mask/shift-add 33 * respectively NA for All or X for Supervisor and no access for User. 35 * "all Supervisor" rules (Access to all) 42 * 3 => User+Accessed => 00 (all accesses performed as supervisor iaw page definition) for INIT 44 * 4-15 => Not Used 59 /* A "level 1" or "segment" or whatever you want to call it register. 122 /* The pointer to the base address of the first level page table. 127 #define M_L1TB 0xfffff000 /* Level 1 table base address */ 128 #define M_L1INDX 0x00000ffc /* Level 1 index, when read */ [all …]
|
| D | pte-8xx.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 8 * We also use the two level tables, but we can put the real bits in them 10 * Mx_CTR.PPCS = 0, and MD_CTR.TWAM = 1. The level 2 descriptor has 16 * the TLB entry (24 and 25) for these indicators. Although the level 1 18 * set these at the page level since they get copied from the Mx_TWC 21 * These will get masked from the level 2 descriptor at TLB load time, and 46 #define _PAGE_NA 0x0200 /* Supervisor NA, User no access */ 47 #define _PAGE_RO 0x0600 /* Supervisor RO, User no access */
|
| /kernel/linux/linux-6.6/arch/powerpc/include/asm/nohash/32/ |
| D | pte-8xx.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 8 * We also use the two level tables, but we can put the real bits in them 10 * Mx_CTR.PPCS = 0, and MD_CTR.TWAM = 1. The level 2 descriptor has 16 * the TLB entry (24 and 25) for these indicators. Although the level 1 18 * set these at the page level since they get copied from the Mx_TWC 21 * These will get masked from the level 2 descriptor at TLB load time, and 46 #define _PAGE_NA 0x0200 /* Supervisor NA, User no access */ 47 #define _PAGE_RO 0x0600 /* Supervisor RO, User no access */ 162 pte_update(vma->vm_mm, address, ptep, clr, set, huge); in __ptep_set_access_flags()
|
| D | mmu-8xx.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 10 * During software tablewalk, the registers used perform mask/shift-add 33 * respectively NA for All or X for Supervisor and no access for User. 35 * "all Supervisor" rules (Access to all) 43 * 4-15 => Not Used 57 /* A "level 1" or "segment" or whatever you want to call it register. 120 /* The pointer to the base address of the first level page table. 125 #define M_L1TB 0xfffff000 /* Level 1 table base address */ 126 #define M_L1INDX 0x00000ffc /* Level 1 index, when read */ 129 /* A "level 1" or "segment" or whatever you want to call it register. [all …]
|
| /kernel/linux/linux-6.6/arch/openrisc/include/asm/ |
| D | spr_defs.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 10 * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se> 19 /* Definition of special-purpose registers (SPRs). */ 215 #define SPR_SR_SM 0x00000001 /* Supervisor Mode */ 231 #define SPR_SR_SUMRA 0x00010000 /* Supervisor SPR read access */ 239 #define SPR_DMMUCR_P2S 0x0000003e /* Level 2 Page Size */ 240 #define SPR_DMMUCR_P1S 0x000007c0 /* Level 1 Page Size */ 248 #define SPR_IMMUCR_P2S 0x0000003e /* Level 2 Page Size */ 249 #define SPR_IMMUCR_P1S 0x000007c0 /* Level 1 Page Size */ 258 #define SPR_DTLBMR_PL1 0x00000002 /* Page Level 1 (if 0 then PL2) */ [all …]
|
| /kernel/linux/linux-5.10/arch/openrisc/include/asm/ |
| D | spr_defs.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 10 * Copyright (C) 2010-2011 Jonas Bonn <jonas@southpole.se> 19 /* Definition of special-purpose registers (SPRs). */ 215 #define SPR_SR_SM 0x00000001 /* Supervisor Mode */ 231 #define SPR_SR_SUMRA 0x00010000 /* Supervisor SPR read access */ 239 #define SPR_DMMUCR_P2S 0x0000003e /* Level 2 Page Size */ 240 #define SPR_DMMUCR_P1S 0x000007c0 /* Level 1 Page Size */ 248 #define SPR_IMMUCR_P2S 0x0000003e /* Level 2 Page Size */ 249 #define SPR_IMMUCR_P1S 0x000007c0 /* Level 1 Page Size */ 258 #define SPR_DTLBMR_PL1 0x00000002 /* Page Level 1 (if 0 then PL2) */ [all …]
|
| /kernel/linux/linux-5.10/tools/perf/pmu-events/arch/arm64/ |
| D | armv8-recommended.json | 3 "PublicDescription": "Attributable Level 1 data cache access, read", 9 "PublicDescription": "Attributable Level 1 data cache access, write", 15 "PublicDescription": "Attributable Level 1 data cache refill, read", 21 "PublicDescription": "Attributable Level 1 data cache refill, write", 27 "PublicDescription": "Attributable Level 1 data cache refill, inner", 33 "PublicDescription": "Attributable Level 1 data cache refill, outer", 39 "PublicDescription": "Attributable Level 1 data cache Write-Back, victim", 42 "BriefDescription": "L1D cache Write-Back, victim" 45 "PublicDescription": "Level 1 data cache Write-Back, cleaning and coherency", 48 "BriefDescription": "L1D cache Write-Back, cleaning and coherency" [all …]
|
| /kernel/linux/linux-6.6/tools/perf/pmu-events/arch/arm64/ |
| D | recommended.json | 3 "PublicDescription": "Attributable Level 1 data cache access, read", 9 "PublicDescription": "Attributable Level 1 data cache access, write", 15 "PublicDescription": "Attributable Level 1 data cache refill, read", 21 "PublicDescription": "Attributable Level 1 data cache refill, write", 27 "PublicDescription": "Attributable Level 1 data cache refill, inner", 33 "PublicDescription": "Attributable Level 1 data cache refill, outer", 39 "PublicDescription": "Attributable Level 1 data cache Write-Back, victim", 42 "BriefDescription": "L1D cache Write-Back, victim" 45 "PublicDescription": "Level 1 data cache Write-Back, cleaning and coherency", 48 "BriefDescription": "L1D cache Write-Back, cleaning and coherency" [all …]
|
| /kernel/linux/linux-6.6/arch/mips/include/asm/octeon/ |
| D | octeon.h | 6 * Copyright (C) 2004-2008 Cavium Networks 57 /* Start of block referenced by assembly code - do not change! */ 66 /* End of This block referenced by assembly code - do not change! */ 117 /* End of This block referenced by assembly code - do not change! */ 124 * Warning low bit scrambled in little-endian. 182 /* OCTEON II - TLB replacement policy: 0 = bitmask LRU; 1 = NLU. 189 /* OCTEON II - Selects the bit in the counter used for 196 /* OCTEON II - This field is an extension of 199 /* R/W If set, marked write-buffer entries time out 201 * write-buffer entries use the maximum timeout. */ [all …]
|
| /kernel/linux/linux-5.10/arch/mips/include/asm/octeon/ |
| D | octeon.h | 6 * Copyright (C) 2004-2008 Cavium Networks 58 /* Start of block referenced by assembly code - do not change! */ 67 /* End of This block referenced by assembly code - do not change! */ 118 /* End of This block referenced by assembly code - do not change! */ 125 * Warning low bit scrambled in little-endian. 183 /* OCTEON II - TLB replacement policy: 0 = bitmask LRU; 1 = NLU. 190 /* OCTEON II - Selects the bit in the counter used for 197 /* OCTEON II - This field is an extension of 200 /* R/W If set, marked write-buffer entries time out 202 * write-buffer entries use the maximum timeout. */ [all …]
|
| /kernel/linux/linux-6.6/arch/nios2/include/asm/ |
| D | thread_info.h | 2 * NiosII low-level thread information 30 * low level task data that entry.S needs immediate access to 31 * - this struct should fit entirely inside of one cache line 32 * - this struct shares the supervisor stack pages 33 * - if the contents of this structure are changed, the assembly constants 38 unsigned long flags; /* low level flags */ 62 return (struct thread_info *)(sp & ~(THREAD_SIZE - 1)); in current_thread_info() 68 * - these are process state flags that various assembly files may need to 70 * - pending work-to-be-done flags are in LSW 71 * - other flags in MSW
|
| /kernel/linux/linux-5.10/arch/nios2/include/asm/ |
| D | thread_info.h | 2 * NiosII low-level thread information 34 * low level task data that entry.S needs immediate access to 35 * - this struct should fit entirely inside of one cache line 36 * - this struct shares the supervisor stack pages 37 * - if the contents of this structure are changed, the assembly constants 42 unsigned long flags; /* low level flags */ 46 0-0x7FFFFFFF for user-thead 47 0-0xFFFFFFFF for kernel-thread 71 return (struct thread_info *)(sp & ~(THREAD_SIZE - 1)); in current_thread_info() 77 * - these are process state flags that various assembly files may need to [all …]
|
| /kernel/linux/linux-5.10/arch/s390/include/asm/ |
| D | thread_info.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 29 (THREAD_SIZE - STACK_FRAME_OVERHEAD - sizeof(struct pt_regs)) 32 * low level task data that entry.S needs immediate access to 33 * - this struct should fit entirely inside of one cache line 34 * - this struct shares the supervisor stack pages 35 * - if the contents of this structure are changed, the assembly constants must also be changed 38 unsigned long flags; /* low level flags */ 64 #define TIF_UPROBE 3 /* breakpointed or single-stepping */
|
| /kernel/linux/linux-5.10/arch/arm/mach-imx/ |
| D | cpu.c | 1 // SPDX-License-Identifier: GPL-2.0 42 * Set all MPROTx to be non-bufferable, trusted for R/W, in imx_set_aips() 43 * not forced to user-mode. in imx_set_aips() 49 * Set all OPACRx to be non-bufferable, to not require in imx_set_aips() 50 * supervisor privilege level for access, allow for in imx_set_aips()
|
| /kernel/linux/linux-6.6/arch/arm/mach-imx/ |
| D | cpu.c | 1 // SPDX-License-Identifier: GPL-2.0 42 * Set all MPROTx to be non-bufferable, trusted for R/W, in imx_set_aips() 43 * not forced to user-mode. in imx_set_aips() 49 * Set all OPACRx to be non-bufferable, to not require in imx_set_aips() 50 * supervisor privilege level for access, allow for in imx_set_aips()
|
| /kernel/linux/linux-6.6/arch/arc/include/asm/ |
| D | thread_info.h | 1 /* SPDX-License-Identifier: GPL-2.0-only */ 3 * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) 7 * anyways one page allocation, thus slab alloc can be short-circuited and 32 * low level task data that entry.S needs immediate access to 33 * - this struct should fit entirely inside of one cache line 34 * - this struct shares the supervisor stack pages 35 * - if the contents of this structure are changed, the assembly constants 39 unsigned long flags; /* low level flags */ 49 * - this is not related to init_task per se 62 return (struct thread_info *)(sp & ~(THREAD_SIZE - 1)); in current_thread_info() [all …]
|