Skip to content

Commit 4f05e82

Browse files
committedMay 22, 2024
Merge tag 'loongarch-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
Pull LoongArch updates from Huacai Chen: - Select some options in Kconfig - Give a chance to build with !CONFIG_SMP - Switch to use built-in rustc target - Add new supported device nodes to dts - Some bug fixes and other small changes - Update the default config file * tag 'loongarch-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: LoongArch: Update Loongson-3 default config file LoongArch: dts: Add new supported device nodes to Loongson-2K2000 LoongArch: dts: Add new supported device nodes to Loongson-2K0500 LoongArch: dts: Remove "disabled" state of clock controller node LoongArch: rust: Switch to use built-in rustc target LoongArch: Fix callchain parse error with kernel tracepoint events again LoongArch: Give a chance to build with !CONFIG_SMP LoongArch: Select THP_SWAP if HAVE_ARCH_TRANSPARENT_HUGEPAGE LoongArch: Select ARCH_WANT_DEFAULT_BPF_JIT LoongArch: Select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 LoongArch: Select ARCH_HAS_FAST_MULTIPLIER
2 parents f33fda2 + 9cc1df4 commit 4f05e82

19 files changed

+243
-29
lines changed
 

‎arch/loongarch/Kconfig

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ config LOONGARCH
1616
select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
1717
select ARCH_HAS_CPU_FINALIZE_INIT
1818
select ARCH_HAS_CURRENT_STACK_POINTER
19+
select ARCH_HAS_FAST_MULTIPLIER
1920
select ARCH_HAS_FORTIFY_SOURCE
2021
select ARCH_HAS_KCOV
2122
select ARCH_HAS_NMI_SAFE_THIS_CPU_OPS
@@ -56,17 +57,20 @@ config LOONGARCH
5657
select ARCH_SUPPORTS_ACPI
5758
select ARCH_SUPPORTS_ATOMIC_RMW
5859
select ARCH_SUPPORTS_HUGETLBFS
60+
select ARCH_SUPPORTS_INT128 if CC_HAS_INT128
5961
select ARCH_SUPPORTS_LTO_CLANG
6062
select ARCH_SUPPORTS_LTO_CLANG_THIN
6163
select ARCH_SUPPORTS_NUMA_BALANCING
6264
select ARCH_USE_BUILTIN_BSWAP
6365
select ARCH_USE_CMPXCHG_LOCKREF
6466
select ARCH_USE_QUEUED_RWLOCKS
6567
select ARCH_USE_QUEUED_SPINLOCKS
68+
select ARCH_WANT_DEFAULT_BPF_JIT
6669
select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
6770
select ARCH_WANT_LD_ORPHAN_WARN
6871
select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP
6972
select ARCH_WANTS_NO_INSTR
73+
select ARCH_WANTS_THP_SWAP if HAVE_ARCH_TRANSPARENT_HUGEPAGE
7074
select BUILDTIME_TABLE_SORT
7175
select COMMON_CLK
7276
select CPU_PM
@@ -174,7 +178,6 @@ config LOONGARCH
174178
select PCI_QUIRKS
175179
select PERF_USE_VMALLOC
176180
select RTC_LIB
177-
select SMP
178181
select SPARSE_IRQ
179182
select SYSCTL_ARCH_UNALIGN_ALLOW
180183
select SYSCTL_ARCH_UNALIGN_NO_WARN
@@ -420,6 +423,7 @@ config EFI_STUB
420423

421424
config SCHED_SMT
422425
bool "SMT scheduler support"
426+
depends on SMP
423427
default y
424428
help
425429
Improves scheduler's performance when there are multiple

‎arch/loongarch/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ ifdef CONFIG_OBJTOOL
101101
KBUILD_CFLAGS += -fno-jump-tables
102102
endif
103103

104-
KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json
104+
KBUILD_RUSTFLAGS += --target=loongarch64-unknown-none-softfloat
105105
KBUILD_RUSTFLAGS_MODULE += -Crelocation-model=pic
106106

107107
ifeq ($(CONFIG_RELOCATABLE),y)

‎arch/loongarch/boot/dts/loongson-2k0500.dtsi

+83-3
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
/dts-v1/;
77

88
#include <dt-bindings/interrupt-controller/irq.h>
9+
#include <dt-bindings/clock/loongson,ls2k-clk.h>
910

1011
/ {
1112
#address-cells = <2>;
@@ -19,14 +20,15 @@
1920
compatible = "loongson,la264";
2021
device_type = "cpu";
2122
reg = <0x0>;
22-
clocks = <&cpu_clk>;
23+
clocks = <&clk LOONGSON2_NODE_CLK>;
2324
};
2425
};
2526

