Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
0da75c3
cpu: Fix broken cmdline "nosmp" and "maxcpus=0"
chenhuacai Jun 14, 2024
07fe579
kthread: Unify kernel_thread() and user_mode_thread()
chenhuacai May 8, 2023
8636c71
genirq/msi, platform-msi: Adjust return value of msi_domain_prepare_i…
chenhuacai May 26, 2023
1cbe023
irqchip/loongson-pch-msi: Add machanism to limit msi allocation
chenhuacai May 26, 2023
322e1f6
irqchip/loongson-liointc: Set different ISRs for different cores
chenhuacai Jun 5, 2024
ca28b8a
irqchip/loongson-eiointc: Use early_cpu_to_node() instead of cpu_to_n…
chenhuacai Jun 15, 2024
262ab8f
irqchip/loongson-eiointc: Improve IRQ affinity setting
chenhuacai Nov 9, 2022
f1263a5
PCI: use local_pci_probe when best selected cpu is offline
Jun 5, 2024
987204c
PCI: loongson: Add LS7A MSI enablement quirk
chenhuacai Jun 5, 2024
80d8498
LoongArch: Define __ARCH_WANT_NEW_STAT in unistd.h
chenhuacai Feb 28, 2024
1255318
LoongArch: Always enumerate MADT and setup logical-physical CPU mapping
chenhuacai Jun 15, 2024
94945b0
LoongArch: Add irq_work support via self IPIs
chenhuacai May 12, 2024
fa9f410
LoongArch: Add writecombine support for DMW-based ioremap()
chenhuacai Jun 13, 2024
4bb9e05
LoongArch: Add ACPI standard hardware register based S3 support
FlyGoat Jun 13, 2024
831efce
LoongArch: Add CPUFreq driver support
chenhuacai Sep 5, 2022
f185a77
LoongArch: Add CPU HWMon platform driver
chenhuacai Oct 29, 2020
d014aa9
SH: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK
chenhuacai Jul 12, 2022
9f89e52
fs/ntfs3: Update log->page_{mask,bits} if log->page_size changed
chenhuacai May 25, 2024
e56253c
fs/ntfs3: Rename the label end_reply to end_replay
chenhuacai May 25, 2024
7180a3c
LoongArch: Add HIGHMEM and FDT support for future
chenhuacai Apr 12, 2021
73caa76
LoongArch: Add debug machanism support
chenhuacai Dec 31, 2020
a808bb7
LoongArch: Add LS7A IOMMU support
chenhuacai Sep 23, 2021
b7201fa
USB: Fix OHCI/XHCI wakeup problems
chenhuacai Oct 23, 2021
506ab78
drivers/firmware: Move sysfb_init() from device_initcall to fs_initcall
chenhuacai Jan 28, 2024
d02e2d0
drm/Makefile: Move tiny drivers before native drivers
chenhuacai Nov 7, 2023
9cef4f5
drm/radeon: Workaround radeon driver bug for Loongson
chenhuacai Feb 22, 2021
2798c87
drm/radeon: Call mmiowb() at the end of radeon_ring_commit()
chenhuacai Feb 20, 2024
0017d64
stmmac: Expose module parameters
FreeFlyingSheep Aug 17, 2022
00ec281
stmmac: pci: Add LS7A support for dwmac-loongson
FreeFlyingSheep Aug 17, 2022
69a74b5
tty: Add univt framework support
chenhuacai Aug 6, 2019
e8058af
tty: Add Chinese fonts support in console
chenhuacai Aug 6, 2019
fb2d32b
LoongArch: Add Loongson Binary Translation syscall support
chenhuacai Dec 31, 2020
d60ce45
build(deps): bump urllib3 in /drivers/gpu/drm/ci/xfails
dependabot[bot] Jun 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions arch/loongarch/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ config LOONGARCH
select PERF_USE_VMALLOC
select RTC_LIB
select SPARSE_IRQ
select SYS_SUPPORTS_HIGHMEM
select SYSCTL_ARCH_UNALIGN_ALLOW
select SYSCTL_ARCH_UNALIGN_NO_WARN
select SYSCTL_EXCEPTION_TRACE
Expand Down Expand Up @@ -224,6 +225,19 @@ config STACKTRACE_SUPPORT
bool
default y

#
# - Highmem only makes sense for the 32-bit kernel.
# - We use SYS_SUPPORTS_HIGHMEM to offer highmem only for systems where we
# know they might have memory configurations that could make use of highmem
# support.
#
config HIGHMEM
bool "High Memory Support"
depends on 32BIT && CPU_SUPPORTS_HIGHMEM && SYS_SUPPORTS_HIGHMEM

config SYS_SUPPORTS_HIGHMEM
bool

# MACH_LOONGSON32 and MACH_LOONGSON64 are deliberately carried over from the
# MIPS Loongson code, to preserve Loongson-specific code paths in drivers that
# are shared between architectures, and specifically expecting the symbols.
Expand Down Expand Up @@ -696,6 +710,7 @@ config ARCH_HIBERNATION_POSSIBLE

