projects/linux·commit c6f2f3e2

Merge tag 'loongarch-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic

c6f2f3e2 · Linus Torvalds <[email protected]> · 2022-06-03 14:09:21 -07:00

Pull initial Loongarch architecture code from Arnd Bergmann:
 "This is the majority of the loongarch architecture code, including the
  final system call interface and all core functionality.

  It still misses three sets of peripheral but vital patches to add
  support for other subsystems, which have yet to pass review:

   - The drivers/firmware/efi stub for booting from a standard UEFI
     firmware implementation. Both the original custom boot interface
     and a draft implementation of the EFI stub did not make it, so it
     is currently impossible to boot the kernel, until the loongarch
     specific portions get accepted into the UEFI subsystem

   - The drivers/irqchip/irq-loongson-*.c drivers are shared with the
     the MIPS port, but currently lack support for ACPI based booting,
     which will get merged through the irqchip subsystem.

   - Similarly, the drivers/pci/controller/pci-loongson.c needs to be
     modified for ACPI support, which will be merged through the PCI
     subsystem.

  While the port cannot actually be used before all the above are
  merged, having it in 5.19 helps to establish the user space ABI for
  the libc ports to build on, and to help any treewide changes in the
  mainline kernel get applied here as well.

  A gcc-12 based tool chains for build testing is now included in

    https://mirrors.edge.kernel.org/pub/tools/crosstool/"

Original description from Huacai Chen:
 "LoongArch is a new RISC ISA, which is a bit like MIPS or RISC-V.
  LoongArch includes a reduced 32-bit version (LA32R), a standard 32-bit
  version (LA32S) and a 64-bit version (LA64). LoongArch use ACPI as its
  boot protocol LoongArch-specific interrupt controllers (similar to APIC)
  are already added in the next revision of ACPI Specification (current
  revision is 6.4).

  This patchset is adding basic LoongArch support in mainline kernel, we
  can see a complete snapshot here:

    https://github.com/loongson/linux/tree/loongarch-next
    https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git/log/?h=loongarch-next

  Cross-compile tool chain to build kernel:

    https://github.com/loongson/build-tools/releases/download/2021.12.21/loongarch64-clfs-2022-03-03-cross-tools-gcc-glibc.tar.xz

  A CLFS-based Linux distro:

    https://github.com/loongson/build-tools/releases/download/2021.12.21/loongarch64-clfs-system-2022-03-03.tar.bz2

  Open-source tool chain which is under review (Binutils and Gcc are already upstream):

    https://github.com/loongson/binutils-gdb/tree/upstream_v3.1
    https://github.com/loongson/gcc/tree/loongarch_upstream_v6.3
    https://github.com/loongson/glibc/tree/loongarch_2_35_dev_v2.2

  Loongson and LoongArch documentations:

    https://github.com/loongson/LoongArch-Documentation

  LoongArch-specific interrupt controllers:

    https://mantis.uefi.org/mantis/view.php?id=2203
    https://mantis.uefi.org/mantis/view.php?id=2313"

Link: https://lore.kernel.org/lkml/[email protected]/

* tag 'loongarch-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: (24 commits)
  MAINTAINERS: Add maintainer information for LoongArch
  LoongArch: Add Loongson-3 default config file
  LoongArch: Add Non-Uniform Memory Access (NUMA) support
  LoongArch: Add multi-processor (SMP) support
  LoongArch: Add VDSO and VSYSCALL support
  LoongArch: Add some library functions
  LoongArch: Add misc common routines
  LoongArch: Add ELF and module support
  LoongArch: Add signal handling support
  LoongArch: Add system call support
  LoongArch: Add memory management
  LoongArch: Add process management
  LoongArch: Add exception/interrupt handling
  LoongArch: Add boot and setup routines
  LoongArch: Add other common headers
  LoongArch: Add atomic/locking headers
  LoongArch: Add CPU definition headers
  LoongArch: Add build infrastructure
  LoongArch: Add writecombine support for drm
  LoongArch: Add ELF-related definitions
  ...
Commit
c6f2f3e2c80e975804360665d973211e4d9390cb
Parents
21873bd6 · 8be44931

Merge commit. Changes below are compared with the first parent: 21873bd6.

Changes

204 files changed · +21064 −7

