Skip to content

Commit 0586ade

Browse files
committed
Merge tag 'loongarch-kvm-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson into HEAD
LoongArch KVM changes for v6.13 1. Add iocsr and mmio bus simulation in kernel. 2. Add in-kernel interrupt controller emulation. 3. Add virt extension support for eiointc irqchip.
2 parents 7b541d5 + 9899b82 commit 0586ade

File tree

338 files changed

+4782
-1364
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

338 files changed

+4782
-1364
lines changed

.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -665,6 +665,7 @@ Tomeu Vizoso <[email protected]> <[email protected]>
665665
Thomas Graf <[email protected]>
666666
667667
Thomas Pedersen <[email protected]>
668+
668669
669670
670671

CREDITS

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1204,6 +1204,10 @@ S: Dreisbachstrasse 24
12041204
S: D-57250 Netphen
12051205
S: Germany
12061206

1207+
N: Florian Fainelli
1208+
1209+
D: DSA
1210+
12071211
N: Rik Faith
12081212
12091213
D: Future Domain TMC-16x0 SCSI driver (author)

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6688,7 +6688,7 @@
66886688
0: no polling (default)
66896689

66906690
thp_anon= [KNL]
6691-
Format: <size>,<size>[KMG]:<state>;<size>-<size>[KMG]:<state>
6691+
Format: <size>[KMG],<size>[KMG]:<state>;<size>[KMG]-<size>[KMG]:<state>
66926692
state is one of "always", "madvise", "never" or "inherit".
66936693
Control the default behavior of the system with respect
66946694
to anonymous transparent hugepages.

Documentation/admin-guide/mm/transhuge.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ control by passing the parameter ``transparent_hugepage=always`` or
303303
kernel command line.
304304

305305
Alternatively, each supported anonymous THP size can be controlled by
306-
passing ``thp_anon=<size>,<size>[KMG]:<state>;<size>-<size>[KMG]:<state>``,
306+
passing ``thp_anon=<size>[KMG],<size>[KMG]:<state>;<size>[KMG]-<size>[KMG]:<state>``,
307307
where ``<size>`` is the THP size (must be a power of 2 of PAGE_SIZE and
308308
supported anonymous THP) and ``<state>`` is one of ``always``, ``madvise``,
309309
``never`` or ``inherit``.

Documentation/arch/loongarch/irq-chip-model.rst

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,70 @@ to CPUINTC directly::
8585
| Devices |
8686
+---------+
8787