source "kernel/power/Kconfig"
source "drivers/acpi/Kconfig"
source "drivers/cpufreq/Kconfig"

endmenu

Expand Down
6 changes: 6 additions & 0 deletions arch/loongarch/Kconfig.debug
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,9 @@ config UNWINDER_ORC
by roughly 2-4MB, depending on your kernel config.

endchoice

config SPINLOCK_TEST
tristate "Enable spinlock timing tests in debugfs"
default n
help
Add several files to the debugfs to test spinlock speed.
4 changes: 4 additions & 0 deletions arch/loongarch/boot/dts/loongson/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_CPU_LOONGSON64) += loongson3_ls7a.dtb

obj-y += $(patsubst %.dtb, %.dtb.o, $(dtb-y))
235 changes: 235 additions & 0 deletions arch/loongarch/boot/dts/loongson/loongson3.dtsi
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
// SPDX-License-Identifier: GPL-2.0
/ {
/*
* Loongson-3 may have as many as 4 nodes, each node has 4 cores.
* Each core has its own pcache and cores in the same node share scache.
*/
cpus {
#address-cells = <1>;
#size-cells = <0>;

cpu@0 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x0>;
l2-cache = <&vcache0>;
next-level-cache = <&scache0>;
};

cpu@1 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x1>;
l2-cache = <&vcache1>;
next-level-cache = <&scache0>;
};

cpu@2 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x2>;
l2-cache = <&vcache2>;
next-level-cache = <&scache0>;
};

cpu@3 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x3>;
l2-cache = <&vcache3>;
next-level-cache = <&scache0>;
};

cpu@4 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x4>;
l2-cache = <&vcache4>;
next-level-cache = <&scache1>;
};

cpu@5 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x5>;
l2-cache = <&vcache5>;
next-level-cache = <&scache1>;
};

cpu@6 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x6>;
l2-cache = <&vcache6>;
next-level-cache = <&scache1>;
};

cpu@7 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x7>;
l2-cache = <&vcache7>;
next-level-cache = <&scache1>;
};

cpu@8 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x8>;
l2-cache = <&vcache8>;
next-level-cache = <&scache2>;
};

cpu@9 {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0x9>;
l2-cache = <&vcache9>;
next-level-cache = <&scache2>;
};

cpu@a {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0xa>;
l2-cache = <&vcachea>;
next-level-cache = <&scache2>;
};

cpu@b {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0xb>;
l2-cache = <&vcacheb>;
next-level-cache = <&scache2>;
};

cpu@c {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0xc>;
l2-cache = <&vcachec>;
next-level-cache = <&scache3>;
};

cpu@d {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0xd>;
l2-cache = <&vcached>;
next-level-cache = <&scache3>;
};

cpu@e {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0xe>;
l2-cache = <&vcachee>;
next-level-cache = <&scache3>;
};

cpu@f {
compatible = "loongson,loongson3";
device_type = "cpu";
reg = <0xf>;
l2-cache = <&vcachef>;
next-level-cache = <&scache3>;
};

vcache0: l2-cache0 {
compatible = "cache";
next-level-cache = <&scache0>;
};

vcache1: l2-cache1 {
compatible = "cache";
next-level-cache = <&scache0>;
};

vcache2: l2-cache2 {
compatible = "cache";
next-level-cache = <&scache0>;
};

vcache3: l2-cache3 {
compatible = "cache";
next-level-cache = <&scache0>;
};

vcache4: l2-cache4 {
compatible = "cache";
next-level-cache = <&scache1>;
};

vcache5: l2-cache5 {
compatible = "cache";
next-level-cache = <&scache1>;
};

vcache6: l2-cache6 {
compatible = "cahce";
next-level-cache = <&scache1>;
};

vcache7: l2-cache7 {
compatible = "cache";
next-level-cache = <&scache1>;
};

vcache8: l2-cache8 {
compatible = "cache";
next-level-cache = <&scache2>;
};

vcache9: l2-cache9 {
compatible = "cache";
next-level-cache = <&scache2>;
};

vcachea: l2-cachea {
compatible = "cache";
next-level-cache = <&scache2>;
};

vcacheb: l2-cacheb {
compatible = "cache";
next-level-cache = <&scache2>;
};

vcachec: l2-cachec {
compatible = "cache";
next-level-cache = <&scache3>;
};

vcached: l2-cached {
compatible = "cache";
next-level-cache = <&scache3>;
};

vcachee: l2-cachee {
compatible = "cache";
next-level-cache = <&scache3>;
};

vcachef: l2-cachef {
compatible = "cache";
next-level-cache = <&scache3>;
};

scache0: l3-cache0 {
compatible = "cache";
};

scache1: l3-cache1 {
compatible = "cache";
};

scache2: l3-cache2 {
compatible = "cache";
};

scache3: l3-cache3 {
compatible = "cache";
};
};
};
Loading