FileStatusAddDelContent
Documentation/arch.rstmodified+1−0View file
Documentation/loongarch/features.rstadded+3−0View file
Documentation/loongarch/index.rstadded+21−0View file
Documentation/loongarch/introduction.rstadded+387−0View file
Documentation/loongarch/irq-chip-model.rstadded+156−0View file
Documentation/translations/zh_CN/index.rstmodified+1−0View file
Documentation/translations/zh_CN/loongarch/features.rstadded+8−0View file
Documentation/translations/zh_CN/loongarch/index.rstadded+26−0View file
Documentation/translations/zh_CN/loongarch/introduction.rstadded+351−0View file
Documentation/translations/zh_CN/loongarch/irq-chip-model.rstadded+155−0View file
MAINTAINERSmodified+10−0View file
arch/loongarch/Kbuildadded+6−0View file
arch/loongarch/Kconfigadded+438−0View file
arch/loongarch/Kconfig.debugadded+0−0View file
arch/loongarch/Makefileadded+100−0View file
arch/loongarch/boot/.gitignoreadded+2−0View file
arch/loongarch/boot/Makefileadded+16−0View file
arch/loongarch/boot/dts/Makefileadded+4−0View file
arch/loongarch/configs/loongson3_defconfigadded+771−0View file
arch/loongarch/include/asm/Kbuildadded+30−0View file
arch/loongarch/include/asm/acenv.hadded+18−0View file
arch/loongarch/include/asm/acpi.hadded+38−0View file
arch/loongarch/include/asm/addrspace.hadded+112−0View file
arch/loongarch/include/asm/asm-offsets.hadded+5−0View file
arch/loongarch/include/asm/asm-prototypes.hadded+7−0View file
arch/loongarch/include/asm/asm.hadded+191−0View file
arch/loongarch/include/asm/asmmacro.hadded+289−0View file
arch/loongarch/include/asm/atomic.hadded+362−0View file
arch/loongarch/include/asm/barrier.hadded+159−0View file
arch/loongarch/include/asm/bitops.hadded+33−0View file
arch/loongarch/include/asm/bitrev.hadded+34−0View file
arch/loongarch/include/asm/bootinfo.hadded+43−0View file
arch/loongarch/include/asm/branch.hadded+21−0View file
arch/loongarch/include/asm/bug.hadded+23−0View file
arch/loongarch/include/asm/cache.hadded+13−0View file
arch/loongarch/include/asm/cacheflush.hadded+80−0View file
arch/loongarch/include/asm/cacheops.hadded+37−0View file
arch/loongarch/include/asm/clocksource.hadded+12−0View file
arch/loongarch/include/asm/cmpxchg.hadded+123−0View file
arch/loongarch/include/asm/compiler.hadded+15−0View file
arch/loongarch/include/asm/cpu-features.hadded+73−0View file
arch/loongarch/include/asm/cpu-info.hadded+116−0View file
arch/loongarch/include/asm/cpu.hadded+127−0View file
arch/loongarch/include/asm/cpufeature.hadded+24−0View file
arch/loongarch/include/asm/delay.hadded+26−0View file
arch/loongarch/include/asm/dma-direct.hadded+11−0View file
arch/loongarch/include/asm/dmi.hadded+24−0View file
arch/loongarch/include/asm/efi.hadded+41−0View file
arch/loongarch/include/asm/elf.hadded+301−0View file
arch/loongarch/include/asm/entry-common.hadded+13−0View file
arch/loongarch/include/asm/exec.hadded+10−0View file
arch/loongarch/include/asm/fb.hadded+23−0View file
arch/loongarch/include/asm/fixmap.hadded+13−0View file
arch/loongarch/include/asm/fpregdef.hadded+53−0View file
arch/loongarch/include/asm/fpu.hadded+129−0View file
arch/loongarch/include/asm/futex.hadded+108−0View file
arch/loongarch/include/asm/hardirq.hadded+26−0View file
arch/loongarch/include/asm/hugetlb.hadded+83−0View file
arch/loongarch/include/asm/hw_irq.hadded+17−0View file
arch/loongarch/include/asm/idle.hadded+9−0View file
arch/loongarch/include/asm/inst.hadded+117−0View file
arch/loongarch/include/asm/io.hadded+129−0View file
arch/loongarch/include/asm/irq.hadded+132−0View file
arch/loongarch/include/asm/irq_regs.hadded+27−0View file
arch/loongarch/include/asm/irqflags.hadded+78−0View file
arch/loongarch/include/asm/kdebug.hadded+23−0View file
arch/loongarch/include/asm/linkage.hadded+36−0View file
arch/loongarch/include/asm/local.hadded+138−0View file
arch/loongarch/include/asm/loongarch.hadded+1516−0View file
arch/loongarch/include/asm/loongson.hadded+153−0View file
arch/loongarch/include/asm/mmu.hadded+16−0View file
arch/loongarch/include/asm/mmu_context.hadded+152−0View file
arch/loongarch/include/asm/mmzone.hadded+18−0View file
arch/loongarch/include/asm/module.hadded+80−0View file
arch/loongarch/include/asm/module.lds.hadded+7−0View file
arch/loongarch/include/asm/numa.hadded+67−0View file
arch/loongarch/include/asm/page.hadded+115−0View file
arch/loongarch/include/asm/percpu.hadded+214−0View file
arch/loongarch/include/asm/perf_event.hadded+10−0View file
arch/loongarch/include/asm/pgalloc.hadded+103−0View file
arch/loongarch/include/asm/pgtable-bits.hadded+131−0View file
arch/loongarch/include/asm/pgtable.hadded+565−0View file
arch/loongarch/include/asm/prefetch.hadded+29−0View file
arch/loongarch/include/asm/processor.hadded+209−0View file
arch/loongarch/include/asm/ptrace.hadded+152−0View file
arch/loongarch/include/asm/reboot.hadded+10−0View file
arch/loongarch/include/asm/regdef.hadded+41−0View file
arch/loongarch/include/asm/seccomp.hadded+20−0View file
arch/loongarch/include/asm/serial.hadded+11−0View file
arch/loongarch/include/asm/setup.hadded+21−0View file
arch/loongarch/include/asm/shmparam.hadded+12−0View file
arch/loongarch/include/asm/smp.hadded+124−0View file
arch/loongarch/include/asm/sparsemem.hadded+23−0View file
arch/loongarch/include/asm/stackframe.hadded+219−0View file
arch/loongarch/include/asm/stacktrace.hadded+74−0View file
arch/loongarch/include/asm/string.hadded+12−0View file
arch/loongarch/include/asm/switch_to.hadded+37−0View file
arch/loongarch/include/asm/syscall.hadded+74−0View file
arch/loongarch/include/asm/thread_info.hadded+106−0View file
arch/loongarch/include/asm/time.hadded+50−0View file
arch/loongarch/include/asm/timex.hadded+33−0View file
arch/loongarch/include/asm/tlb.hadded+180−0View file
arch/loongarch/include/asm/tlbflush.hadded+48−0View file
arch/loongarch/include/asm/topology.hadded+41−0View file
arch/loongarch/include/asm/types.hadded+19−0View file
arch/loongarch/include/asm/uaccess.hadded+269−0View file
arch/loongarch/include/asm/unistd.hadded+11−0View file
arch/loongarch/include/asm/vdso.hadded+38−0View file
arch/loongarch/include/asm/vdso/clocksource.hadded+8−0View file
arch/loongarch/include/asm/vdso/gettimeofday.hadded+99−0View file
arch/loongarch/include/asm/vdso/processor.hadded+14−0View file
arch/loongarch/include/asm/vdso/vdso.hadded+30−0View file
arch/loongarch/include/asm/vdso/vsyscall.hadded+27−0View file
arch/loongarch/include/asm/vermagic.hadded+19−0View file
arch/loongarch/include/asm/vmalloc.hadded+4−0View file
arch/loongarch/include/uapi/asm/Kbuildadded+2−0View file
arch/loongarch/include/uapi/asm/auxvec.hadded+17−0View file
arch/loongarch/include/uapi/asm/bitsperlong.hadded+9−0View file
arch/loongarch/include/uapi/asm/break.hadded+23−0View file
arch/loongarch/include/uapi/asm/byteorder.hadded+13−0View file
arch/loongarch/include/uapi/asm/hwcap.hadded+20−0View file
arch/loongarch/include/uapi/asm/ptrace.hadded+52−0View file
arch/loongarch/include/uapi/asm/reg.hadded+59−0View file
arch/loongarch/include/uapi/asm/sigcontext.hadded+44−0View file
arch/loongarch/include/uapi/asm/signal.hadded+13−0View file
arch/loongarch/include/uapi/asm/ucontext.hadded+35−0View file
arch/loongarch/include/uapi/asm/unistd.hadded+5−0View file
arch/loongarch/kernel/.gitignoreadded+2−0View file
arch/loongarch/kernel/Makefileadded+25−0View file
arch/loongarch/kernel/access-helper.hadded+13−0View file
arch/loongarch/kernel/acpi.cadded+333−0View file
arch/loongarch/kernel/asm-offsets.cadded+264−0View file
arch/loongarch/kernel/cacheinfo.cadded+122−0View file
arch/loongarch/kernel/cpu-probe.cadded+292−0View file
arch/loongarch/kernel/dma.cadded+40−0View file
arch/loongarch/kernel/efi.cadded+72−0View file
arch/loongarch/kernel/elf.cadded+30−0View file
arch/loongarch/kernel/entry.Sadded+89−0View file
arch/loongarch/kernel/env.cadded+101−0View file
arch/loongarch/kernel/fpu.Sadded+261−0View file
arch/loongarch/kernel/genex.Sadded+95−0View file
arch/loongarch/kernel/head.Sadded+98−0View file
arch/loongarch/kernel/idle.cadded+16−0View file
arch/loongarch/kernel/inst.cadded+40−0View file
arch/loongarch/kernel/io.cadded+94−0View file
arch/loongarch/kernel/irq.cadded+88−0View file
arch/loongarch/kernel/mem.cadded+64−0View file
arch/loongarch/kernel/module-sections.cadded+121−0View file
arch/loongarch/kernel/module.cadded+375−0View file
arch/loongarch/kernel/numa.cadded+466−0View file
arch/loongarch/kernel/proc.cadded+127−0View file
arch/loongarch/kernel/process.cadded+267−0View file
arch/loongarch/kernel/ptrace.cadded+431−0View file
arch/loongarch/kernel/reset.cadded+102−0View file
arch/loongarch/kernel/setup.cadded+374−0View file
arch/loongarch/kernel/signal.cadded+566−0View file
arch/loongarch/kernel/smp.cadded+751−0View file
arch/loongarch/kernel/switch.Sadded+35−0View file
arch/loongarch/kernel/syscall.cadded+63−0View file
arch/loongarch/kernel/time.cadded+214−0View file
arch/loongarch/kernel/topology.cadded+52−0View file
arch/loongarch/kernel/traps.cadded+725−0View file
arch/loongarch/kernel/vdso.cadded+138−0View file
arch/loongarch/kernel/vmlinux.lds.Sadded+120−0View file
arch/loongarch/lib/Makefileadded+6−0View file
arch/loongarch/lib/clear_user.Sadded+43−0View file
arch/loongarch/lib/copy_user.Sadded+47−0View file
arch/loongarch/lib/delay.cadded+43−0View file
arch/loongarch/lib/dump_tlb.cadded+111−0View file
arch/loongarch/mm/Makefileadded+9−0View file
arch/loongarch/mm/cache.cadded+141−0View file
arch/loongarch/mm/extable.cadded+22−0View file
arch/loongarch/mm/fault.cadded+261−0View file
arch/loongarch/mm/hugetlbpage.cadded+87−0View file
arch/loongarch/mm/init.cadded+178−0View file
arch/loongarch/mm/ioremap.cadded+27−0View file
arch/loongarch/mm/maccess.cadded+10−0View file
arch/loongarch/mm/mmap.cadded+125−0View file
arch/loongarch/mm/page.Sadded+84−0View file
arch/loongarch/mm/pgtable.cadded+130−0View file
arch/loongarch/mm/tlb.cadded+305−0View file
arch/loongarch/mm/tlbex.Sadded+546−0View file
arch/loongarch/pci/Makefileadded+7−0View file
arch/loongarch/vdso/.gitignoreadded+2−0View file
arch/loongarch/vdso/Makefileadded+96−0View file
arch/loongarch/vdso/elf.Sadded+15−0View file
arch/loongarch/vdso/gen_vdso_offsets.shadded+13−0View file
arch/loongarch/vdso/sigreturn.Sadded+24−0View file
arch/loongarch/vdso/vdso.Sadded+22−0View file
arch/loongarch/vdso/vdso.lds.Sadded+72−0View file
arch/loongarch/vdso/vgettimeofday.cadded+25−0View file
drivers/gpu/drm/drm_vm.cmodified+1−1View file
drivers/gpu/drm/ttm/ttm_module.cmodified+1−1View file
drivers/irqchip/Kconfigmodified+3−3View file
drivers/irqchip/irq-loongson-liointc.cmodified+5−1View file
include/drm/drm_cache.hmodified+8−0View file
include/linux/cpuhotplug.hmodified+1−0View file
include/uapi/linux/audit.hmodified+2−0View file
include/uapi/linux/elf-em.hmodified+1−0View file
include/uapi/linux/elf.hmodified+5−0View file
include/uapi/linux/kexec.hmodified+1−0View file
scripts/sorttable.cmodified+5−0View file
scripts/subarch.includemodified+1−1View file
tools/include/uapi/asm/bitsperlong.hmodified+2−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/arch.rst