88+
Virtual Extended IRQ model
89+
==========================
90+
91+
In this model, IPI (Inter-Processor Interrupt) and CPU Local Timer interrupt
92+
go to CPUINTC directly, CPU UARTS interrupts go to PCH-PIC, while all other
93+
devices interrupts go to PCH-PIC/PCH-MSI and gathered by V-EIOINTC (Virtual
94+
Extended I/O Interrupt Controller), and then go to CPUINTC directly::
95+
96+
+-----+ +-------------------+ +-------+
97+
| IPI |--> | CPUINTC(0-255vcpu)| <-- | Timer |
98+
+-----+ +-------------------+ +-------+
99+
^
100+
|
101+
+-----------+
102+
| V-EIOINTC |
103+
+-----------+
104+
^ ^
105+
| |
106+
+---------+ +---------+
107+
| PCH-PIC | | PCH-MSI |
108+
+---------+ +---------+
109+
^ ^ ^
110+
| | |
111+
+--------+ +---------+ +---------+
112+
| UARTs | | Devices | | Devices |
113+
+--------+ +---------+ +---------+
114+
115+
116+
Description
117+
-----------
118+
V-EIOINTC (Virtual Extended I/O Interrupt Controller) is an extension of
119+
EIOINTC, it only works in VM mode which runs in KVM hypervisor. Interrupts can
120+
be routed to up to four vCPUs via standard EIOINTC, however with V-EIOINTC
121+
interrupts can be routed to up to 256 virtual cpus.
122+
123+
With standard EIOINTC, interrupt routing setting includes two parts: eight
124+
bits for CPU selection and four bits for CPU IP (Interrupt Pin) selection.
125+
For CPU selection there is four bits for EIOINTC node selection, four bits
126+
for EIOINTC CPU selection. Bitmap method is used for CPU selection and
127+
CPU IP selection, so interrupt can only route to CPU0 - CPU3 and IP0-IP3 in
128+
one EIOINTC node.
129+
130+
With V-EIOINTC it supports to route more CPUs and CPU IP (Interrupt Pin),
131+
there are two newly added registers with V-EIOINTC.
132+
133+
EXTIOI_VIRT_FEATURES
134+
--------------------
135+
This register is read-only register, which indicates supported features with
136+
V-EIOINTC. Feature EXTIOI_HAS_INT_ENCODE and EXTIOI_HAS_CPU_ENCODE is added.
137+
138+
Feature EXTIOI_HAS_INT_ENCODE is part of standard EIOINTC. If it is 1, it
139+
indicates that CPU Interrupt Pin selection can be normal method rather than
140+
bitmap method, so interrupt can be routed to IP0 - IP15.
141+
142+
Feature EXTIOI_HAS_CPU_ENCODE is entension of V-EIOINTC. If it is 1, it
143+
indicates that CPU selection can be normal method rather than bitmap method,
144+
so interrupt can be routed to CPU0 - CPU255.
145+
146+
EXTIOI_VIRT_CONFIG
147+
------------------
148+
This register is read-write register, for compatibility intterupt routed uses
149+
the default method which is the same with standard EIOINTC. If the bit is set
150+
with 1, it indicated HW to use normal method rather than bitmap method.
151+
88152
Advanced Extended IRQ model
89153
===========================
90154

Documentation/devicetree/bindings/firmware/arm,scmi.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ properties:
124124
atomic mode of operation, even if requested.
125125
default: 0
126126

127-
max-rx-timeout-ms:
127+
arm,max-rx-timeout-ms:
128128
description:
129129
An optional time value, expressed in milliseconds, representing the
130130
transport maximum timeout value for the receive channel. The value should

Documentation/devicetree/bindings/net/xlnx,axi-ethernet.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ properties:
6161
- gmii
6262
- rgmii
6363
- sgmii
64-
- 1000BaseX
64+
- 1000base-x
6565

6666
xlnx,phy-type:
6767
description:

Documentation/netlink/specs/mptcp_pm.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,6 @@ operations:
293293
doc: Get endpoint information
294294
attribute-set: attr
295295
dont-validate: [ strict ]
296-
flags: [ uns-admin-perm ]
297296
do: &get-addr-attrs
298297
request:
299298
attributes:

Documentation/networking/j1939.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ format, the Group Extension is set in the PS-field.
121121

122122
On the other hand, when using PDU1 format, the PS-field contains a so-called
123123
Destination Address, which is _not_ part of the PGN. When communicating a PGN
124-
from user space to kernel (or vice versa) and PDU2 format is used, the PS-field
124+
from user space to kernel (or vice versa) and PDU1 format is used, the PS-field
125125
of the PGN shall be set to zero. The Destination Address shall be set
126126
elsewhere.
127127

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

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,61 @@ PCH-LPC/PCH-MSI,然后被EIOINTC统一收集,再直接到达CPUINTC::
8787
| Devices |
8888
+---------+
8989