26-
cpu_clk: cpu-clk {
27+
ref_100m: clock-ref-100m {
2728
compatible = "fixed-clock";
2829
#clock-cells = <0>;
29-
clock-frequency = <500000000>;
30+
clock-frequency = <100000000>;
31+
clock-output-names = "ref_100m";
3032
};
3133

3234
cpuintc: interrupt-controller {
@@ -35,6 +37,28 @@
3537
interrupt-controller;
3638
};
3739

40+
thermal-zones {
41+
cpu-thermal {
42+
polling-delay-passive = <1000>;
43+
polling-delay = <5000>;
44+
thermal-sensors = <&tsensor 0>;
45+
46+
trips {
47+
cpu-alert {
48+
temperature = <33000>;
49+
hysteresis = <2000>;
50+
type = "active";
51+
};
52+
53+
cpu-crit {
54+
temperature = <85000>;
55+
hysteresis = <5000>;
56+
type = "critical";
57+
};
58+
};
59+
};
60+
};
61+
3862
bus@10000000 {
3963
compatible = "simple-bus";
4064
ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
@@ -52,6 +76,54 @@
5276
ranges = <1 0x0 0x0 0x16400000 0x4000>;
5377
};
5478

79+
clk: clock-controller@1fe10400 {
80+
compatible = "loongson,ls2k0500-clk";
81+
reg = <0x0 0x1fe10400 0x0 0x2c>;
82+
#clock-cells = <1>;
83+
clocks = <&ref_100m>;
84+
clock-names = "ref_100m";
85+
};
86+
87+
dma-controller@1fe10c00 {
88+
compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
89+
reg = <0 0x1fe10c00 0 0x8>;
90+
interrupt-parent = <&eiointc>;
91+
interrupts = <67>;
92+
clocks = <&clk LOONGSON2_APB_CLK>;
93+
#dma-cells = <1>;
94+
status = "disabled";
95+
};
96+
97+
dma-controller@1fe10c10 {
98+
compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
99+
reg = <0 0x1fe10c10 0 0x8>;
100+
interrupt-parent = <&eiointc>;
101+
interrupts = <68>;
102+
clocks = <&clk LOONGSON2_APB_CLK>;
103+
#dma-cells = <1>;
104+
status = "disabled";
105+
};
106+
107+
dma-controller@1fe10c20 {
108+
compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
109+
reg = <0 0x1fe10c20 0 0x8>;
110+
interrupt-parent = <&eiointc>;
111+
interrupts = <69>;
112+
clocks = <&clk LOONGSON2_APB_CLK>;
113+
#dma-cells = <1>;
114+
status = "disabled";
115+
};
116+
117+
dma-controller@1fe10c30 {
118+
compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
119+
reg = <0 0x1fe10c30 0 0x8>;
120+
interrupt-parent = <&eiointc>;
121+
interrupts = <70>;
122+
clocks = <&clk LOONGSON2_APB_CLK>;
123+
#dma-cells = <1>;
124+
status = "disabled";
125+
};
126+
55127
liointc0: interrupt-controller@1fe11400 {
56128
compatible = "loongson,liointc-2.0";
57129
reg = <0x0 0x1fe11400 0x0 0x40>,
@@ -139,6 +211,14 @@
139211
status = "disabled";
140212
};
141213

214+
tsensor: thermal-sensor@1fe11500 {
215+
compatible = "loongson,ls2k0500-thermal", "loongson,ls2k1000-thermal";
216+
reg = <0x0 0x1fe11500 0x0 0x30>;
217+
interrupt-parent = <&liointc0>;
218+
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
219+
#thermal-sensor-cells = <1>;
220+
};
221+
142222
uart0: serial@1ff40800 {
143223
compatible = "ns16550a";
144224
reg = <0x0 0x1ff40800 0x0 0x10>;

‎arch/loongarch/boot/dts/loongson-2k1000-ref.dts

-4
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,6 @@
113113
status = "okay";
114114
};
115115

116-
&clk {
117-
status = "okay";
118-
};
119-
120116
&rtc0 {
121117
status = "okay";
122118
};

‎arch/loongarch/boot/dts/loongson-2k1000.dtsi

-1
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,6 @@
159159
#clock-cells = <1>;
160160
clocks = <&ref_100m>;
161161
clock-names = "ref_100m";
162-
status = "disabled";
163162
};
164163