View file
diff --git a/Documentation/arch.rst b/Documentation/arch.rst
index 14bcd82..41a66a8 100644
--- a/Documentation/arch.rst
+++ b/Documentation/arch.rst
@@ -13,6 +13,7 @@ implementation.
arm/index
arm64/index
ia64/index
+ loongarch/index
m68k/index
mips/index
nios2/index

Documentation/loongarch/features.rst

View file
diff --git a/Documentation/loongarch/features.rst b/Documentation/loongarch/features.rst
new file mode 100644
index 0000000..ebacade
--- /dev/null
+++ b/Documentation/loongarch/features.rst
@@ -0,0 +1,3 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+.. kernel-feat:: $srctree/Documentation/features loongarch

Documentation/loongarch/index.rst

View file
diff --git a/Documentation/loongarch/index.rst b/Documentation/loongarch/index.rst
new file mode 100644
index 0000000..aaba648
--- /dev/null
+++ b/Documentation/loongarch/index.rst
@@ -0,0 +1,21 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+======================
+LoongArch Architecture
+======================
+
+.. toctree::
+ :maxdepth: 2
+ :numbered:
+
+ introduction
+ irq-chip-model
+
+ features
+
+.. only:: subproject and html
+
+ Indices
+ =======
+
+ * :ref:`genindex`