90+
虚拟扩展IRQ模型
91+
===============
92+
93+
在这种模型里面, IPI(Inter-Processor Interrupt) 和CPU本地时钟中断直接发送到CPUINTC,
94+
CPU串口 (UARTs) 中断发送到PCH-PIC, 而其他所有设备的中断则分别发送到所连接的PCH_PIC/
95+
PCH-MSI, 然后V-EIOINTC统一收集,再直接到达CPUINTC::
96+
97+
+-----+ +-------------------+ +-------+
98+
| IPI |--> | CPUINTC(0-255vcpu)| <-- | Timer |
99+
+-----+ +-------------------+ +-------+
100+
^
101+
|
102+
+-----------+
103+
| V-EIOINTC |
104+
+-----------+
105+
^ ^
106+
| |
107+
+---------+ +---------+
108+
| PCH-PIC | | PCH-MSI |
109+
+---------+ +---------+
110+
^ ^ ^
111+
| | |
112+
+--------+ +---------+ +---------+
113+
| UARTs | | Devices | | Devices |
114+
+--------+ +---------+ +---------+
115+
116+
V-EIOINTC 是EIOINTC的扩展, 仅工作在虚拟机模式下, 中断经EIOINTC最多可个路由到
117+
4个虚拟CPU. 但中断经V-EIOINTC最多可个路由到256个虚拟CPU.
118+
119+
传统的EIOINTC中断控制器,中断路由分为两个部分:8比特用于控制路由到哪个CPU,
120+
4比特用于控制路由到特定CPU的哪个中断管脚。控制CPU路由的8比特前4比特用于控制
121+
路由到哪个EIOINTC节点,后4比特用于控制此节点哪个CPU。中断路由在选择CPU路由
122+
和CPU中断管脚路由时,使用bitmap编码方式而不是正常编码方式,所以对于一个
123+
EIOINTC中断控制器节点,中断只能路由到CPU0 - CPU3,中断管脚IP0-IP3。
124+
125+
V-EIOINTC新增了两个寄存器,支持中断路由到更多CPU个和中断管脚。
126+
127+
V-EIOINTC功能寄存器
128+
-------------------
129+
功能寄存器是只读寄存器,用于显示V-EIOINTC支持的特性,目前两个支持两个特性
130+
EXTIOI_HAS_INT_ENCODE 和 EXTIOI_HAS_CPU_ENCODE。
131+
132+
特性EXTIOI_HAS_INT_ENCODE是传统EIOINTC中断控制器的一个特性,如果此比特为1,
133+
显示CPU中断管脚路由方式支持正常编码,而不是bitmap编码,所以中断可以路由到
134+
管脚IP0 - IP15。
135+
136+
特性EXTIOI_HAS_CPU_ENCODE是V-EIOINTC新增特性,如果此比特为1,表示CPU路由
137+
方式支持正常编码,而不是bitmap编码,所以中断可以路由到CPU0 - CPU255。
138+
139+
V-EIOINTC配置寄存器
140+
-------------------
141+
配置寄存器是可读写寄存器,为了兼容性考虑,如果不写此寄存器,中断路由采用
142+
和传统EIOINTC相同的路由设置。如果对应比特设置为1,表示采用正常路由方式而
143+
不是bitmap编码的路由方式。
144+
90145
高级扩展IRQ模型
91146
===============
92147

MAINTAINERS

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1174,8 +1174,9 @@ F: Documentation/hid/amd-sfh*
11741174
F: drivers/hid/amd-sfh-hid/
11751175

11761176
AMD SPI DRIVER
1177-
M: Sanjay R Mehta <[email protected]>
1178-
S: Maintained
1177+
M: Raju Rangoju <[email protected]>
1178+
1179+
S: Supported
11791180
F: drivers/spi/spi-amd.c
11801181

11811182
AMD XGBE DRIVER
@@ -2852,7 +2853,7 @@ F: Documentation/devicetree/bindings/arm/qcom.yaml
28522853
F: Documentation/devicetree/bindings/bus/qcom*
28532854
F: Documentation/devicetree/bindings/cache/qcom,llcc.yaml
28542855
F: Documentation/devicetree/bindings/firmware/qcom,scm.yaml
2855-
F: Documentation/devicetree/bindings/reserved-memory/qcom
2856+
F: Documentation/devicetree/bindings/reserved-memory/qcom*
28562857
F: Documentation/devicetree/bindings/soc/qcom/
28572858
F: arch/arm/boot/dts/qcom/
28582859
F: arch/arm/configs/qcom_defconfig
@@ -3745,6 +3746,7 @@ F: drivers/spi/spi-axi-spi-engine.c
37453746
AXI PWM GENERATOR
37463747
M: Michael Hennerich <[email protected]>
37473748
M: Nuno Sá <[email protected]>
3749+
R: Trevor Gamblin <[email protected]>
37483750
37493751
S: Supported
37503752
W: https://ez.analog.com/linux-software-drivers
@@ -16082,7 +16084,6 @@ F: drivers/net/wireless/
1608216084