165164
gpio0: gpio@1fe00500 {

‎arch/loongarch/boot/dts/loongson-2k2000.dtsi

+45-4
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
/dts-v1/;
77

88
#include <dt-bindings/interrupt-controller/irq.h>
9+
#include <dt-bindings/clock/loongson,ls2k-clk.h>
910

1011
/ {
1112
#address-cells = <2>;
@@ -19,21 +20,22 @@
1920
compatible = "loongson,la364";
2021
device_type = "cpu";
2122
reg = <0x0>;
22-
clocks = <&cpu_clk>;
23+
clocks = <&clk LOONGSON2_NODE_CLK>;
2324
};
2425

2526
cpu1: cpu@2 {
2627
compatible = "loongson,la364";
2728
device_type = "cpu";
2829
reg = <0x1>;
29-
clocks = <&cpu_clk>;
30+
clocks = <&clk LOONGSON2_NODE_CLK>;
3031
};
3132
};
3233

33-
cpu_clk: cpu-clk {
34+
ref_100m: clock-ref-100m {
3435
compatible = "fixed-clock";
3536
#clock-cells = <0>;
36-
clock-frequency = <1400000000>;
37+
clock-frequency = <100000000>;
38+
clock-output-names = "ref_100m";
3739
};
3840

3941
cpuintc: interrupt-controller {
@@ -42,6 +44,28 @@
4244
interrupt-controller;
4345
};
4446

47+
thermal-zones {
48+
cpu-thermal {
49+
polling-delay-passive = <1000>;
50+
polling-delay = <5000>;
51+
thermal-sensors = <&tsensor 0>;
52+
53+
trips {
54+
cpu-alert {
55+
temperature = <40000>;
56+
hysteresis = <2000>;
57+
type = "active";
58+
};
59+
60+
cpu-crit {
61+
temperature = <85000>;
62+
hysteresis = <5000>;
63+
type = "critical";
64+
};
65+
};
66+
};
67+
};
68+
4569
bus@10000000 {
4670
compatible = "simple-bus";
4771
ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
@@ -58,6 +82,14 @@
5882
ranges = <1 0x0 0x0 0x18400000 0x4000>;
5983
};
6084

85+
clk: clock-controller@10010480 {
86+
compatible = "loongson,ls2k2000-clk";
87+
reg = <0x0 0x10010480 0x0 0x100>;
88+
#clock-cells = <1>;
89+
clocks = <&ref_100m>;
90+
clock-names = "ref_100m";
91+
};
92+
6193
pmc: power-management@100d0000 {
6294
compatible = "loongson,ls2k2000-pmc", "loongson,ls2k0500-pmc", "syscon";
6395
reg = <0x0 0x100d0000 0x0 0x58>;
@@ -80,6 +112,15 @@
80112
};
81113
};
82114