Documentation/loongarch/introduction.rst

View file
diff --git a/Documentation/loongarch/introduction.rst b/Documentation/loongarch/introduction.rst
new file mode 100644
index 0000000..2bf40ad
--- /dev/null
+++ b/Documentation/loongarch/introduction.rst
@@ -0,0 +1,387 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=========================
+Introduction to LoongArch
+=========================
+
+LoongArch is a new RISC ISA, which is a bit like MIPS or RISC-V. There are
+currently 3 variants: a reduced 32-bit version (LA32R), a standard 32-bit
+version (LA32S) and a 64-bit version (LA64). There are 4 privilege levels
+(PLVs) defined in LoongArch: PLV0~PLV3, from high to low. Kernel runs at PLV0
+while applications run at PLV3. This document introduces the registers, basic
+instruction set, virtual memory and some other topics of LoongArch.
+
+Registers
+=========
+
+LoongArch registers include general purpose registers (GPRs), floating point
+registers (FPRs), vector registers (VRs) and control status registers (CSRs)
+used in privileged mode (PLV0).
+
+GPRs
+----
+
+LoongArch has 32 GPRs ( ``$r0`` ~ ``$r31`` ); each one is 32-bit wide in LA32
+and 64-bit wide in LA64. ``$r0`` is hard-wired to zero, and the other registers
+are not architecturally special. (Except ``$r1``, which is hard-wired as the
+link register of the BL instruction.)
+
+The kernel uses a variant of the LoongArch register convention, as described in
+the LoongArch ELF psABI spec, in :ref:`References <loongarch-references>`:
+
+================= =============== =================== ============
+Name Alias Usage Preserved
+ across calls
+================= =============== =================== ============
+``$r0`` ``$zero`` Constant zero Unused
+``$r1`` ``$ra`` Return address No
+``$r2`` ``$tp`` TLS/Thread pointer Unused
+``$r3`` ``$sp`` Stack pointer Yes
+``$r4``-``$r11`` ``$a0``-``$a7`` Argument registers No
+``$r4``-``$r5`` ``$v0``-``$v1`` Return value No
+``$r12``-``$r20`` ``$t0``-``$t8`` Temp registers No
+``$r21`` ``$u0`` Percpu base address Unused
+``$r22`` ``$fp`` Frame pointer Yes
+``$r23``-``$r31`` ``$s0``-``$s8`` Static registers Yes
+================= =============== =================== ============
+
+Note: The register ``$r21`` is reserved in the ELF psABI, but used by the Linux
+kernel for storing the percpu base address. It normally has no ABI name, but is
+called ``$u0`` in the kernel. You may also see ``$v0`` or ``$v1`` in some old code,
+however they are deprecated aliases of ``$a0`` and ``$a1`` respectively.
+
+FPRs
+----
+
+LoongArch has 32 FPRs ( ``$f0`` ~ ``$f31`` ) when FPU is present. Each one is
+64-bit wide on the LA64 cores.
+
+The floating-point register convention is the same as described in the
+LoongArch ELF psABI spec:
+
+================= ================== =================== ============
+Name Alias Usage Preserved
+ across calls
+================= ================== =================== ============
+``$f0``-``$f7`` ``$fa0``-``$fa7`` Argument registers No
+``$f0``-``$f1`` ``$fv0``-``$fv1`` Return value No
+``$f8``-``$f23`` ``$ft0``-``$ft15`` Temp registers No
+``$f24``-``$f31`` ``$fs0``-``$fs7`` Static registers Yes
+================= ================== =================== ============
+
+Note: You may see ``$fv0`` or ``$fv1`` in some old code, however they are deprecated
+aliases of ``$fa0`` and ``$fa1`` respectively.
+
+VRs
+----
+
+There are currently 2 vector extensions to LoongArch:
+
+- LSX (Loongson SIMD eXtension) with 128-bit vectors,
+- LASX (Loongson Advanced SIMD eXtension) with 256-bit vectors.
+
+LSX brings ``$v0`` ~ ``$v31`` while LASX brings ``$x0`` ~ ``$x31`` as the vector
+registers.
+
+The VRs overlap with FPRs: for example, on a core implementing LSX and LASX,
+the lower 128 bits of ``$x0`` is shared with ``$v0``, and the lower 64 bits of
+``$v0`` is shared with ``$f0``; same with all other VRs.
+
+CSRs
+----
+
+CSRs can only be accessed from privileged mode (PLV0):
+
+================= ===================================== ==============
+Address Full Name Abbrev Name
+================= ===================================== ==============
+0x0 Current Mode Information CRMD
+0x1 Pre-exception Mode Information PRMD
+0x2 Extension Unit Enable EUEN
+0x3 Miscellaneous Control MISC
+0x4 Exception Configuration ECFG
+0x5 Exception Status ESTAT
+0x6 Exception Return Address ERA
+0x7 Bad (Faulting) Virtual Address BADV
+0x8 Bad (Faulting) Instruction Word BADI
+0xC Exception Entrypoint Address EENTRY
+0x10 TLB Index TLBIDX
+0x11 TLB Entry High-order Bits TLBEHI
+0x12 TLB Entry Low-order Bits 0 TLBELO0
+0x13 TLB Entry Low-order Bits 1 TLBELO1
+0x18 Address Space Identifier ASID
+0x19 Page Global Directory Address for PGDL
+ Lower-half Address Space
+0x1A Page Global Directory Address for PGDH
+ Higher-half Address Space
+0x1B Page Global Directory Address PGD
+0x1C Page Walk Control for Lower- PWCL
+ half Address Space
+0x1D Page Walk Control for Higher- PWCH
+ half Address Space
+0x1E STLB Page Size STLBPS
+0x1F Reduced Virtual Address Configuration RVACFG
+0x20 CPU Identifier CPUID
+0x21 Privileged Resource Configuration 1 PRCFG1
+0x22 Privileged Resource Configuration 2 PRCFG2
+0x23 Privileged Resource Configuration 3 PRCFG3
+0x30+n (0≤n≤15) Saved Data register SAVEn
+0x40 Timer Identifier TID
+0x41 Timer Configuration TCFG
+0x42 Timer Value TVAL
+0x43 Compensation of Timer Count CNTC
+0x44 Timer Interrupt Clearing TICLR
+0x60 LLBit Control LLBCTL
+0x80 Implementation-specific Control 1 IMPCTL1
+0x81 Implementation-specific Control 2 IMPCTL2
+0x88 TLB Refill Exception Entrypoint TLBRENTRY
+ Address
+0x89 TLB Refill Exception BAD (Faulting) TLBRBADV
+ Virtual Address
+0x8A TLB Refill Exception Return Address TLBRERA
+0x8B TLB Refill Exception Saved Data TLBRSAVE
+ Register
+0x8C TLB Refill Exception Entry Low-order TLBRELO0
+ Bits 0
+0x8D TLB Refill Exception Entry Low-order TLBRELO1
+ Bits 1
+0x8E TLB Refill Exception Entry High-order TLBEHI
+ Bits
+0x8F TLB Refill Exception Pre-exception TLBRPRMD
+ Mode Information
+0x90 Machine Error Control MERRCTL
+0x91 Machine Error Information 1 MERRINFO1
+0x92 Machine Error Information 2 MERRINFO2
+0x93 Machine Error Exception Entrypoint MERRENTRY
+ Address
+0x94 Machine Error Exception Return MERRERA
+ Address
+0x95 Machine Error Exception Saved Data MERRSAVE
+ Register
+0x98 Cache TAGs CTAG
+0x180+n (0≤n≤3) Direct Mapping Configuration Window n DMWn
+0x200+2n (0≤n≤31) Performance Monitor Configuration n PMCFGn
+0x201+2n (0≤n≤31) Performance Monitor Overall Counter n PMCNTn
+0x300 Memory Load/Store WatchPoint MWPC
+ Overall Control
+0x301 Memory Load/Store WatchPoint MWPS
+ Overall Status
+0x310+8n (0≤n≤7) Memory Load/Store WatchPoint n MWPnCFG1
+ Configuration 1
+0x311+8n (0≤n≤7) Memory Load/Store WatchPoint n MWPnCFG2
+ Configuration 2
+0x312+8n (0≤n≤7) Memory Load/Store WatchPoint n MWPnCFG3
+ Configuration 3
+0x313+8n (0≤n≤7) Memory Load/Store WatchPoint n MWPnCFG4
+ Configuration 4
+0x380 Instruction Fetch WatchPoint FWPC
+ Overall Control
+0x381 Instruction Fetch WatchPoint FWPS
+ Overall Status
+0x390+8n (0≤n≤7) Instruction Fetch WatchPoint n FWPnCFG1
+ Configuration 1
+0x391+8n (0≤n≤7) Instruction Fetch WatchPoint n FWPnCFG2
+ Configuration 2
+0x392+8n (0≤n≤7) Instruction Fetch WatchPoint n FWPnCFG3
+ Configuration 3
+0x393+8n (0≤n≤7) Instruction Fetch WatchPoint n FWPnCFG4
+ Configuration 4
+0x500 Debug Register DBG
+0x501 Debug Exception Return Address DERA
+0x502 Debug Exception Saved Data Register DSAVE
+================= ===================================== ==============
+
+ERA, TLBRERA, MERRERA and DERA are sometimes also known as EPC, TLBREPC, MERREPC
+and DEPC respectively.
+
+Basic Instruction Set
+=====================
+
+Instruction formats
+-------------------
+
+LoongArch instructions are 32 bits wide, belonging to 9 basic instruction
+formats (and variants of them):
+
+=========== ==========================
+Format name Composition
+=========== ==========================
+2R Opcode + Rj + Rd
+3R Opcode + Rk + Rj + Rd
+4R Opcode + Ra + Rk + Rj + Rd
+2RI8 Opcode + I8 + Rj + Rd
+2RI12 Opcode + I12 + Rj + Rd
+2RI14 Opcode + I14 + Rj + Rd
+2RI16 Opcode + I16 + Rj + Rd
+1RI21 Opcode + I21L + Rj + I21H
+I26 Opcode + I26L + I26H
+=========== ==========================
+
+Rd is the destination register operand, while Rj, Rk and Ra ("a" stands for
+"additional") are the source register operands. I8/I12/I16/I21/I26 are
+immediate operands of respective width. The longer I21 and I26 are stored
+in separate higher and lower parts in the instruction word, denoted by the "L"
+and "H" suffixes.
+
+List of Instructions
+--------------------
+
+For brevity, only instruction names (mnemonics) are listed here; please see the
+:ref:`References <loongarch-references>` for details.
+
+
+1. Arithmetic Instructions::
+
+ ADD.W SUB.W ADDI.W ADD.D SUB.D ADDI.D
+ SLT SLTU SLTI SLTUI
+ AND OR NOR XOR ANDN ORN ANDI ORI XORI
+ MUL.W MULH.W MULH.WU DIV.W DIV.WU MOD.W MOD.WU
+ MUL.D MULH.D MULH.DU DIV.D DIV.DU MOD.D MOD.DU
+ PCADDI PCADDU12I PCADDU18I
+ LU12I.W LU32I.D LU52I.D ADDU16I.D
+
+2. Bit-shift Instructions::
+
+ SLL.W SRL.W SRA.W ROTR.W SLLI.W SRLI.W SRAI.W ROTRI.W
+ SLL.D SRL.D SRA.D ROTR.D SLLI.D SRLI.D SRAI.D ROTRI.D
+
+3. Bit-manipulation Instructions::
+
+ EXT.W.B EXT.W.H CLO.W CLO.D SLZ.W CLZ.D CTO.W CTO.D CTZ.W CTZ.D
+ BYTEPICK.W BYTEPICK.D BSTRINS.W BSTRINS.D BSTRPICK.W BSTRPICK.D
+ REVB.2H REVB.4H REVB.2W REVB.D REVH.2W REVH.D BITREV.4B BITREV.8B BITREV.W BITREV.D
+ MASKEQZ MASKNEZ
+
+4. Branch Instructions::
+
+ BEQ BNE BLT BGE BLTU BGEU BEQZ BNEZ B BL JIRL
+
+5. Load/Store Instructions::
+
+ LD.B LD.BU LD.H LD.HU LD.W LD.WU LD.D ST.B ST.H ST.W ST.D
+ LDX.B LDX.BU LDX.H LDX.HU LDX.W LDX.WU LDX.D STX.B STX.H STX.W STX.D
+ LDPTR.W LDPTR.D STPTR.W STPTR.D
+ PRELD PRELDX
+
+6. Atomic Operation Instructions::
+
+ LL.W SC.W LL.D SC.D
+ AMSWAP.W AMSWAP.D AMADD.W AMADD.D AMAND.W AMAND.D AMOR.W AMOR.D AMXOR.W AMXOR.D
+ AMMAX.W AMMAX.D AMMIN.W AMMIN.D
+
+7. Barrier Instructions::
+
+ IBAR DBAR
+
+8. Special Instructions::
+
+ SYSCALL BREAK CPUCFG NOP IDLE ERTN(ERET) DBCL(DBGCALL) RDTIMEL.W RDTIMEH.W RDTIME.D
+ ASRTLE.D ASRTGT.D
+
+9. Privileged Instructions::
+
+ CSRRD CSRWR CSRXCHG
+ IOCSRRD.B IOCSRRD.H IOCSRRD.W IOCSRRD.D IOCSRWR.B IOCSRWR.H IOCSRWR.W IOCSRWR.D
+ CACOP TLBP(TLBSRCH) TLBRD TLBWR TLBFILL TLBCLR TLBFLUSH INVTLB LDDIR LDPTE
+
+Virtual Memory
+==============
+
+LoongArch supports direct-mapped virtual memory and page-mapped virtual memory.
+
+Direct-mapped virtual memory is configured by CSR.DMWn (n=0~3), it has a simple
+relationship between virtual address (VA) and physical address (PA)::
+
+ VA = PA + FixedOffset
+
+Page-mapped virtual memory has arbitrary relationship between VA and PA, which
+is recorded in TLB and page tables. LoongArch's TLB includes a fully-associative
+MTLB (Multiple Page Size TLB) and set-associative STLB (Single Page Size TLB).
+
+By default, the whole virtual address space of LA32 is configured like this:
+
+============ =========================== =============================
+Name Address Range Attributes
+============ =========================== =============================
+``UVRANGE`` ``0x00000000 - 0x7FFFFFFF`` Page-mapped, Cached, PLV0~3
+``KPRANGE0`` ``0x80000000 - 0x9FFFFFFF`` Direct-mapped, Uncached, PLV0
+``KPRANGE1`` ``0xA0000000 - 0xBFFFFFFF`` Direct-mapped, Cached, PLV0
+``KVRANGE`` ``0xC0000000 - 0xFFFFFFFF`` Page-mapped, Cached, PLV0
+============ =========================== =============================
+
+User mode (PLV3) can only access UVRANGE. For direct-mapped KPRANGE0 and
+KPRANGE1, PA is equal to VA with bit30~31 cleared. For example, the uncached
+direct-mapped VA of 0x00001000 is 0x80001000, and the cached direct-mapped
+VA of 0x00001000 is 0xA0001000.
+
+By default, the whole virtual address space of LA64 is configured like this:
+
+============ ====================== ======================================
+Name Address Range Attributes
+============ ====================== ======================================
+``XUVRANGE`` ``0x0000000000000000 - Page-mapped, Cached, PLV0~3
+ 0x3FFFFFFFFFFFFFFF``
+``XSPRANGE`` ``0x4000000000000000 - Direct-mapped, Cached / Uncached, PLV0
+ 0x7FFFFFFFFFFFFFFF``
+``XKPRANGE`` ``0x8000000000000000 - Direct-mapped, Cached / Uncached, PLV0
+ 0xBFFFFFFFFFFFFFFF``
+``XKVRANGE`` ``0xC000000000000000 - Page-mapped, Cached, PLV0
+ 0xFFFFFFFFFFFFFFFF``
+============ ====================== ======================================
+
+User mode (PLV3) can only access XUVRANGE. For direct-mapped XSPRANGE and
+XKPRANGE, PA is equal to VA with bits 60~63 cleared, and the cache attribute
+is configured by bits 60~61 in VA: 0 is for strongly-ordered uncached, 1 is
+for coherent cached, and 2 is for weakly-ordered uncached.
+
+Currently we only use XKPRANGE for direct mapping and XSPRANGE is reserved.
+
+To put this in action: the strongly-ordered uncached direct-mapped VA (in
+XKPRANGE) of 0x00000000_00001000 is 0x80000000_00001000, the coherent cached
+direct-mapped VA (in XKPRANGE) of 0x00000000_00001000 is 0x90000000_00001000,
+and the weakly-ordered uncached direct-mapped VA (in XKPRANGE) of 0x00000000
+_00001000 is 0xA0000000_00001000.
+
+Relationship of Loongson and LoongArch
+======================================
+
+LoongArch is a RISC ISA which is different from any other existing ones, while
+Loongson is a family of processors. Loongson includes 3 series: Loongson-1 is
+the 32-bit processor series, Loongson-2 is the low-end 64-bit processor series,
+and Loongson-3 is the high-end 64-bit processor series. Old Loongson is based on
+MIPS, while New Loongson is based on LoongArch. Take Loongson-3 as an example:
+Loongson-3A1000/3B1500/3A2000/3A3000/3A4000 are MIPS-compatible, while Loongson-
+3A5000 (and future revisions) are all based on LoongArch.
+
+.. _loongarch-references:
+
+References
+==========
+
+Official web site of Loongson Technology Corp. Ltd.:
+
+ http://www.loongson.cn/
+
+Developer web site of Loongson and LoongArch (Software and Documentation):
+
+ http://www.loongnix.cn/
+
+ https://github.com/loongson/
+
+ https://loongson.github.io/LoongArch-Documentation/
+
+Documentation of LoongArch ISA:
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.00-CN.pdf (in Chinese)
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.00-EN.pdf (in English)
+
+Documentation of LoongArch ELF psABI:
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v1.00-CN.pdf (in Chinese)
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v1.00-EN.pdf (in English)
+
+Linux kernel repository of Loongson and LoongArch:
+
+ https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git