1608316085
NETWORKING [DSA]
1608416086
M: Andrew Lunn <[email protected]>
16085-
M: Florian Fainelli <[email protected]>
1608616087
M: Vladimir Oltean <[email protected]>
1608716088
S: Maintained
1608816089
F: Documentation/devicetree/bindings/net/dsa/
@@ -19846,12 +19847,10 @@ L: [email protected]
1984619847
S: Maintained
1984719848
Q: https://patchwork.kernel.org/project/linux-riscv/list/
1984819849
T: git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
19849-
F: Documentation/devicetree/bindings/riscv/
19850-
F: arch/riscv/boot/dts/
19851-
X: arch/riscv/boot/dts/allwinner/
19852-
X: arch/riscv/boot/dts/renesas/
19853-
X: arch/riscv/boot/dts/sophgo/
19854-
X: arch/riscv/boot/dts/thead/
19850+
F: arch/riscv/boot/dts/canaan/
19851+
F: arch/riscv/boot/dts/microchip/
19852+
F: arch/riscv/boot/dts/sifive/
19853+
F: arch/riscv/boot/dts/starfive/
1985519854

1985619855
RISC-V PMU DRIVERS
1985719856
M: Atish Patra <[email protected]>
@@ -21618,6 +21617,15 @@ S: Supported
2161821617
W: https://github.com/thesofproject/linux/
2161921618
F: sound/soc/sof/
2162021619

21620+
SOUND - GENERIC SOUND CARD (Simple-Audio-Card, Audio-Graph-Card)
21621+
M: Kuninori Morimoto <[email protected]>
21622+
S: Supported
21623+
21624+
F: sound/soc/generic/
21625+
F: include/sound/simple_card*
21626+
F: Documentation/devicetree/bindings/sound/simple-card.yaml
21627+
F: Documentation/devicetree/bindings/sound/audio-graph*.yaml
21628+
2162121629
SOUNDWIRE SUBSYSTEM
2162221630
M: Vinod Koul <[email protected]>
2162321631
M: Bard Liao <[email protected]>

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 6
33
PATCHLEVEL = 12
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc6
5+
EXTRAVERSION = -rc7
66
NAME = Baby Opossum Posse
77

88
# *DOCUMENTATION*