115+
tsensor: thermal-sensor@1fe01460 {
116+
compatible = "loongson,ls2k2000-thermal";
117+
reg = <0x0 0x1fe01460 0x0 0x30>,
118+
<0x0 0x1fe0019c 0x0 0x4>;
119+
interrupt-parent = <&liointc>;
120+
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
121+
#thermal-sensor-cells = <1>;
122+
};
123+
83124
liointc: interrupt-controller@1fe01400 {
84125
compatible = "loongson,liointc-1.0";
85126
reg = <0x0 0x1fe01400 0x0 0x64>;

‎arch/loongarch/configs/loongson3_defconfig

+24
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ CONFIG_TASKSTATS=y
1414
CONFIG_TASK_DELAY_ACCT=y
1515
CONFIG_TASK_XACCT=y
1616
CONFIG_TASK_IO_ACCOUNTING=y
17+
CONFIG_PSI=y
18+
CONFIG_IKCONFIG=y
19+
CONFIG_IKCONFIG_PROC=y
20+
CONFIG_IKHEADERS=y
1721
CONFIG_LOG_BUF_SHIFT=18
1822
CONFIG_NUMA_BALANCING=y
1923
CONFIG_MEMCG=y
@@ -129,13 +133,22 @@ CONFIG_IP_MROUTE=y
129133
CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
130134
CONFIG_IP_PIMSM_V1=y
131135
CONFIG_IP_PIMSM_V2=y
136+
CONFIG_INET_AH=m
132137
CONFIG_INET_ESP=m
138+
CONFIG_INET_ESP_OFFLOAD=m
139+
CONFIG_INET_ESPINTCP=y
140+
CONFIG_INET_IPCOMP=m
133141
CONFIG_INET_UDP_DIAG=y
134142
CONFIG_TCP_CONG_ADVANCED=y
135143
CONFIG_TCP_CONG_BBR=m
136144
CONFIG_IPV6_ROUTER_PREF=y
137145
CONFIG_IPV6_ROUTE_INFO=y
146+
CONFIG_INET6_AH=m
138147
CONFIG_INET6_ESP=m
148+
CONFIG_INET6_ESP_OFFLOAD=m
149+
CONFIG_INET6_ESPINTCP=y
150+
CONFIG_INET6_IPCOMP=m
151+
CONFIG_IPV6_MULTIPLE_TABLES=y
139152
CONFIG_IPV6_MROUTE=y
140153
CONFIG_MPTCP=y
141154
CONFIG_NETWORK_PHY_TIMESTAMPING=y
@@ -151,6 +164,8 @@ CONFIG_NF_CONNTRACK_PPTP=m
151164
CONFIG_NF_CONNTRACK_TFTP=m
152165
CONFIG_NF_CT_NETLINK=m
153166
CONFIG_NF_TABLES=m
167+
CONFIG_NF_TABLES_INET=y
168+
CONFIG_NFT_CT=m
154169
CONFIG_NFT_CONNLIMIT=m
155170
CONFIG_NFT_LOG=m
156171
CONFIG_NFT_LIMIT=m
@@ -163,6 +178,7 @@ CONFIG_NFT_QUOTA=m
163178
CONFIG_NFT_REJECT=m
164179
CONFIG_NFT_COMPAT=m
165180
CONFIG_NFT_HASH=m
181+
CONFIG_NFT_FIB_INET=m
166182
CONFIG_NFT_SOCKET=m
167183
CONFIG_NFT_OSF=m
168184
CONFIG_NFT_TPROXY=m
@@ -259,6 +275,7 @@ CONFIG_IP_NF_ARPTABLES=m
259275
CONFIG_IP_NF_ARPFILTER=m
260276
CONFIG_IP_NF_ARP_MANGLE=m
261277
CONFIG_NF_TABLES_IPV6=y
278+
CONFIG_NFT_FIB_IPV6=m
262279
CONFIG_IP6_NF_IPTABLES=y
263280
CONFIG_IP6_NF_MATCH_AH=m
264281
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -279,6 +296,7 @@ CONFIG_IP6_NF_NAT=m
279296
CONFIG_IP6_NF_TARGET_MASQUERADE=m
280297
CONFIG_IP6_NF_TARGET_NPT=m
281298
CONFIG_NF_TABLES_BRIDGE=m
299+
CONFIG_NF_CONNTRACK_BRIDGE=m
282300
CONFIG_BRIDGE_NF_EBTABLES=m
283301
CONFIG_BRIDGE_EBT_BROUTE=m
284302
CONFIG_BRIDGE_EBT_T_FILTER=m
@@ -549,6 +567,7 @@ CONFIG_NGBE=y
549567
CONFIG_TXGBE=y
550568
# CONFIG_NET_VENDOR_WIZNET is not set
551569
# CONFIG_NET_VENDOR_XILINX is not set
570+
CONFIG_MOTORCOMM_PHY=y
552571
CONFIG_PPP=m
553572
CONFIG_PPP_BSDCOMP=m
554573
CONFIG_PPP_DEFLATE=m
@@ -810,6 +829,7 @@ CONFIG_NTB_SWITCHTEC=m
810829
CONFIG_NTB_PERF=m
811830
CONFIG_NTB_TRANSPORT=m
812831
CONFIG_PWM=y
832+
CONFIG_GENERIC_PHY=y
813833
CONFIG_USB4=y
814834
CONFIG_EXT2_FS=y
815835
CONFIG_EXT2_FS_XATTR=y
@@ -875,10 +895,13 @@ CONFIG_UBIFS_FS=m
875895
CONFIG_UBIFS_FS_ADVANCED_COMPR=y
876896
CONFIG_CRAMFS=m
877897
CONFIG_SQUASHFS=y
898+
CONFIG_SQUASHFS_FILE_DIRECT=y
899+
CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT=y
878900
CONFIG_SQUASHFS_XATTR=y
879901
CONFIG_SQUASHFS_LZ4=y
880902
CONFIG_SQUASHFS_LZO=y
881903
CONFIG_SQUASHFS_XZ=y
904+
CONFIG_SQUASHFS_ZSTD=y
882905
CONFIG_MINIX_FS=m
883906
CONFIG_ROMFS_FS=m
884907
CONFIG_PSTORE=m
@@ -960,3 +983,4 @@ CONFIG_DEBUG_FS=y
960983
CONFIG_SCHEDSTATS=y
961984
# CONFIG_DEBUG_PREEMPT is not set
962985
# CONFIG_FTRACE is not set
986+
CONFIG_UNWINDER_ORC=y

0 commit comments

Comments
 (0)