* [PATCH 1/4] dt-bindings: mips: Add Siflower SF19A2890 based boards
2026-11-04 7:16 [PATCH 0/4] MIPS: Add support for the Siflower SF19A2890 Joseph Telaak via B4 Relay
@ 2026-11-04 7:16 ` Joseph Telaak via B4 Relay
2026-11-04 7:22 ` sashiko-bot
2026-11-04 7:16 ` [PATCH 2/4] MIPS: Add support for Siflower MIPS SoCs Joseph Telaak via B4 Relay
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Joseph Telaak via B4 Relay @ 2026-11-04 7:16 UTC (permalink / raw)
To: Thomas Bogendoerfer, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Burton
Cc: Jiaxun Yang, Chuanhong Guo, linux-mips, devicetree, linux-kernel,
Joseph Telaak
From: Joseph Telaak <joseph@telaak.dev>
The SF19A2890 is a MIPS interAptiv SoC from Siflower (two cores, two
VPEs each) for home routers. Document its compatible and the first
board using it, the GL.iNet GL-SFT1200 ("Opal") travel router.
Signed-off-by: Joseph Telaak <joseph@telaak.dev>
---
.../devicetree/bindings/mips/siflower.yaml | 26 ++++++++++++++++++++++
MAINTAINERS | 8 +++++++
2 files changed, 34 insertions(+)
diff --git a/Documentation/devicetree/bindings/mips/siflower.yaml b/Documentation/devicetree/bindings/mips/siflower.yaml
new file mode 100644
index 000000000..33110f742
--- /dev/null
+++ b/Documentation/devicetree/bindings/mips/siflower.yaml
@@ -0,0 +1,26 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mips/siflower.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Siflower MIPS SoCs
+
+maintainers:
+ - Joseph Telaak <joseph@telaak.dev>
+
+properties:
+ $nodename:
+ const: '/'
+
+ compatible:
+ oneOf:
+ - description: Boards with the Siflower SF19A2890 SoC
+ items:
+ - enum:
+ - glinet,gl-sft1200
+ - const: siflower,sf19a2890
+
+additionalProperties: true
+
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 93abbb315..2a7a083f2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -25698,6 +25698,14 @@ N: sifive
K: fu[57]40
K: [^@]sifive
+SIFLOWER SF19A2890 SOC SUPPORT
+M: Joseph Telaak <joseph@telaak.dev>
+L: linux-mips@vger.kernel.org
+S: Maintained
+F: Documentation/devicetree/bindings/mips/siflower.yaml
+F: drivers/gpio/gpio-siflower.c
+N: sf19a2890
+
SILEAD TOUCHSCREEN DRIVER
M: Hans de Goede <hansg@kernel.org>
L: linux-input@vger.kernel.org
--
Git-155)
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH 1/4] dt-bindings: mips: Add Siflower SF19A2890 based boards
2026-11-04 7:16 ` [PATCH 1/4] dt-bindings: mips: Add Siflower SF19A2890 based boards Joseph Telaak via B4 Relay
@ 2026-11-04 7:22 ` sashiko-bot
0 siblings, 0 replies; 6+ messages in thread
From: sashiko-bot @ 2026-11-04 7:22 UTC (permalink / raw)
To: Joseph Telaak; +Cc: devicetree, robh, conor+dt
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dt-bindings: mips: dangling drivers/gpio/gpio-siflower.c in MAINTAINERS
--
commit bd8c11a7f9d608cf21a8f34b06b16b91d2058197
Author: Joseph Telaak <joseph@telaak.dev>
dt-bindings: mips: Add Siflower SF19A2890 based boards
This commit adds the device tree binding schema for Siflower SF19A2890
MIPS SoC based boards, including the GL.iNet GL-SFT1200, and adds a
corresponding entry in MAINTAINERS.
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 93abbb315065d..2a7a083f2c470 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -25698,6 +25698,14 @@ N: sifive
> K: fu[57]40
> K: [^@]sifive
>
> +SIFLOWER SF19A2890 SOC SUPPORT
> +M: Joseph Telaak <joseph@telaak.dev>
> +L: linux-mips@vger.kernel.org
> +S: Maintained
> +F: Documentation/devicetree/bindings/mips/siflower.yaml
> +F: drivers/gpio/gpio-siflower.c
[Severity: Low]
Should the F: entry for drivers/gpio/gpio-siflower.c be deferred until
the commit that actually adds that driver?
Because drivers/gpio/gpio-siflower.c does not exist in the repository yet,
running scripts/get_maintainer.pl --self-test=patterns triggers a warning
in self_test() when checking the SIFLOWER SF19A2890 SOC SUPPORT section in
MAINTAINERS:
MAINTAINERS: warning: no file matches F: drivers/gpio/gpio-siflower.c
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261104-sf19a2890-mips-v1-0-eae80820af68@telaak.dev?part=1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/4] MIPS: Add support for Siflower MIPS SoCs
2026-11-04 7:16 [PATCH 0/4] MIPS: Add support for the Siflower SF19A2890 Joseph Telaak via B4 Relay
2026-11-04 7:16 ` [PATCH 1/4] dt-bindings: mips: Add Siflower SF19A2890 based boards Joseph Telaak via B4 Relay
@ 2026-11-04 7:16 ` Joseph Telaak via B4 Relay
2026-11-04 7:16 ` [PATCH 3/4] MIPS: dts: Add Siflower SF19A2890 and GL.iNet GL-SFT1200 Joseph Telaak via B4 Relay
2026-11-04 7:16 ` [PATCH 4/4] MIPS: configs: Add sf19a2890_defconfig Joseph Telaak via B4 Relay
3 siblings, 0 replies; 6+ messages in thread
From: Joseph Telaak via B4 Relay @ 2026-11-04 7:16 UTC (permalink / raw)
To: Thomas Bogendoerfer, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Burton
Cc: Jiaxun Yang, Chuanhong Guo, linux-mips, devicetree, linux-kernel,
Joseph Telaak
From: Chuanhong Guo <gch981213@gmail.com>
Siflower MIPS SoCs like SF19A2890 use a dual-core MIPS InterAptiv
processor, built-in GMAC, USB, dual-band WiFi and various other
peripherals.
Notably, they use some ARM PLxxx peripherals, and ARM_AMBA is
selected for the drivers.
Most devices on the market with this chip come with 64M or less
DRAM. A kmalloc.h with malloc alignment override is added to
conserve memory, and a MACH_SIFLOWER_MIPS is created with reduced
features instead of using the generic kernel.
Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
[jt: rebased on v7.4-rc1, "MIPS:" prefix, longer Kconfig help, commit
message grammar and paragraphs, MAINTAINERS line]
Signed-off-by: Joseph Telaak <joseph@telaak.dev>
---
MAINTAINERS | 1 +
arch/mips/Kconfig | 32 +++++++++++++++++++++++++++
arch/mips/generic/Platform | 1 +
arch/mips/include/asm/mach-siflower/kmalloc.h | 9 ++++++++
4 files changed, 43 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 2a7a083f2..9e715a168 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -25703,6 +25703,7 @@ M: Joseph Telaak <joseph@telaak.dev>
L: linux-mips@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/mips/siflower.yaml
+F: arch/mips/include/asm/mach-siflower/
F: drivers/gpio/gpio-siflower.c
N: sf19a2890
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index ed17c9b16..e10145ede 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -937,6 +937,38 @@ config SIBYTE_BIGSUR
select ZONE_DMA32 if 64BIT
select SWIOTLB if ARCH_DMA_ADDR_T_64BIT && PCI
+config MACH_SIFLOWER_MIPS
+ bool "Siflower MIPS SoCs"
+ select MIPS_GENERIC
+ select MACH_GENERIC_CORE
+ select ARM_AMBA
+ select BOOT_RAW
+ select CEVT_R4K
+ select CLKSRC_MIPS_GIC
+ select COMMON_CLK
+ select CPU_MIPSR2_IRQ_EI
+ select CPU_MIPSR2_IRQ_VI
+ select CSRC_R4K
+ select DMA_NONCOHERENT
+ select IRQ_MIPS_CPU
+ select MIPS_CPU_SCACHE
+ select MIPS_GIC
+ select MIPS_L1_CACHE_SHIFT_5
+ select NO_EXCEPT_FILL
+ select SMP_UP if SMP
+ select SYS_HAS_CPU_MIPS32_R2
+ select SYS_SUPPORTS_32BIT_KERNEL
+ select SYS_SUPPORTS_LITTLE_ENDIAN
+ select SYS_SUPPORTS_MIPS16
+ select SYS_SUPPORTS_MIPS_CPS
+ select SYS_SUPPORTS_MULTITHREADING
+ select USE_OF
+ help
+ Select this to build a kernel which supports SoCs from Siflower
+ with MIPS InterAptiv cores, like Siflower SF19A2890. These have
+ ARM PrimeCell peripherals, so ARM_AMBA is selected, and 32-byte
+ cache lines, which allows a smaller kmalloc alignment.
+
config SNI_RM
bool "SNI RM200/300/400"
select ARC_MEMORY
diff --git a/arch/mips/generic/Platform b/arch/mips/generic/Platform
index 0c03623f3..c09a8484d 100644
--- a/arch/mips/generic/Platform
+++ b/arch/mips/generic/Platform
@@ -10,6 +10,7 @@
# Note: order matters, keep the asm/mach-generic include last.
cflags-$(CONFIG_MACH_INGENIC_SOC) += -I$(srctree)/arch/mips/include/asm/mach-ingenic
+cflags-$(CONFIG_MACH_SIFLOWER_MIPS) += -I$(srctree)/arch/mips/include/asm/mach-siflower
cflags-$(CONFIG_MIPS_GENERIC) += -I$(srctree)/arch/mips/include/asm/mach-generic
load-$(CONFIG_MIPS_GENERIC) += 0xffffffff80100000
diff --git a/arch/mips/include/asm/mach-siflower/kmalloc.h b/arch/mips/include/asm/mach-siflower/kmalloc.h
new file mode 100644
index 000000000..d0b270e2e
--- /dev/null
+++ b/arch/mips/include/asm/mach-siflower/kmalloc.h
@@ -0,0 +1,9 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __ASM_MACH_SIFLOWER_KMALLOC_H
+#define __ASM_MACH_SIFLOWER_KMALLOC_H
+
+#ifdef CONFIG_DMA_NONCOHERENT
+#define ARCH_DMA_MINALIGN 32
+#endif
+
+#endif /* __ASM_MACH_SIFLOWER_KMALLOC_H */
--
Git-155)
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/4] MIPS: dts: Add Siflower SF19A2890 and GL.iNet GL-SFT1200
2026-11-04 7:16 [PATCH 0/4] MIPS: Add support for the Siflower SF19A2890 Joseph Telaak via B4 Relay
2026-11-04 7:16 ` [PATCH 1/4] dt-bindings: mips: Add Siflower SF19A2890 based boards Joseph Telaak via B4 Relay
2026-11-04 7:16 ` [PATCH 2/4] MIPS: Add support for Siflower MIPS SoCs Joseph Telaak via B4 Relay
@ 2026-11-04 7:16 ` Joseph Telaak via B4 Relay
2026-11-04 7:16 ` [PATCH 4/4] MIPS: configs: Add sf19a2890_defconfig Joseph Telaak via B4 Relay
3 siblings, 0 replies; 6+ messages in thread
From: Joseph Telaak via B4 Relay @ 2026-11-04 7:16 UTC (permalink / raw)
To: Thomas Bogendoerfer, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Burton
Cc: Jiaxun Yang, Chuanhong Guo, linux-mips, devicetree, linux-kernel,
Joseph Telaak
From: Joseph Telaak <joseph@telaak.dev>
Add a device tree for the Siflower SF19A2890 with its four interAptiv
CPUs (two cores with two VPEs each), the MIPS GIC and its timer, and
the PL011 UART that serves as the console, and one for the GL.iNet
GL-SFT1200 travel router built on it.
The SoC's clock controller has no driver yet, so fixed clocks stand
in for the rates the bootloader programs: 800 MHz for the CPU (and so
for the GIC timer), 100 MHz for the peripheral bus and 125 MHz for
the UART.
Signed-off-by: Joseph Telaak <joseph@telaak.dev>
---
MAINTAINERS | 1 +
arch/mips/boot/dts/Makefile | 1 +
arch/mips/boot/dts/siflower/Makefile | 2 +
.../dts/siflower/sf19a2890-glinet-gl-sft1200.dts | 27 ++++++
arch/mips/boot/dts/siflower/sf19a2890.dtsi | 96 ++++++++++++++++++++++
5 files changed, 127 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 9e715a168..425b52d4f 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -25703,6 +25703,7 @@ M: Joseph Telaak <joseph@telaak.dev>
L: linux-mips@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/mips/siflower.yaml
+F: arch/mips/boot/dts/siflower/
F: arch/mips/include/asm/mach-siflower/
F: drivers/gpio/gpio-siflower.c
N: sf19a2890
diff --git a/arch/mips/boot/dts/Makefile b/arch/mips/boot/dts/Makefile
index 36c5e4c6e..d33cf7f61 100644
--- a/arch/mips/boot/dts/Makefile
+++ b/arch/mips/boot/dts/Makefile
@@ -14,4 +14,5 @@ subdir-y += pic32
subdir-y += qca
subdir-y += ralink
subdir-y += realtek
+subdir-y += siflower
subdir-y += xilfpga
diff --git a/arch/mips/boot/dts/siflower/Makefile b/arch/mips/boot/dts/siflower/Makefile
new file mode 100644
index 000000000..6f5e90aab
--- /dev/null
+++ b/arch/mips/boot/dts/siflower/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
+dtb-$(CONFIG_MACH_SIFLOWER_MIPS) += sf19a2890-glinet-gl-sft1200.dtb
diff --git a/arch/mips/boot/dts/siflower/sf19a2890-glinet-gl-sft1200.dts b/arch/mips/boot/dts/siflower/sf19a2890-glinet-gl-sft1200.dts
new file mode 100644
index 000000000..13e6a0c8b
--- /dev/null
+++ b/arch/mips/boot/dts/siflower/sf19a2890-glinet-gl-sft1200.dts
@@ -0,0 +1,27 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+/dts-v1/;
+
+#include "sf19a2890.dtsi"
+
+/ {
+ model = "GL.iNet GL-SFT1200";
+ compatible = "glinet,gl-sft1200", "siflower,sf19a2890";
+
+ aliases {
+ serial0 = &uart0;
+ };
+
+ chosen {
+ stdout-path = "serial0:115200n8";
+ };
+
+ memory@0 {
+ device_type = "memory";
+ reg = <0x0 0x8000000>;
+ };
+};
+
+&uart0 {
+ status = "okay";
+};
diff --git a/arch/mips/boot/dts/siflower/sf19a2890.dtsi b/arch/mips/boot/dts/siflower/sf19a2890.dtsi
new file mode 100644
index 000000000..3a4b39971
--- /dev/null
+++ b/arch/mips/boot/dts/siflower/sf19a2890.dtsi
@@ -0,0 +1,96 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/interrupt-controller/mips-gic.h>
+
+/ {
+ compatible = "siflower,sf19a2890";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ cpu@0 {
+ device_type = "cpu";
+ compatible = "mti,interaptiv";
+ reg = <0>;
+ clocks = <&cpu_clk>;
+ };
+
+ cpu@1 {
+ device_type = "cpu";
+ compatible = "mti,interaptiv";
+ reg = <1>;
+ clocks = <&cpu_clk>;
+ };
+
+ cpu@2 {
+ device_type = "cpu";
+ compatible = "mti,interaptiv";
+ reg = <2>;
+ clocks = <&cpu_clk>;
+ };
+
+ cpu@3 {
+ device_type = "cpu";
+ compatible = "mti,interaptiv";
+ reg = <3>;
+ clocks = <&cpu_clk>;
+ };
+ };
+
+ /*
+ * The bootloader sets up these clocks. They stand in for the system
+ * clock controller until it has a driver.
+ */
+ cpu_clk: clock-800000000 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <800000000>;
+ };
+
+ pbus_clk: clock-100000000 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <100000000>;
+ };
+
+ uart_clk: clock-125000000 {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <125000000>;
+ };
+
+ soc {
+ compatible = "simple-bus";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+ interrupt-parent = <&gic>;
+
+ uart0: serial@18300000 {
+ compatible = "arm,pl011", "arm,primecell";
+ reg = <0x18300000 0x1000>;
+ interrupts = <GIC_SHARED 226 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&uart_clk>, <&pbus_clk>;
+ clock-names = "uartclk", "apb_pclk";
+ status = "disabled";
+ };
+
+ gic: interrupt-controller@1bdc0000 {
+ compatible = "mti,gic";
+ reg = <0x1bdc0000 0x20000>;
+ interrupt-controller;
+ #interrupt-cells = <3>;
+ mti,reserved-ipi-vectors = <0 8>;
+
+ timer {
+ compatible = "mti,gic-timer";
+ interrupts = <GIC_LOCAL 1 IRQ_TYPE_NONE>;
+ clocks = <&cpu_clk>;
+ };
+ };
+ };
+};
--
Git-155)
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH 4/4] MIPS: configs: Add sf19a2890_defconfig
2026-11-04 7:16 [PATCH 0/4] MIPS: Add support for the Siflower SF19A2890 Joseph Telaak via B4 Relay
` (2 preceding siblings ...)
2026-11-04 7:16 ` [PATCH 3/4] MIPS: dts: Add Siflower SF19A2890 and GL.iNet GL-SFT1200 Joseph Telaak via B4 Relay
@ 2026-11-04 7:16 ` Joseph Telaak via B4 Relay
3 siblings, 0 replies; 6+ messages in thread
From: Joseph Telaak via B4 Relay @ 2026-11-04 7:16 UTC (permalink / raw)
To: Thomas Bogendoerfer, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Paul Burton
Cc: Jiaxun Yang, Chuanhong Guo, linux-mips, devicetree, linux-kernel,
Joseph Telaak
From: Joseph Telaak <joseph@telaak.dev>
Add a defconfig for boards with the Siflower SF19A2890. It boots with
the device tree appended to the kernel, as the GL.iNet GL-SFT1200's
U-Boot passes none.
Signed-off-by: Joseph Telaak <joseph@telaak.dev>
---
MAINTAINERS | 1 +
arch/mips/configs/sf19a2890_defconfig | 15 +++++++++++++++
2 files changed, 16 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 425b52d4f..4eaa92605 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -25704,6 +25704,7 @@ L: linux-mips@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/mips/siflower.yaml
F: arch/mips/boot/dts/siflower/
+F: arch/mips/configs/sf19a2890_defconfig
F: arch/mips/include/asm/mach-siflower/
F: drivers/gpio/gpio-siflower.c
N: sf19a2890
diff --git a/arch/mips/configs/sf19a2890_defconfig b/arch/mips/configs/sf19a2890_defconfig
new file mode 100644
index 000000000..ec0992ac6
--- /dev/null
+++ b/arch/mips/configs/sf19a2890_defconfig
@@ -0,0 +1,15 @@
+CONFIG_SYSVIPC=y
+CONFIG_NO_HZ_IDLE=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_MACH_SIFLOWER_MIPS=y
+CONFIG_MIPS_CPS=y
+CONFIG_NR_CPUS=4
+CONFIG_MIPS_RAW_APPENDED_DTB=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_TMPFS=y
+CONFIG_PRINTK_TIME=y
--
Git-155)
^ permalink raw reply related [flat|nested] 6+ messages in thread