arch/arm/boot/dts/rockchip/rk3036-kylin.dts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,8 +325,8 @@
325325
&i2c2 {
326326
status = "okay";
327327

328-
rt5616: rt5616@1b {
329-
compatible = "rt5616";
328+
rt5616: audio-codec@1b {
329+
compatible = "realtek,rt5616";
330330
reg = <0x1b>;
331331
clocks = <&cru SCLK_I2S_OUT>;
332332
clock-names = "mclk";

arch/arm/boot/dts/rockchip/rk3036.dtsi

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -384,12 +384,13 @@
384384
};
385385
};
386386

387-
acodec: acodec-ana@20030000 {
388-
compatible = "rk3036-codec";
387+
acodec: audio-codec@20030000 {
388+
compatible = "rockchip,rk3036-codec";
389389
reg = <0x20030000 0x4000>;
390-
rockchip,grf = <&grf>;
391390
clock-names = "acodec_pclk";
392391
clocks = <&cru PCLK_ACODEC>;
392+
rockchip,grf = <&grf>;
393+
#sound-dai-cells = <0>;
393394
status = "disabled";
394395
};
395396

@@ -399,7 +400,6 @@
399400
interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
400401
clocks = <&cru PCLK_HDMI>;
401402
clock-names = "pclk";
402-
rockchip,grf = <&grf>;
403403
pinctrl-names = "default";
404404
pinctrl-0 = <&hdmi_ctl>;
405405
#sound-dai-cells = <0>;
@@ -553,11 +553,11 @@
553553
};
554554

555555
spi: spi@20074000 {
556-
compatible = "rockchip,rockchip-spi";
556+
compatible = "rockchip,rk3036-spi";
557557
reg = <0x20074000 0x1000>;
558558
interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
559-
clocks = <&cru PCLK_SPI>, <&cru SCLK_SPI>;
560-
clock-names = "apb-pclk","spi_pclk";
559+
clocks = <&cru SCLK_SPI>, <&cru PCLK_SPI>;
560+
clock-names = "spiclk", "apb_pclk";
561561
dmas = <&pdma 8>, <&pdma 9>;
562562
dma-names = "tx", "rx";
563563
pinctrl-names = "default";

arch/arm64/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2214,6 +2214,7 @@ config ARM64_SME
22142214
bool "ARM Scalable Matrix Extension support"
22152215
default y
22162216
depends on ARM64_SVE
2217+
depends on BROKEN
22172218
help
22182219
The Scalable Matrix Extension (SME) is an extension to the AArch64
22192220
execution state which utilises a substantial subset of the SVE

arch/arm64/boot/dts/freescale/imx8-ss-lvds0.dtsi

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,26 @@ lvds0_subsys: bus@56240000 {
1414
compatible = "fsl,imx8qxp-lpcg";
1515
reg = <0x56243000 0x4>;
1616
#clock-cells = <1>;
17-
clock-output-names = "mipi1_lis_lpcg_ipg_clk";
17+
clock-output-names = "lvds0_lis_lpcg_ipg_clk";
1818
power-domains = <&pd IMX_SC_R_MIPI_1>;
1919
};
2020

2121
qm_lvds0_pwm_lpcg: qxp_mipi1_pwm_lpcg: clock-controller@5624300c {
2222
compatible = "fsl,imx8qxp-lpcg";
2323
reg = <0x5624300c 0x4>;
2424
#clock-cells = <1>;
25-
clock-output-names = "mipi1_pwm_lpcg_clk",
26-
"mipi1_pwm_lpcg_ipg_clk",
27-
"mipi1_pwm_lpcg_32k_clk";
25+
clock-output-names = "lvds0_pwm_lpcg_clk",
26+
"lvds0_pwm_lpcg_ipg_clk",
27+
"lvds0_pwm_lpcg_32k_clk";
2828
power-domains = <&pd IMX_SC_R_MIPI_1_PWM_0>;
2929
};
3030

3131
qm_lvds0_i2c0_lpcg: qxp_mipi1_i2c0_lpcg: clock-controller@56243010 {
3232
compatible = "fsl,imx8qxp-lpcg";
3333
reg = <0x56243010 0x4>;
3434
#clock-cells = <1>;
35-
clock-output-names = "mipi1_i2c0_lpcg_clk",
36-
"mipi1_i2c0_lpcg_ipg_clk";
35+
clock-output-names = "lvds0_i2c0_lpcg_clk",
36+
"lvds0_i2c0_lpcg_ipg_clk";
3737
power-domains = <&pd IMX_SC_R_MIPI_1_I2C_0>;
3838
};
3939

arch/arm64/boot/dts/freescale/imx8-ss-vpu.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ vpu: vpu@2c000000 {
1515
mu_m0: mailbox@2d000000 {
1616
compatible = "fsl,imx6sx-mu";
1717
reg = <0x2d000000 0x20000>;
18-
interrupts = <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>;
18+
interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>;
1919
#mbox-cells = <2>;
2020
power-domains = <&pd IMX_SC_R_VPU_MU_0>;
2121
status = "disabled";
@@ -24,7 +24,7 @@ vpu: vpu@2c000000 {
2424
mu1_m0: mailbox@2d020000 {
2525
compatible = "fsl,imx6sx-mu";
2626
reg = <0x2d020000 0x20000>;
27-
interrupts = <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>;
27+
interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
2828
#mbox-cells = <2>;
2929
power-domains = <&pd IMX_SC_R_VPU_MU_1>;
3030
status = "disabled";

0 commit comments

Comments
 (0)