Documentation/loongarch/irq-chip-model.rst

View file
diff --git a/Documentation/loongarch/irq-chip-model.rst b/Documentation/loongarch/irq-chip-model.rst
new file mode 100644
index 0000000..8d88f7a
--- /dev/null
+++ b/Documentation/loongarch/irq-chip-model.rst
@@ -0,0 +1,156 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+=======================================
+IRQ chip model (hierarchy) of LoongArch
+=======================================
+
+Currently, LoongArch based processors (e.g. Loongson-3A5000) can only work together
+with LS7A chipsets. The irq chips in LoongArch computers include CPUINTC (CPU Core
+Interrupt Controller), LIOINTC (Legacy I/O Interrupt Controller), EIOINTC (Extended
+I/O Interrupt Controller), HTVECINTC (Hyper-Transport Vector Interrupt Controller),
+PCH-PIC (Main Interrupt Controller in LS7A chipset), PCH-LPC (LPC Interrupt Controller
+in LS7A chipset) and PCH-MSI (MSI Interrupt Controller).
+
+CPUINTC is a per-core controller (in CPU), LIOINTC/EIOINTC/HTVECINTC are per-package
+controllers (in CPU), while PCH-PIC/PCH-LPC/PCH-MSI are controllers out of CPU (i.e.,
+in chipsets). These controllers (in other words, irqchips) are linked in a hierarchy,
+and there are two models of hierarchy (legacy model and extended model).
+
+Legacy IRQ model
+================
+
+In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go
+to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, while all other devices
+interrupts go to PCH-PIC/PCH-LPC/PCH-MSI and gathered by HTVECINTC, and then go
+to LIOINTC, and then CPUINTC::
+
+ +-----+ +---------+ +-------+
+ | IPI | --> | CPUINTC | <-- | Timer |
+ +-----+ +---------+ +-------+
+ ^
+ |
+ +---------+ +-------+
+ | LIOINTC | <-- | UARTs |
+ +---------+ +-------+
+ ^
+ |
+ +-----------+
+ | HTVECINTC |
+ +-----------+
+ ^ ^
+ | |
+ +---------+ +---------+
+ | PCH-PIC | | PCH-MSI |
+ +---------+ +---------+
+ ^ ^ ^
+ | | |
+ +---------+ +---------+ +---------+
+ | PCH-LPC | | Devices | | Devices |
+ +---------+ +---------+ +---------+
+ ^
+ |
+ +---------+
+ | Devices |
+ +---------+
+
+Extended IRQ model
+==================
+
+In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt go
+to CPUINTC directly, CPU UARTS interrupts go to LIOINTC, while all other devices
+interrupts go to PCH-PIC/PCH-LPC/PCH-MSI and gathered by EIOINTC, and then go to
+to CPUINTC directly::
+
+ +-----+ +---------+ +-------+
+ | IPI | --> | CPUINTC | <-- | Timer |
+ +-----+ +---------+ +-------+
+ ^ ^
+ | |
+ +---------+ +---------+ +-------+
+ | EIOINTC | | LIOINTC | <-- | UARTs |
+ +---------+ +---------+ +-------+
+ ^ ^
+ | |
+ +---------+ +---------+
+ | PCH-PIC | | PCH-MSI |
+ +---------+ +---------+
+ ^ ^ ^
+ | | |
+ +---------+ +---------+ +---------+
+ | PCH-LPC | | Devices | | Devices |
+ +---------+ +---------+ +---------+
+ ^
+ |
+ +---------+
+ | Devices |
+ +---------+
+
+ACPI-related definitions
+========================
+
+CPUINTC::
+
+ ACPI_MADT_TYPE_CORE_PIC;
+ struct acpi_madt_core_pic;
+ enum acpi_madt_core_pic_version;
+
+LIOINTC::
+
+ ACPI_MADT_TYPE_LIO_PIC;
+ struct acpi_madt_lio_pic;
+ enum acpi_madt_lio_pic_version;
+
+EIOINTC::
+
+ ACPI_MADT_TYPE_EIO_PIC;
+ struct acpi_madt_eio_pic;
+ enum acpi_madt_eio_pic_version;
+
+HTVECINTC::
+
+ ACPI_MADT_TYPE_HT_PIC;
+ struct acpi_madt_ht_pic;
+ enum acpi_madt_ht_pic_version;
+
+PCH-PIC::
+
+ ACPI_MADT_TYPE_BIO_PIC;
+ struct acpi_madt_bio_pic;
+ enum acpi_madt_bio_pic_version;
+
+PCH-MSI::
+
+ ACPI_MADT_TYPE_MSI_PIC;
+ struct acpi_madt_msi_pic;
+ enum acpi_madt_msi_pic_version;
+
+PCH-LPC::
+
+ ACPI_MADT_TYPE_LPC_PIC;
+ struct acpi_madt_lpc_pic;
+ enum acpi_madt_lpc_pic_version;
+
+References
+==========
+
+Documentation of Loongson-3A5000:
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-CN.pdf (in Chinese)
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-3A5000-usermanual-1.02-EN.pdf (in English)
+
+Documentation of Loongson's LS7A chipset:
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-CN.pdf (in Chinese)
+
+ https://github.com/loongson/LoongArch-Documentation/releases/latest/download/Loongson-7A1000-usermanual-2.00-EN.pdf (in English)
+
+Note: CPUINTC is CSR.ECFG/CSR.ESTAT and its interrupt controller described
+in Section 7.4 of "LoongArch Reference Manual, Vol 1"; LIOINTC is "Legacy I/O
+Interrupts" described in Section 11.1 of "Loongson 3A5000 Processor Reference
+Manual"; EIOINTC is "Extended I/O Interrupts" described in Section 11.2 of
+"Loongson 3A5000 Processor Reference Manual"; HTVECINTC is "HyperTransport
+Interrupts" described in Section 14.3 of "Loongson 3A5000 Processor Reference

This diff is incomplete. Download the complete patch.

Documentation/translations/zh_CN/index.rst

View file

This diff is incomplete. Download the complete patch.

Documentation/translations/zh_CN/loongarch/features.rst

View file

This diff is incomplete. Download the complete patch.

Documentation/translations/zh_CN/loongarch/index.rst

View file

This diff is incomplete. Download the complete patch.

Documentation/translations/zh_CN/loongarch/introduction.rst

View file

This diff is incomplete. Download the complete patch.

Documentation/translations/zh_CN/loongarch/irq-chip-model.rst

View file

This diff is incomplete. Download the complete patch.

MAINTAINERS

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/Kbuild

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/Kconfig.debug

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/boot/.gitignore

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/boot/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/boot/dts/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/configs/loongson3_defconfig

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/Kbuild

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/acenv.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/acpi.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/addrspace.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/asm-offsets.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/asm-prototypes.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/asm.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/asmmacro.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/atomic.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/barrier.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/bitops.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/bitrev.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/bootinfo.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/branch.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/bug.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cache.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cacheflush.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cacheops.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/clocksource.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cmpxchg.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/compiler.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cpu-features.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cpu-info.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cpu.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/cpufeature.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/delay.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/dma-direct.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/dmi.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/efi.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/elf.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/entry-common.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/exec.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/fb.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/fixmap.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/fpregdef.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/fpu.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/futex.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/hardirq.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/hugetlb.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/hw_irq.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/idle.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/inst.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/io.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/irq.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/irq_regs.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/irqflags.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/kdebug.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/linkage.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/local.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/loongarch.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/loongson.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/mmu.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/mmu_context.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/mmzone.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/module.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/module.lds.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/numa.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/page.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/percpu.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/perf_event.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/pgalloc.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/pgtable-bits.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/prefetch.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/processor.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/ptrace.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/reboot.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/regdef.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/seccomp.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/serial.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/setup.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/shmparam.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/smp.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/sparsemem.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/stackframe.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/stacktrace.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/string.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/switch_to.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/syscall.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/thread_info.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/time.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/timex.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/tlb.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/tlbflush.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/topology.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/types.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/uaccess.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/unistd.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vdso.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vdso/clocksource.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vdso/gettimeofday.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vdso/processor.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vdso/vdso.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vdso/vsyscall.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vermagic.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/vmalloc.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/Kbuild

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/auxvec.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/bitsperlong.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/break.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/byteorder.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/hwcap.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/ptrace.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/reg.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/sigcontext.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/signal.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/ucontext.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/uapi/asm/unistd.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/.gitignore

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/access-helper.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/acpi.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/asm-offsets.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/cacheinfo.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/cpu-probe.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/dma.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/efi.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/elf.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/entry.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/env.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/fpu.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/genex.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/head.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/idle.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/inst.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/io.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/irq.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/mem.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/module-sections.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/module.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/numa.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/proc.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/process.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/ptrace.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/reset.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/setup.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/signal.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/smp.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/switch.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/syscall.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/time.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/topology.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/traps.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/vdso.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/vmlinux.lds.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/lib/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/lib/clear_user.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/lib/copy_user.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/lib/delay.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/lib/dump_tlb.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/cache.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/extable.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/fault.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/hugetlbpage.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/init.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/ioremap.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/maccess.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/mmap.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/page.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/pgtable.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/tlb.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/tlbex.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/pci/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/.gitignore

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/Makefile

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/elf.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/gen_vdso_offsets.sh

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/sigreturn.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/vdso.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/vdso.lds.S

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/vdso/vgettimeofday.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/drm_vm.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/ttm/ttm_module.c

View file

This diff is incomplete. Download the complete patch.

drivers/irqchip/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/irqchip/irq-loongson-liointc.c

View file

This diff is incomplete. Download the complete patch.

include/drm/drm_cache.h

View file

This diff is incomplete. Download the complete patch.

include/linux/cpuhotplug.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/audit.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/elf-em.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/elf.h

View file

This diff is incomplete. Download the complete patch.

include/uapi/linux/kexec.h

View file

This diff is incomplete. Download the complete patch.

scripts/sorttable.c

View file

This diff is incomplete. Download the complete patch.

scripts/subarch.include

View file

This diff is incomplete. Download the complete patch.

tools/include/uapi/asm/bitsperlong.h

View file

This diff is incomplete. Download the complete patch.