* Re: [PATCH v4 09/15] dt-bindings: dma: atmel: add microchip,lan9691-dma
From: claudiu beznea @ 2026-01-11 14:45 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov
In-Reply-To: <20251229184004.571837-10-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Document Microchip LAN969x DMA compatible which is compatible to SAMA7G5.
>
> Signed-off-by: Robert Marko<robert.marko@sartura.hr>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply
* Re: [PATCH v4 08/15] dt-bindings: crypto: atmel,at91sam9g46-sha: add microchip,lan9691-sha
From: claudiu beznea @ 2026-01-11 14:45 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov, Conor Dooley
In-Reply-To: <20251229184004.571837-9-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Document Microchip LAN969x SHA compatible.
>
> Signed-off-by: Robert Marko<robert.marko@sartura.hr>
> Acked-by: Conor Dooley<conor.dooley@microchip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply
* Re: [PATCH v4 07/15] dt-bindings: crypto: atmel,at91sam9g46-aes: add microchip,lan9691-aes
From: claudiu beznea @ 2026-01-11 14:44 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov, Conor Dooley
In-Reply-To: <20251229184004.571837-8-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Document Microchip LAN969x AES compatible.
>
> Signed-off-by: Robert Marko<robert.marko@sartura.hr>
> Acked-by: Conor Dooley<conor.dooley@microchip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply
* Re: [PATCH v4 03/15] dt-bindings: serial: atmel,at91-usart: add microchip,lan9691-usart
From: claudiu beznea @ 2026-01-11 14:44 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov, Conor Dooley
In-Reply-To: <20251229184004.571837-4-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Document Microchip LAN969x USART compatible.
>
> Signed-off-by: Robert Marko<robert.marko@sartura.hr>
> Acked-by: Conor Dooley<conor.dooley@microchip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply
* Re: [PATCH v4 02/15] dt-bindings: mfd: atmel,sama5d2-flexcom: add microchip,lan9691-flexcom
From: claudiu beznea @ 2026-01-11 14:43 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov, Conor Dooley
In-Reply-To: <20251229184004.571837-3-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Add binding documentation for Microchip LAN969x.
>
> Signed-off-by: Robert Marko<robert.marko@sartura.hr>
> Acked-by: Conor Dooley<conor.dooley@microchip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply
* Re: [PATCH v4 15/15] arm64: dts: microchip: add EV23X71A board
From: claudiu beznea @ 2026-01-11 14:42 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov
In-Reply-To: <20251229184004.571837-16-robert.marko@sartura.hr>
Hi, Robert,
On 12/29/25 20:37, Robert Marko wrote:
> Microchip EV23X71A is an LAN9696 based evaluation board.
>
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> ---
> Changes in v2:
> * Split from SoC DTSI commit
> * Apply DTS coding style
> * Enclose array in i2c-mux
> * Alphanumericaly sort nodes
> * Change management port mode to RGMII-ID
>
> arch/arm64/boot/dts/microchip/Makefile | 1 +
> .../boot/dts/microchip/lan9696-ev23x71a.dts | 757 ++++++++++++++++++
> 2 files changed, 758 insertions(+)
> create mode 100644 arch/arm64/boot/dts/microchip/lan9696-ev23x71a.dts
>
> diff --git a/arch/arm64/boot/dts/microchip/Makefile b/arch/arm64/boot/dts/microchip/Makefile
> index c6e0313eea0f..09d16fc1ce9a 100644
> --- a/arch/arm64/boot/dts/microchip/Makefile
> +++ b/arch/arm64/boot/dts/microchip/Makefile
> @@ -1,4 +1,5 @@
> # SPDX-License-Identifier: GPL-2.0
> +dtb-$(CONFIG_ARCH_LAN969X) += lan9696-ev23x71a.dtb
> dtb-$(CONFIG_ARCH_SPARX5) += sparx5_pcb125.dtb
> dtb-$(CONFIG_ARCH_SPARX5) += sparx5_pcb134.dtb sparx5_pcb134_emmc.dtb
> dtb-$(CONFIG_ARCH_SPARX5) += sparx5_pcb135.dtb sparx5_pcb135_emmc.dtb
> diff --git a/arch/arm64/boot/dts/microchip/lan9696-ev23x71a.dts b/arch/arm64/boot/dts/microchip/lan9696-ev23x71a.dts
> new file mode 100644
> index 000000000000..435df455b078
> --- /dev/null
> +++ b/arch/arm64/boot/dts/microchip/lan9696-ev23x71a.dts
[ ...]
> +&gpio {
> + emmc_sd_pins: emmc-sd-pins {
> + /* eMMC_SD - CMD, CLK, D0, D1, D2, D3, D4, D5, D6, D7, RSTN */
> + pins = "GPIO_14", "GPIO_15", "GPIO_16", "GPIO_17",
> + "GPIO_18", "GPIO_19", "GPIO_20", "GPIO_21",
> + "GPIO_22", "GPIO_23", "GPIO_24";
> + function = "emmc_sd";
> + };
> +
> + fan_pins: fan-pins {
> + pins = "GPIO_25", "GPIO_26";
> + function = "fan";
> + };
> +
> + fc0_pins: fc0-pins {
> + pins = "GPIO_3", "GPIO_4";
> + function = "fc";
> + };
> +
> + fc2_pins: fc2-pins {
> + pins = "GPIO_64", "GPIO_65", "GPIO_66";
> + function = "fc";
> + };
> +
> + fc3_pins: fc3-pins {
> + pins = "GPIO_55", "GPIO_56";
> + function = "fc";
> + };
> +
> + mdio_pins: mdio-pins {
> + pins = "GPIO_9", "GPIO_10";
> + function = "miim";
> + };
> +
> + mdio_irq_pins: mdio-irq-pins {
> + pins = "GPIO_11";
> + function = "miim_irq";
> + };
> +
> + sgpio_pins: sgpio-pins {
> + /* SCK, D0, D1, LD */
> + pins = "GPIO_5", "GPIO_6", "GPIO_7", "GPIO_8";
> + function = "sgpio_a";
> + };
> +
> + usb_ulpi_pins: usb-ulpi-pins {
> + pins = "GPIO_30", "GPIO_31", "GPIO_32", "GPIO_33",
> + "GPIO_34", "GPIO_35", "GPIO_36", "GPIO_37",
> + "GPIO_38", "GPIO_39", "GPIO_40", "GPIO_41";
> + function = "usb_ulpi";
> + };
> +
> + usb_rst_pins: usb-rst-pins {
> + pins = "GPIO_12";
> + function = "usb2phy_rst";
> + };
> +
> + usb_over_pins: usb-over-pins {
> + pins = "GPIO_13";
> + function = "usb_over_detect";
> + };
> +
> + usb_power_pins: usb-power-pins {
> + pins = "GPIO_1";
> + function = "usb_power";
> + };
> +
> + ptp_out_pins: ptp-out-pins {
> + pins = "GPIO_58";
> + function = "ptpsync_4";
> + };
Could you please move this one upper to have all the entries in the gpio
container alphanumerically sorted?
> +
> + ptp_ext_pins: ptp-ext-pins {
> + pins = "GPIO_59";
> + function = "ptpsync_5";
> + };
Same here.
[ ...]
> + port29: port@29 {
> + reg = <29>;
> + phys = <&serdes 11>;
> + phy-handle = <&phy3>;
> + phy-mode = "rgmii-id";
> + microchip,bandwidth = <1000>;
There are some questions around this node from Andrew in v1 of this series,
which I don't see an answer for in any of the following versions. Could you
please clarify?
The rest looks good to me.
Thank you,
Claudiu
^ permalink raw reply
* Re: [PATCH v4 12/15] arm64: dts: microchip: add LAN969x clock header file
From: claudiu beznea @ 2026-01-11 14:42 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov
In-Reply-To: <20251229184004.571837-13-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> LAN969x uses hardware clock indexes, so document theses in a header to make
> them humanly readable.
>
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> ---
> Changes in v4:
> * Move clock indexes from dt-bindings to a DTS header
>
> Changes in v2:
> * Rename file to microchip,lan9691.h
>
> arch/arm64/boot/dts/microchip/clk-lan9691.h | 24 +++++++++++++++++++++
> 1 file changed, 24 insertions(+)
> create mode 100644 arch/arm64/boot/dts/microchip/clk-lan9691.h
>
> diff --git a/arch/arm64/boot/dts/microchip/clk-lan9691.h b/arch/arm64/boot/dts/microchip/clk-lan9691.h
> new file mode 100644
> index 000000000000..f0006a603747
> --- /dev/null
> +++ b/arch/arm64/boot/dts/microchip/clk-lan9691.h
> @@ -0,0 +1,24 @@
> +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
Shouldn't this use the same license as the dtsi including it?
> +
> +#ifndef _DTS_CLK_LAN9691_H
> +#define _DTS_CLK_LAN9691_H
> +
> +#define GCK_ID_QSPI0 0
> +#define GCK_ID_QSPI2 1
> +#define GCK_ID_SDMMC0 2
> +#define GCK_ID_SDMMC1 3
> +#define GCK_ID_MCAN0 4
> +#define GCK_ID_MCAN1 5
> +#define GCK_ID_FLEXCOM0 6
> +#define GCK_ID_FLEXCOM1 7
> +#define GCK_ID_FLEXCOM2 8
> +#define GCK_ID_FLEXCOM3 9
> +#define GCK_ID_TIMER 10
> +#define GCK_ID_USB_REFCLK 11
> +
> +/* Gate clocks */
> +#define GCK_GATE_USB_DRD 12
> +#define GCK_GATE_MCRAMC 13
> +#define GCK_GATE_HMATRIX 14
> +
> +#endif
^ permalink raw reply
* Re: [PATCH v2] serial: 8250_pci: Fix broken RS485 for F81504/508/512
From: Greg Kroah-Hartman @ 2026-01-11 14:16 UTC (permalink / raw)
To: Marnix Rijnart
Cc: Jiri Slaby, linux-kernel, linux-serial, regressions, stable
In-Reply-To: <20260111135933.31316-1-marnix.rijnart@iwell.eu>
On Sun, Jan 11, 2026 at 02:59:17PM +0100, Marnix Rijnart wrote:
> v1: https://patch.msgid.link/20250923221756.26770-1-marnix.rijnart@iwell.eu
> Changes:
> * Added fixes tags
> * Cc stable
>
> Commit 4afeced ("serial: core: fix sanitizing check for RTS settings")
Please use more digits here, "4afeced55baa", like you did in the Fixes:
lines.
> introduced a regression making it impossible to unset
> SER_RS485_RTS_ON_SEND from userspace if SER_RS485_RTS_AFTER_SEND is
> unsupported. Because these devices need RTS to be low on TX (fecf27a)
> they are effectively broken.
>
> The hardware supports both RTS_ON_SEND and RTS_AFTER_SEND,
> so fix this by announcing support for SER_RS485_RTS_AFTER_SEND,
> similar to commit 068d35a.
You can line-wrap at 72 columns, and again, use more digits for the
commit, and spell out the full name of the commit.
> Fixes: 4afeced55baa ("serial: core: fix sanitizing check for RTS settings")
> Fixes: fecf27a373f5 ("serial: 8250_pci: add RS485 for F81504/508/512")
> Cc: stable@vger.kernel.org
So where does this need to be backported to, where the first commit is,
or the second?
thanks,
greg k-h
^ permalink raw reply
* Re: [PATCH v2] serial: 8250_pci: Fix broken RS485 for F81504/508/512
From: Greg Kroah-Hartman @ 2026-01-11 14:14 UTC (permalink / raw)
To: Marnix Rijnart
Cc: Jiri Slaby, linux-kernel, linux-serial, regressions, stable
In-Reply-To: <20260111135933.31316-1-marnix.rijnart@iwell.eu>
On Sun, Jan 11, 2026 at 02:59:17PM +0100, Marnix Rijnart wrote:
> v1: https://patch.msgid.link/20250923221756.26770-1-marnix.rijnart@iwell.eu
> Changes:
> * Added fixes tags
> * Cc stable
This needs to go below the --- line, so that it doesn't show up in the
changelog. The in-kernel documentation should explain this.
thanks,
greg k-h
^ permalink raw reply
* Re: [PATCH v4 13/15] arm64: dts: microchip: add LAN969x support
From: claudiu beznea @ 2026-01-11 14:05 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov
In-Reply-To: <20251229184004.571837-14-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Add support for Microchip LAN969x switch SoC series by adding the SoC DTSI.
>
> Signed-off-by: Robert Marko<robert.marko@sartura.hr>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply
* Re: [PATCH v4 06/15] dt-bindings: rng: atmel,at91-trng: add microchip,lan9691-trng
From: claudiu beznea @ 2026-01-11 14:05 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov, Conor Dooley
In-Reply-To: <20251229184004.571837-7-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Document Microchip LAN9696X TRNG compatible.
s/LAN9696X/LAN969X ?
>
> Signed-off-by: Robert Marko <robert.marko@sartura.hr>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
> ---
> Changes in v3:
> * Pick Acked-by from Conor
>
> Documentation/devicetree/bindings/rng/atmel,at91-trng.yaml | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/Documentation/devicetree/bindings/rng/atmel,at91-trng.yaml b/Documentation/devicetree/bindings/rng/atmel,at91-trng.yaml
> index f78614100ea8..3628251b8c51 100644
> --- a/Documentation/devicetree/bindings/rng/atmel,at91-trng.yaml
> +++ b/Documentation/devicetree/bindings/rng/atmel,at91-trng.yaml
> @@ -19,6 +19,7 @@ properties:
> - microchip,sam9x60-trng
> - items:
> - enum:
> + - microchip,lan9691-trng
> - microchip,sama7g5-trng
> - const: atmel,at91sam9g45-trng
> - items:
^ permalink raw reply
* Re: [PATCH v4 01/15] dt-bindings: usb: Add Microchip LAN969x support
From: claudiu beznea @ 2026-01-11 14:04 UTC (permalink / raw)
To: Robert Marko, robh, krzk+dt, conor+dt, nicolas.ferre,
alexandre.belloni, herbert, davem, vkoul, andi.shyti, lee,
andrew+netdev, edumazet, kuba, pabeni, linusw, Steen.Hegelund,
daniel.machon, UNGLinuxDriver, olivia, radu_nicolae.pirea,
richard.genoud, gregkh, jirislaby, broonie, lars.povlsen,
devicetree, linux-arm-kernel, linux-kernel, linux-crypto,
dmaengine, linux-i2c, netdev, linux-gpio, linux-spi, linux-serial,
linux-usb
Cc: luka.perkov
In-Reply-To: <20251229184004.571837-2-robert.marko@sartura.hr>
On 12/29/25 20:37, Robert Marko wrote:
> Microchip LAN969x has DWC3 compatible controller, though limited to 2.0(HS)
> speed, so document it.
>
> Signed-off-by: Robert Marko<robert.marko@sartura.hr>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply
* [PATCH v2] serial: 8250_pci: Fix broken RS485 for F81504/508/512
From: Marnix Rijnart @ 2026-01-11 13:59 UTC (permalink / raw)
To: Greg Kroah-Hartman, Jiri Slaby
Cc: linux-kernel, linux-serial, regressions, Marnix Rijnart, stable
v1: https://patch.msgid.link/20250923221756.26770-1-marnix.rijnart@iwell.eu
Changes:
* Added fixes tags
* Cc stable
Commit 4afeced ("serial: core: fix sanitizing check for RTS settings")
introduced a regression making it impossible to unset
SER_RS485_RTS_ON_SEND from userspace if SER_RS485_RTS_AFTER_SEND is
unsupported. Because these devices need RTS to be low on TX (fecf27a)
they are effectively broken.
The hardware supports both RTS_ON_SEND and RTS_AFTER_SEND,
so fix this by announcing support for SER_RS485_RTS_AFTER_SEND,
similar to commit 068d35a.
Fixes: 4afeced55baa ("serial: core: fix sanitizing check for RTS settings")
Fixes: fecf27a373f5 ("serial: 8250_pci: add RS485 for F81504/508/512")
Cc: stable@vger.kernel.org
Signed-off-by: Marnix Rijnart <marnix.rijnart@iwell.eu>
---
drivers/tty/serial/8250/8250_pci.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/tty/serial/8250/8250_pci.c b/drivers/tty/serial/8250/8250_pci.c
index 152f914c599d..a9da222bd174 100644
--- a/drivers/tty/serial/8250/8250_pci.c
+++ b/drivers/tty/serial/8250/8250_pci.c
@@ -1645,7 +1645,7 @@ static int pci_fintek_rs485_config(struct uart_port *port, struct ktermios *term
}
static const struct serial_rs485 pci_fintek_rs485_supported = {
- .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND,
+ .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTER_SEND,
/* F81504/508/512 does not support RTS delay before or after send */
};
--
2.52.0
^ permalink raw reply related
* Re: [PATCH] tty: replace use of system_unbound_wq with system_dfl_wq
From: Greg Kroah-Hartman @ 2026-01-11 10:26 UTC (permalink / raw)
To: Marco Crivellari
Cc: linux-kernel, linux-serial, Tejun Heo, Lai Jiangshan,
Frederic Weisbecker, Sebastian Andrzej Siewior, Michal Hocko,
Jiri Slaby
In-Reply-To: <CAAofZF6DCmHnpT8mNGiYRJdeQc9yBooRf=N+WVEw371-ZP06Zw@mail.gmail.com>
On Wed, Dec 24, 2025 at 03:54:01PM +0100, Marco Crivellari wrote:
> On Tue, Nov 4, 2025 at 11:54 AM Marco Crivellari
> <marco.crivellari@suse.com> wrote:
> > drivers/tty/serial/8250/8250_dw.c | 4 ++--
> > drivers/tty/tty_buffer.c | 8 ++++----
> > 2 files changed, 6 insertions(+), 6 deletions(-)
>
> Gentle ping.
This isn't in my queue anymore, are you sure I didn't apply it (sorry,
don't have access to my devel tree at the moment...)
if not, can you resend it?
thanks,
greg k-h
^ permalink raw reply
* [PATCH 1/4 v2] serial: imx: change SERIAL_IMX_CONSOLE to bool
From: Randy Dunlap @ 2026-01-10 23:26 UTC (permalink / raw)
To: linux-kernel
Cc: Randy Dunlap, Greg Kroah-Hartman, Jiri Slaby, Geert Uytterhoeven,
linux-serial
In-Reply-To: <20260110232643.3533351-1-rdunlap@infradead.org>
SERIAL_IMX_CONSOLE is a build option for the imx driver (SERIAL_IMX).
It does not build a separate console driver file, so it can't be built
as a module since it isn't built at all.
Change the Kconfig symbol from tristate to bool and update the help
text accordingly.
Fixes: 0db4f9b91c86 ("tty: serial: imx: enable imx serial console port as module")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
---
v2: drop Fugang Duan <fugang.duan@nxp.com> (mail bounces)
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: linux-serial@vger.kernel.org
drivers/tty/serial/Kconfig | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- linux-next-20251219.orig/drivers/tty/serial/Kconfig
+++ linux-next-20251219/drivers/tty/serial/Kconfig
@@ -486,14 +486,14 @@ config SERIAL_IMX
can enable its onboard serial port by enabling this option.
config SERIAL_IMX_CONSOLE
- tristate "Console on IMX serial port"
+ bool "Console on IMX serial port"
depends on SERIAL_IMX
select SERIAL_CORE_CONSOLE
help
If you have enabled the serial port on the Freescale IMX
- CPU you can make it the console by answering Y/M to this option.
+ CPU you can make it the console by answering Y to this option.
- Even if you say Y/M here, the currently visible virtual console
+ Even if you say Y here, the currently visible virtual console
(/dev/tty0) will still be used as the system console by default, but
you can alter that using a kernel command line option such as
"console=ttymxc0". (Try "man bootparam" or see the documentation of
^ permalink raw reply
* [PATCH 3/4 v2] serial: Kconfig: fix ordering of entries for menu display
From: Randy Dunlap @ 2026-01-10 23:26 UTC (permalink / raw)
To: linux-kernel
Cc: Randy Dunlap, Greg Kroah-Hartman, Jiri Slaby, Geert Uytterhoeven,
linux-serial
In-Reply-To: <20260110232643.3533351-1-rdunlap@infradead.org>
Improve the "Non-8250 serial port support" menu so that entries in it
are displayed in a better order (_CONSOLE after its driver) and so that
intervening symbols don't break up the dependency list, allowing menu
entries to be displayed with proper indentation.
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
---
v2: no change (resending since patch 4 changed)
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: linux-serial@vger.kernel.org
drivers/tty/serial/Kconfig | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
--- linux-next-20251219.orig/drivers/tty/serial/Kconfig
+++ linux-next-20251219/drivers/tty/serial/Kconfig
@@ -413,6 +413,10 @@ config SERIAL_21285_CONSOLE
your boot loader (lilo or loadlin) about how to pass options to the
kernel at boot time.)
+config SERIAL_PXA_NON8250
+ bool
+ depends on !SERIAL_8250 || COMPILE_TEST
+
config SERIAL_PXA
bool "PXA serial port support (DEPRECATED)"
depends on ARCH_PXA || ARCH_MMP
@@ -426,10 +430,6 @@ config SERIAL_PXA
Unless you have a specific need, you should use SERIAL_8250_PXA
instead of this.
-config SERIAL_PXA_NON8250
- bool
- depends on !SERIAL_8250 || COMPILE_TEST
-
config SERIAL_PXA_CONSOLE
bool "Console on PXA serial port (DEPRECATED)"
depends on SERIAL_PXA
@@ -863,15 +863,15 @@ config SERIAL_ICOM
This driver can also be built as a module. If so, the module
will be called icom.
+config HAS_TXX9_SERIAL
+ bool
+
config SERIAL_TXX9
bool "TMPTX39XX/49XX SIO support"
depends on HAS_TXX9_SERIAL
select SERIAL_CORE
default y
-config HAS_TXX9_SERIAL
- bool
-
config SERIAL_TXX9_NR_UARTS
int "Maximum number of TMPTX39XX/49XX SIO ports"
depends on SERIAL_TXX9
@@ -1251,12 +1251,6 @@ config SERIAL_AR933X_NR_UARTS
Set this to the number of serial ports you want the driver
to support.
-config SERIAL_MPS2_UART_CONSOLE
- bool "MPS2 UART console support"
- depends on SERIAL_MPS2_UART
- select SERIAL_CORE_CONSOLE
- select SERIAL_EARLYCON
-
config SERIAL_MPS2_UART
bool "MPS2 UART port"
depends on ARCH_MPS2 || COMPILE_TEST
@@ -1264,6 +1258,12 @@ config SERIAL_MPS2_UART
help
This driver support the UART ports on ARM MPS2.
+config SERIAL_MPS2_UART_CONSOLE
+ bool "MPS2 UART console support"
+ depends on SERIAL_MPS2_UART
+ select SERIAL_CORE_CONSOLE
+ select SERIAL_EARLYCON
+
config SERIAL_ARC
tristate "ARC UART driver support"
select SERIAL_CORE
^ permalink raw reply
* [PATCH 2/4 v2] serial: 8250: fix ordering of entries for menu display
From: Randy Dunlap @ 2026-01-10 23:26 UTC (permalink / raw)
To: linux-kernel
Cc: Randy Dunlap, Greg Kroah-Hartman, Jiri Slaby, Geert Uytterhoeven,
linux-serial
In-Reply-To: <20260110232643.3533351-1-rdunlap@infradead.org>
Improve the "8250/16550 serial support" menu so that entries in it
are displayed in a better order (reorder a few symbols) and so that
intervening symbols don't break up the dependency list, allowing menu
entries to be displayed with proper indentation.
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
---
v2: no change (resending since patch 4 changed)
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: linux-serial@vger.kernel.org
drivers/tty/serial/8250/Kconfig | 95 +++++++++++++++---------------
1 file changed, 48 insertions(+), 47 deletions(-)
--- linux-next-20251219.orig/drivers/tty/serial/8250/Kconfig
+++ linux-next-20251219/drivers/tty/serial/8250/Kconfig
@@ -116,6 +116,7 @@ config SERIAL_8250_DMA
config SERIAL_8250_PCILIB
bool
+ depends on SERIAL_8250 && PCI
config SERIAL_8250_PCI
tristate "8250/16550 PCI device support"
@@ -205,6 +206,37 @@ config SERIAL_8250_EXTENDED
kernel: saying N will just cause the configurator to skip all
the questions about serial driver options. If unsure, say N.
+config SERIAL_8250_SHARE_IRQ
+ bool "Support for sharing serial interrupts"
+ depends on SERIAL_8250_EXTENDED
+ help
+ Some serial boards have hardware support which allows multiple dumb
+ serial ports on the same board to share a single IRQ. To enable
+ support for this in the serial driver, say Y here.
+
+config SERIAL_8250_DETECT_IRQ
+ bool "Autodetect IRQ on standard ports (unsafe)"
+ depends on SERIAL_8250_EXTENDED
+ help
+ Say Y here if you want the kernel to try to guess which IRQ
+ to use for your serial port.
+
+ This is considered unsafe; it is far better to configure the IRQ in
+ a boot script using the setserial command.
+
+ If unsure, say N.
+
+config SERIAL_8250_RSA
+ bool "Support RSA serial ports"
+ depends on SERIAL_8250_EXTENDED
+ help
+ Say Y here if you have a IODATA RSA-DV II/S ISA card and
+ would like to use its >115kbps speeds.
+ You will need to provide module parameter "probe_rsa", or boot-time
+ parameter 8250.probe_rsa with I/O addresses of this card then.
+
+ If you don't have such card, or if unsure, say N.
+
config SERIAL_8250_MANY_PORTS
bool "Support more than 4 legacy serial ports"
depends on SERIAL_8250_EXTENDED
@@ -240,19 +272,6 @@ config SERIAL_8250_ACCENT
To compile this driver as a module, choose M here: the module
will be called 8250_accent.
-config SERIAL_8250_ASPEED_VUART
- tristate "Aspeed Virtual UART"
- depends on SERIAL_8250
- depends on OF
- depends on MFD_SYSCON
- depends on ARCH_ASPEED || COMPILE_TEST
- select REGMAP
- help
- If you want to use the virtual UART (VUART) device on Aspeed
- BMC platforms, enable this option. This enables the 16550A-
- compatible device on the local LPC bus, giving a UART device
- with no physical RS232 connections.
-
config SERIAL_8250_BOCA
tristate "Support Boca cards"
depends on SERIAL_8250 != n && ISA && SERIAL_8250_MANY_PORTS
@@ -293,44 +312,23 @@ config SERIAL_8250_PCI1XXXX
serial driver for the serial interface. This driver support
will ensure to support baud rates upto 1.5Mpbs.
+config SERIAL_8250_ASPEED_VUART
+ tristate "Aspeed Virtual UART"
+ depends on SERIAL_8250
+ depends on OF
+ depends on MFD_SYSCON
+ depends on ARCH_ASPEED || COMPILE_TEST
+ select REGMAP
+ help
+ If you want to use the virtual UART (VUART) device on Aspeed
+ BMC platforms, enable this option. This enables the 16550A-
+ compatible device on the local LPC bus, giving a UART device
+ with no physical RS232 connections.
+
#
# Misc. options/drivers.
#
-config SERIAL_8250_SHARE_IRQ
- bool "Support for sharing serial interrupts"
- depends on SERIAL_8250_EXTENDED
- help
- Some serial boards have hardware support which allows multiple dumb
- serial ports on the same board to share a single IRQ. To enable
- support for this in the serial driver, say Y here.
-
-config SERIAL_8250_DETECT_IRQ
- bool "Autodetect IRQ on standard ports (unsafe)"
- depends on SERIAL_8250_EXTENDED
- help
- Say Y here if you want the kernel to try to guess which IRQ
- to use for your serial port.
-
- This is considered unsafe; it is far better to configure the IRQ in
- a boot script using the setserial command.
-
- If unsure, say N.
-
-config SERIAL_8250_RSA
- bool "Support RSA serial ports"
- depends on SERIAL_8250_EXTENDED
- help
- Say Y here if you have a IODATA RSA-DV II/S ISA card and
- would like to use its >115kbps speeds.
- You will need to provide module parameter "probe_rsa", or boot-time
- parameter 8250.probe_rsa with I/O addresses of this card then.
-
- If you don't have such card, or if unsure, say N.
-
-config SERIAL_8250_DWLIB
- bool
-
config SERIAL_8250_ACORN
tristate "Acorn expansion card serial port support"
depends on ARCH_ACORN && SERIAL_8250
@@ -596,3 +594,6 @@ config SERIAL_OF_PLATFORM
are probed through devicetree, including Open Firmware based
PowerPC systems and embedded systems on architectures using the
flattened device tree format.
+
+config SERIAL_8250_DWLIB
+ bool
^ permalink raw reply
* [PATCH 4/4 v2] serial: SH_SCI: improve "DMA support" prompt
From: Randy Dunlap @ 2026-01-10 23:26 UTC (permalink / raw)
To: linux-kernel
Cc: Randy Dunlap, Greg Kroah-Hartman, Jiri Slaby, Geert Uytterhoeven,
linux-serial
In-Reply-To: <20260110232643.3533351-1-rdunlap@infradead.org>
Having a prompt of "DMA support" suddenly appear during a
"make oldconfig" can be confusing. Add a little helpful text to
the prompt message.
Fixes: 73a19e4c0301 ("serial: sh-sci: Add DMA support.")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
---
v2: make the prompt more like the other SH_SCI prompts (Geert)
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: linux-serial@vger.kernel.org
drivers/tty/serial/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- linux-next-20260109.orig/drivers/tty/serial/Kconfig
+++ linux-next-20260109/drivers/tty/serial/Kconfig
@@ -671,7 +671,7 @@ config SERIAL_SH_SCI_EARLYCON
default ARCH_RENESAS
config SERIAL_SH_SCI_DMA
- bool "DMA support" if EXPERT
+ bool "Support for DMA on SuperH SCI(F)" if EXPERT
depends on SERIAL_SH_SCI && DMA_ENGINE
default ARCH_RENESAS
^ permalink raw reply
* [PATCH 0/4 v2] serial: Kconfig cleanups
From: Randy Dunlap @ 2026-01-10 23:26 UTC (permalink / raw)
To: linux-kernel
Cc: Randy Dunlap, Greg Kroah-Hartman, Jiri Slaby, Geert Uytterhoeven,
linux-serial
Clean up some Kconfig entries.
[PATCH 1/4 v2] serial: imx: change SERIAL_IMX_CONSOLE to bool
[PATCH 2/4 v2] serial: 8250: fix ordering of entries for menu display
[PATCH 3/4 v2] serial: Kconfig: fix ordering of entries for menu display
[PATCH 4/4 v2] serial: SH_SCI: improve "DMA support" prompt
Patches 1-3 are the same as v1 other than dropping
Fugang Duan <fugang.duan@nxp.com> from patch 1/4 (mail bounces).
Patch 4 was modified at Geert's request.
drivers/tty/serial/8250/Kconfig | 95 +++++++++++++++---------------
drivers/tty/serial/Kconfig | 34 +++++-----
2 files changed, 65 insertions(+), 64 deletions(-)
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: linux-serial@vger.kernel.org
^ permalink raw reply
* Re: [PATCH v4 05/11] dt-bindings: riscv: spacemit: add K3 and Pico-ITX board bindings
From: Yixun Lan @ 2026-01-10 11:55 UTC (permalink / raw)
To: Guodong Xu
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Daniel Lezcano,
Thomas Gleixner, Samuel Holland, Anup Patel, Greg Kroah-Hartman,
Jiri Slaby, Lubomir Rintel, Yangyu Chen, Paul Walmsley,
Conor Dooley, Heinrich Schuchardt, Kevin Meng Zhang, Andrew Jones,
devicetree, linux-riscv, linux-kernel, spacemit, linux-serial
In-Reply-To: <20260110-k3-basic-dt-v4-5-d492f3a30ffa@riscstar.com>
Hi Guodong,
On 13:18 Sat 10 Jan , Guodong Xu wrote:
> Add DT binding documentation for the SpacemiT K3 SoC and the board Pico-ITX
> which is a 2.5-inch single-board computer.
>
> Signed-off-by: Guodong Xu <guodong@riscstar.com>
Reviewed-by: Yixun Lan <dlan@gentoo.org>
> ---
> v4: Adjust maintainers list in alphabetic order.
> Declare spacemit,k3-pico-itx as an enum, which can save future
> code change when adding new boards.
> v3: No change.
> v2: Use one-blank-space between name and email address.
> ---
> Documentation/devicetree/bindings/riscv/spacemit.yaml | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/riscv/spacemit.yaml b/Documentation/devicetree/bindings/riscv/spacemit.yaml
> index 9c49482002f7..b958b94a924d 100644
> --- a/Documentation/devicetree/bindings/riscv/spacemit.yaml
> +++ b/Documentation/devicetree/bindings/riscv/spacemit.yaml
> @@ -7,6 +7,7 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
> title: SpacemiT SoC-based boards
>
> maintainers:
> + - Guodong Xu <guodong@riscstar.com>
> - Yangyu Chen <cyy@cyyself.name>
> - Yixun Lan <dlan@gentoo.org>
>
> @@ -26,6 +27,10 @@ properties:
> - xunlong,orangepi-r2s
> - xunlong,orangepi-rv2
> - const: spacemit,k1
> + - items:
> + - enum:
> + - spacemit,k3-pico-itx
> + - const: spacemit,k3
>
> additionalProperties: true
>
>
> --
> 2.43.0
>
--
Yixun Lan (dlan)
^ permalink raw reply
* Re: [PATCH v4 10/11] riscv: dts: spacemit: add initial device tree of SpacemiT K3 SoC
From: Yixun Lan @ 2026-01-10 11:05 UTC (permalink / raw)
To: Guodong Xu
Cc: Inochi Amaoto, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
Daniel Lezcano, Thomas Gleixner, Samuel Holland, Anup Patel,
Greg Kroah-Hartman, Jiri Slaby, Lubomir Rintel, Yangyu Chen,
Paul Walmsley, Conor Dooley, Heinrich Schuchardt,
Kevin Meng Zhang, Andrew Jones, devicetree, linux-riscv,
linux-kernel, spacemit, linux-serial
In-Reply-To: <aWIi9LFdqSF3c-FP@inochi.infowork>
Hi Guodong,
On 18:00 Sat 10 Jan , Inochi Amaoto wrote:
> On Sat, Jan 10, 2026 at 01:18:22PM +0800, Guodong Xu wrote:
> > SpacemiT K3 is equipped with 8 X100 cores, which are RVA23 compliant.
> > Add nodes of uarts, timer and interrupt-controllers.
> >
> > Signed-off-by: Guodong Xu <guodong@riscstar.com>
> > ---
> > v4: Fix missing blank space after commas in compatible string.
> > Add m-mode imsic and aplic node.
> > Reorder properties in simsic, saplic, mimsic, and maplic nodes
> > to match DTS coding style.
> > v3: Remove "supm" from the riscv,isa-extensions list.
> > v2: Remove aliases from k3.dtsi, they should be in board DTS.
> > Updated riscv,isa-extensions with new extensions from the extensions.yaml.
> > ---
> > arch/riscv/boot/dts/spacemit/k3.dtsi | 590 +++++++++++++++++++++++++++++++++++
> > 1 file changed, 590 insertions(+)
> >
> > diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spacemit/k3.dtsi
> > new file mode 100644
> > index 000000000000..a815f85cf5a6
> > --- /dev/null
> > +++ b/arch/riscv/boot/dts/spacemit/k3.dtsi
> > @@ -0,0 +1,590 @@
...
> > + d-cache-sets = <256>;
> > + next-level-cache = <&l2_cache0>;
>
> > + mmu-type = "riscv,sv39";
>
> I think this should be riscv,sv48? IIRC K3 supports it.
>
I would second the idea here, if the underlying hardware support sv48,
there is no reason we should limit it in DTS, DT should reflect the actual
hardware.. if user still prefer to use sv39 for simplicity, a "no4lvl"
command line argument can be passed.. see
arch/riscv/mm/init.c +860 -> set_satp_mode()
--
Yixun Lan (dlan)
^ permalink raw reply
* Re: [PATCH v4 10/11] riscv: dts: spacemit: add initial device tree of SpacemiT K3 SoC
From: Inochi Amaoto @ 2026-01-10 10:00 UTC (permalink / raw)
To: Guodong Xu, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Paul Walmsley, Palmer Dabbelt, Albert Ou, Alexandre Ghiti,
Yixun Lan, Daniel Lezcano, Thomas Gleixner, Samuel Holland,
Anup Patel, Greg Kroah-Hartman, Jiri Slaby, Lubomir Rintel,
Yangyu Chen
Cc: Paul Walmsley, Conor Dooley, Heinrich Schuchardt,
Kevin Meng Zhang, Andrew Jones, devicetree, linux-riscv,
linux-kernel, spacemit, linux-serial
In-Reply-To: <20260110-k3-basic-dt-v4-10-d492f3a30ffa@riscstar.com>
On Sat, Jan 10, 2026 at 01:18:22PM +0800, Guodong Xu wrote:
> SpacemiT K3 is equipped with 8 X100 cores, which are RVA23 compliant.
> Add nodes of uarts, timer and interrupt-controllers.
>
> Signed-off-by: Guodong Xu <guodong@riscstar.com>
> ---
> v4: Fix missing blank space after commas in compatible string.
> Add m-mode imsic and aplic node.
> Reorder properties in simsic, saplic, mimsic, and maplic nodes
> to match DTS coding style.
> v3: Remove "supm" from the riscv,isa-extensions list.
> v2: Remove aliases from k3.dtsi, they should be in board DTS.
> Updated riscv,isa-extensions with new extensions from the extensions.yaml.
> ---
> arch/riscv/boot/dts/spacemit/k3.dtsi | 590 +++++++++++++++++++++++++++++++++++
> 1 file changed, 590 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spacemit/k3.dtsi
> new file mode 100644
> index 000000000000..a815f85cf5a6
> --- /dev/null
> +++ b/arch/riscv/boot/dts/spacemit/k3.dtsi
> @@ -0,0 +1,590 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2025 SpacemiT (Hangzhou) Technology Co. Ltd
> + * Copyright (c) 2025 Guodong Xu <guodong@riscstar.com>
> + */
> +
> +#include <dt-bindings/interrupt-controller/irq.h>
> +
> +/dts-v1/;
> +
> +/ {
> + #address-cells = <2>;
> + #size-cells = <2>;
> + model = "SpacemiT K3";
> + compatible = "spacemit,k3";
> +
> + cpus: cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + timebase-frequency = <24000000>;
> +
> + cpu_0: cpu@0 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <0>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache0>;
> + mmu-type = "riscv,sv39";
I think this should be riscv,sv48? IIRC K3 supports it.
Regards,
Inochi
> +
> + cpu0_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + cpu_1: cpu@1 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <1>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache0>;
> + mmu-type = "riscv,sv39";
> +
> + cpu1_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + cpu_2: cpu@2 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <2>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache0>;
> + mmu-type = "riscv,sv39";
> +
> + cpu2_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + cpu_3: cpu@3 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <3>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache0>;
> + mmu-type = "riscv,sv39";
> +
> + cpu3_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + cpu_4: cpu@4 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <4>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache1>;
> + mmu-type = "riscv,sv39";
> +
> + cpu4_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + cpu_5: cpu@5 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <5>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache1>;
> + mmu-type = "riscv,sv39";
> +
> + cpu5_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + cpu_6: cpu@6 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <6>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache1>;
> + mmu-type = "riscv,sv39";
> +
> + cpu6_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + cpu_7: cpu@7 {
> + compatible = "spacemit,x100", "riscv";
> + device_type = "cpu";
> + reg = <7>;
> + riscv,isa-base = "rv64i";
> + riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "b", "v", "h",
> + "sha", "shcounterenw", "shgatpa", "shtvala",
> + "shvsatpa", "shvstvala", "shvstvecd", "smaia",
> + "smstateen", "ssaia", "ssccptr", "sscofpmf",
> + "sscounterenw", "ssnpm", "ssstateen", "sstc",
> + "sstvala", "sstvecd", "ssu64xl", "svade",
> + "svinval", "svnapot", "svpbmt", "za64rs",
> + "zawrs", "zba", "zbb", "zbc", "zbs", "zca",
> + "zcb", "zcd", "zcmop", "zfa", "zfbfmin",
> + "zfh", "zfhmin", "zicbom", "zicbop", "zicboz",
> + "ziccamoa", "ziccif", "zicclsm", "zicntr",
> + "zicond", "zicsr", "zifencei", "zihintntl",
> + "zihintpause", "zihpm", "zimop", "zkt", "zvbb",
> + "zvbc", "zvfbfmin", "zvfbfwma", "zvfh",
> + "zvfhmin", "zvkb", "zvkg", "zvkn", "zvknc",
> + "zvkned", "zvkng", "zvknha", "zvknhb", "zvks",
> + "zvksc", "zvksed", "zvksg", "zvksh", "zvkt";
> + riscv,cbom-block-size = <64>;
> + riscv,cbop-block-size = <64>;
> + riscv,cboz-block-size = <64>;
> + i-cache-block-size = <64>;
> + i-cache-size = <65536>;
> + i-cache-sets = <256>;
> + d-cache-block-size = <64>;
> + d-cache-size = <65536>;
> + d-cache-sets = <256>;
> + next-level-cache = <&l2_cache1>;
> + mmu-type = "riscv,sv39";
> +
> + cpu7_intc: interrupt-controller {
> + compatible = "riscv,cpu-intc";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> + };
> +
> + l2_cache0: cache-controller-0 {
> + compatible = "cache";
> + cache-block-size = <64>;
> + cache-level = <2>;
> + cache-size = <4194304>;
> + cache-sets = <4096>;
> + cache-unified;
> + };
> +
> + l2_cache1: cache-controller-1 {
> + compatible = "cache";
> + cache-block-size = <64>;
> + cache-level = <2>;
> + cache-size = <4194304>;
> + cache-sets = <4096>;
> + cache-unified;
> + };
> +
> + cpu-map {
> + cluster0 {
> + core0 {
> + cpu = <&cpu_0>;
> + };
> + core1 {
> + cpu = <&cpu_1>;
> + };
> + core2 {
> + cpu = <&cpu_2>;
> + };
> + core3 {
> + cpu = <&cpu_3>;
> + };
> + };
> +
> + cluster1 {
> + core0 {
> + cpu = <&cpu_4>;
> + };
> + core1 {
> + cpu = <&cpu_5>;
> + };
> + core2 {
> + cpu = <&cpu_6>;
> + };
> + core3 {
> + cpu = <&cpu_7>;
> + };
> + };
> + };
> + };
> +
> + soc: soc {
> + compatible = "simple-bus";
> + interrupt-parent = <&saplic>;
> + #address-cells = <2>;
> + #size-cells = <2>;
> + dma-noncoherent;
> + ranges;
> +
> + uart0: serial@d4017000 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017000 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <42 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart2: serial@d4017100 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017100 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <44 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart3: serial@d4017200 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017200 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <45 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart4: serial@d4017300 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017300 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <46 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart5: serial@d4017400 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017400 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <47 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart6: serial@d4017500 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017500 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <48 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart7: serial@d4017600 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017600 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <49 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart8: serial@d4017700 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017700 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <50 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart9: serial@d4017800 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd4017800 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <51 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + uart10: serial@d401f000 {
> + compatible = "spacemit,k3-uart", "intel,xscale-uart";
> + reg = <0x0 0xd401f000 0x0 0x100>;
> + reg-shift = <2>;
> + reg-io-width = <4>;
> + clock-frequency = <14700000>;
> + interrupts = <281 IRQ_TYPE_LEVEL_HIGH>;
> +
> + status = "disabled";
> + };
> +
> + simsic: interrupt-controller@e0400000 {
> + compatible = "spacemit,k3-imsics", "riscv,imsics";
> + reg = <0x0 0xe0400000 0x0 0x200000>;
> + #interrupt-cells = <0>;
> + #msi-cells = <0>;
> + interrupt-controller;
> + interrupts-extended = <&cpu0_intc 9>, <&cpu1_intc 9>,
> + <&cpu2_intc 9>, <&cpu3_intc 9>,
> + <&cpu4_intc 9>, <&cpu5_intc 9>,
> + <&cpu6_intc 9>, <&cpu7_intc 9>;
> + msi-controller;
> + riscv,guest-index-bits = <6>;
> + riscv,hart-index-bits = <4>;
> + riscv,num-guest-ids = <511>;
> + riscv,num-ids = <511>;
> + };
> +
> + saplic: interrupt-controller@e0804000 {
> + compatible = "spacemit,k3-aplic", "riscv,aplic";
> + reg = <0x0 0xe0804000 0x0 0x4000>;
> + #interrupt-cells = <2>;
> + interrupt-controller;
> + msi-parent = <&simsic>;
> + riscv,num-sources = <512>;
> + };
> +
> + clint: timer@e081c000 {
> + compatible = "spacemit,k3-clint", "sifive,clint0";
> + reg = <0x0 0xe081c000 0x0 0x4000>;
> + interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>,
> + <&cpu1_intc 3>, <&cpu1_intc 7>,
> + <&cpu2_intc 3>, <&cpu2_intc 7>,
> + <&cpu3_intc 3>, <&cpu3_intc 7>,
> + <&cpu4_intc 3>, <&cpu4_intc 7>,
> + <&cpu5_intc 3>, <&cpu5_intc 7>,
> + <&cpu6_intc 3>, <&cpu6_intc 7>,
> + <&cpu7_intc 3>, <&cpu7_intc 7>;
> + };
> +
> + mimsic: interrupt-controller@f1000000 {
> + compatible = "spacemit,k3-imsics", "riscv,imsics";
> + reg = <0x0 0xf1000000 0x0 0x10000>;
> + #interrupt-cells = <0>;
> + #msi-cells = <0>;
> + interrupt-controller;
> + interrupts-extended = <&cpu0_intc 11>, <&cpu1_intc 11>,
> + <&cpu2_intc 11>, <&cpu3_intc 11>,
> + <&cpu4_intc 11>, <&cpu5_intc 11>,
> + <&cpu6_intc 11>, <&cpu7_intc 11>;
> + msi-controller;
> + riscv,guest-index-bits = <6>;
> + riscv,hart-index-bits = <4>;
> + riscv,num-guest-ids = <511>;
> + riscv,num-ids = <511>;
> +
> + status = "disabled";
> + };
> +
> + maplic: interrupt-controller@f1800000 {
> + compatible = "spacemit,k3-aplic", "riscv,aplic";
> + reg = <0x0 0xf1800000 0x0 0x4000>;
> + #interrupt-cells = <2>;
> + interrupt-controller;
> + msi-parent = <&mimsic>;
> + riscv,children = <&saplic>;
> + riscv,delegate = <&saplic 1 512>;
> + riscv,num-sources = <512>;
> +
> + status = "disabled";
> + };
> + };
> +};
>
> --
> 2.43.0
>
>
^ permalink raw reply
* Re: [PATCH v4 11/11] riscv: dts: spacemit: add SpacemiT K3 Pico-ITX board device tree
From: Yixun Lan @ 2026-01-10 9:57 UTC (permalink / raw)
To: Guodong Xu
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Paul Walmsley,
Palmer Dabbelt, Albert Ou, Alexandre Ghiti, Daniel Lezcano,
Thomas Gleixner, Samuel Holland, Anup Patel, Greg Kroah-Hartman,
Jiri Slaby, Lubomir Rintel, Yangyu Chen, Paul Walmsley,
Conor Dooley, Heinrich Schuchardt, Kevin Meng Zhang, Andrew Jones,
devicetree, linux-riscv, linux-kernel, spacemit, linux-serial
In-Reply-To: <20260110-k3-basic-dt-v4-11-d492f3a30ffa@riscstar.com>
Hi Guodong,
I have a minor comment for the subject, it's kind of little bit redundant..
so, how about (also apply to patch 10):
[PATCH v4 10/11] riscv: dts: spacemit: add initial support for K3 SoC
[PATCH v4 11/11] riscv: dts: spacemit: add K3 Pico-ITX board support
On 13:18 Sat 10 Jan , Guodong Xu wrote:
> K3 Pico-ITX is a 2.5-inch single-board computer equipted with a SpacemiT
> K3 SoC.
>
> This minimal device tree enables booting into a serial console with UART
> output.
>
> Signed-off-by: Guodong Xu <guodong@riscstar.com>
> ---
> v4: No change.
> v3: No change.
> v2: Add aliases node in this board DT.
> Update the memory node to reflect the hardware truth. Address
> starts at 0x100000000 (4G) boundary.
> ---
> arch/riscv/boot/dts/spacemit/Makefile | 1 +
> arch/riscv/boot/dts/spacemit/k3-pico-itx.dts | 38 ++++++++++++++++++++++++++++
> 2 files changed, 39 insertions(+)
>
> diff --git a/arch/riscv/boot/dts/spacemit/Makefile b/arch/riscv/boot/dts/spacemit/Makefile
> index 95889e7269d1..7e2b87702571 100644
> --- a/arch/riscv/boot/dts/spacemit/Makefile
> +++ b/arch/riscv/boot/dts/spacemit/Makefile
> @@ -4,3 +4,4 @@ dtb-$(CONFIG_ARCH_SPACEMIT) += k1-milkv-jupiter.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-musepi-pro.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-r2s.dtb
> dtb-$(CONFIG_ARCH_SPACEMIT) += k1-orangepi-rv2.dtb
> +dtb-$(CONFIG_ARCH_SPACEMIT) += k3-pico-itx.dtb
> diff --git a/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> new file mode 100644
> index 000000000000..037ce757e5bc
> --- /dev/null
> +++ b/arch/riscv/boot/dts/spacemit/k3-pico-itx.dts
> @@ -0,0 +1,38 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright (c) 2025 SpacemiT (Hangzhou) Technology Co. Ltd
> + * Copyright (c) 2025 Guodong Xu <guodong@riscstar.com>
strictly, should update to cover current year - which is 2026 now
> + */
> +
> +#include "k3.dtsi"
> +
> +/ {
> + model = "SpacemiT K3 Pico-ITX";
> + compatible = "spacemit,k3-pico-itx", "spacemit,k3";
> +
> + aliases {
> + serial0 = &uart0;
..
> + serial2 = &uart2;
> + serial3 = &uart3;
> + serial4 = &uart4;
> + serial5 = &uart5;
> + serial6 = &uart6;
> + serial7 = &uart7;
> + serial8 = &uart8;
> + serial9 = &uart9;
> + serial10 = &uart10;
I think we only add aliases for devices which actually enabled
> + };
> +
> + chosen {
> + stdout-path = "serial0";
> + };
> +
> + memory@100000000 {
> + device_type = "memory";
> + reg = <0x1 0x00000000 0x4 0x00000000>;
> + };
> +};
> +
> +&uart0 {
> + status = "okay";
> +};
>
> --
> 2.43.0
>
--
Yixun Lan (dlan)
^ permalink raw reply
* [PATCH v3 14/14] power: sequencing: pcie-m2: Create serdev device for WCN7850 bluetooth
From: Manivannan Sadhasivam via B4 Relay @ 2026-01-10 6:56 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman, Jiri Slaby, Nathan Chancellor,
Nicolas Schier, Hans de Goede, Ilpo Järvinen, Mark Pearson,
Derek J. Clark, Manivannan Sadhasivam, Krzysztof Kozlowski,
Conor Dooley, Marcel Holtmann, Luiz Augusto von Dentz,
Bartosz Golaszewski, Andy Shevchenko, Daniel Scally,
Heikki Krogerus, Sakari Ailus, Rafael J. Wysocki,
Danilo Krummrich, Bartosz Golaszewski
Cc: linux-serial, linux-kernel, linux-kbuild, platform-driver-x86,
linux-pci, devicetree, linux-arm-msm, linux-bluetooth, linux-pm,
Stephan Gerhold, Dmitry Baryshkov, linux-acpi,
Manivannan Sadhasivam
In-Reply-To: <20260110-pci-m2-e-v3-0-4faee7d0d5ae@oss.qualcomm.com>
From: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
For supporting bluetooth over the non-discoverable UART interface of
WCN7850, create the serdev device after enumerating the PCIe interface.
This is mandatory since the device ID is only known after the PCIe
enumeration and the ID is used for creating the serdev device.
Since there is no OF or ACPI table for the created serdev, a software node
is created with the 'compatible' property. This property will be used to
match the existing OF device id in the bluetooth driver.
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
---
drivers/power/sequencing/pwrseq-pcie-m2.c | 125 +++++++++++++++++++++++++++++-
1 file changed, 124 insertions(+), 1 deletion(-)
diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequencing/pwrseq-pcie-m2.c
index ad94090bbdb2..7c7bde563341 100644
--- a/drivers/power/sequencing/pwrseq-pcie-m2.c
+++ b/drivers/power/sequencing/pwrseq-pcie-m2.c
@@ -17,6 +17,7 @@
#include <linux/platform_device.h>
#include <linux/pwrseq/provider.h>
#include <linux/regulator/consumer.h>
+#include <linux/serdev.h>
#include <linux/slab.h>
struct pwrseq_pcie_m2_pdata {
@@ -26,11 +27,14 @@ struct pwrseq_pcie_m2_pdata {
struct pwrseq_pcie_m2_ctx {
struct pwrseq_device *pwrseq;
struct device_node *of_node;
+ struct fwnode_handle *fwnode;
+ struct serdev_device *serdev;
const struct pwrseq_pcie_m2_pdata *pdata;
struct regulator_bulk_data *regs;
size_t num_vregs;
struct gpio_desc *w_disable1_gpio;
struct gpio_desc *w_disable2_gpio;
+ struct notifier_block nb;
struct device *dev;
};
@@ -179,9 +183,124 @@ static void pwrseq_pcie_free_resources(void *data)
{
struct pwrseq_pcie_m2_ctx *ctx = data;
+ fwnode_handle_put(ctx->fwnode);
+ serdev_device_put(ctx->serdev);
+ bus_unregister_notifier(&pci_bus_type, &ctx->nb);
regulator_bulk_free(ctx->num_vregs, ctx->regs);
}
+static const struct property_entry wcn7850_bt_props[] = {
+ PROPERTY_ENTRY_STRING("compatible", "qcom,wcn7850-bt"),
+};
+
+static int pwrseq_m2_pcie_notify(struct notifier_block *nb, unsigned long action,
+ void *data)
+{
+ struct pwrseq_pcie_m2_ctx *ctx = container_of(nb, struct pwrseq_pcie_m2_ctx, nb);
+ struct pci_dev *pdev = to_pci_dev(data);
+ struct serdev_controller *serdev_ctrl;
+ struct device *dev = ctx->dev;
+ struct device_node *remote;
+ int ret;
+
+ /*
+ * Check whether the PCI device is associated with this M.2 connector or
+ * not, by comparing the OF node of the PCI device parent and the Port 0
+ * (PCIe) remote node parent OF node.
+ */
+ remote = of_graph_get_remote_node(dev_of_node(ctx->dev), 0, 0);
+ if (!remote || (remote != pdev->dev.parent->of_node)) {
+ of_node_put(remote);
+ return NOTIFY_DONE;
+ }
+ of_node_put(remote);
+
+ switch (action) {
+ case BUS_NOTIFY_ADD_DEVICE:
+ /* Create serdev device for WCN7850 */
+ if (pdev->vendor == PCI_VENDOR_ID_QCOM && pdev->device == 0x1107) {
+ remote = of_graph_get_remote_node(dev_of_node(ctx->dev), 1, 1);
+ if (!remote) {
+ of_node_put(remote);
+ return NOTIFY_DONE;
+ }
+
+ serdev_ctrl = of_find_serdev_controller_by_node(remote);
+ of_node_put(remote);
+ if (!serdev_ctrl)
+ return NOTIFY_DONE;
+
+ ctx->serdev = serdev_device_alloc(serdev_ctrl);
+ if (!ctx->serdev)
+ return NOTIFY_BAD;
+
+ ctx->fwnode = fwnode_create_software_node(wcn7850_bt_props, NULL);
+ if (IS_ERR(ctx->fwnode))
+ return notifier_from_errno(PTR_ERR(ctx->fwnode));
+
+ device_set_node(&ctx->serdev->dev, ctx->fwnode);
+
+ ret = serdev_device_add(ctx->serdev);
+ if (ret) {
+ dev_err(dev, "Failed to add serdev for WCN7850: %d\n", ret);
+ fwnode_handle_put(ctx->fwnode);
+ serdev_device_put(ctx->serdev);
+ return notifier_from_errno(ret);
+ }
+ }
+ break;
+ case BUS_NOTIFY_REMOVED_DEVICE:
+ /* Destroy serdev device for WCN7850 */
+ if (pdev->vendor == PCI_VENDOR_ID_QCOM && pdev->device == 0x1107) {
+ fwnode_handle_put(ctx->fwnode);
+ serdev_device_put(ctx->serdev);
+ }
+ break;
+ }
+
+ return NOTIFY_OK;
+}
+
+static bool pwrseq_pcie_m2_check_remote_node(struct device *dev, u8 port, u8 endpoint,
+ const char *node)
+{
+ struct device_node *remote __free(device_node) =
+ of_graph_get_remote_node(dev_of_node(dev), port, endpoint);
+
+ if (remote && of_node_name_eq(remote, node))
+ return true;
+
+ return false;
+}
+
+/*
+ * If the connector exposes a non-discoverable bus like UART, the respective
+ * protocol device needs to be created manually with the help of the notifier
+ * of the discoverable bus like PCIe.
+ */
+static int pwrseq_pcie_m2_register_notifier(struct pwrseq_pcie_m2_ctx *ctx, struct device *dev)
+{
+ int ret;
+
+ /*
+ * Register a PCI notifier for Key E connector that has PCIe as Port
+ * 0/Endpoint 0 interface and Serial as Port 1/Endpoint 1 interface.
+ */
+ if (pwrseq_pcie_m2_check_remote_node(dev, 1, 1, "serial")) {
+ if (pwrseq_pcie_m2_check_remote_node(dev, 0, 0, "pcie")) {
+ ctx->dev = dev;
+ ctx->nb.notifier_call = pwrseq_m2_pcie_notify;
+ ret = bus_register_notifier(&pci_bus_type, &ctx->nb);
+ if (ret) {
+ dev_err_probe(dev, ret, "Failed to register notifier for serdev\n");
+ return ret;
+ }
+ }
+ }
+
+ return 0;
+}
+
static int pwrseq_pcie_m2_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -236,7 +355,11 @@ static int pwrseq_pcie_m2_probe(struct platform_device *pdev)
return dev_err_probe(dev, PTR_ERR(ctx->pwrseq),
"Failed to register the power sequencer\n");
- return 0;
+ /*
+ * Register a notifier for creating protocol devices for
+ * non-discoverable busses like UART.
+ */
+ return pwrseq_pcie_m2_register_notifier(ctx, dev);
}
static const struct of_device_id pwrseq_pcie_m2_of_match[] = {
--
2.48.1
^ permalink raw reply related
* [PATCH v3 13/14] power: sequencing: pcie-m2: Add support for PCIe M.2 Key E connectors
From: Manivannan Sadhasivam via B4 Relay @ 2026-01-10 6:56 UTC (permalink / raw)
To: Rob Herring, Greg Kroah-Hartman, Jiri Slaby, Nathan Chancellor,
Nicolas Schier, Hans de Goede, Ilpo Järvinen, Mark Pearson,
Derek J. Clark, Manivannan Sadhasivam, Krzysztof Kozlowski,
Conor Dooley, Marcel Holtmann, Luiz Augusto von Dentz,
Bartosz Golaszewski, Andy Shevchenko, Daniel Scally,
Heikki Krogerus, Sakari Ailus, Rafael J. Wysocki,
Danilo Krummrich, Bartosz Golaszewski
Cc: linux-serial, linux-kernel, linux-kbuild, platform-driver-x86,
linux-pci, devicetree, linux-arm-msm, linux-bluetooth, linux-pm,
Stephan Gerhold, Dmitry Baryshkov, linux-acpi,
Manivannan Sadhasivam
In-Reply-To: <20260110-pci-m2-e-v3-0-4faee7d0d5ae@oss.qualcomm.com>
From: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
Add support for handling the power sequence of the PCIe M.2 Key E
connectors. These connectors are used to attach the Wireless Connectivity
devices to the host machine including combinations of WiFi, BT, NFC using
interfaces such as PCIe/SDIO for WiFi, USB/UART for BT and I2C for NFC.
Currently, this driver supports only the PCIe interface for WiFi and UART
interface for BT. The driver also only supports driving the 3.3v/1.8v power
supplies and W_DISABLE{1/2}# GPIOs. The optional signals of the Key E
connectors are not currently supported.
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
---
drivers/power/sequencing/Kconfig | 1 +
drivers/power/sequencing/pwrseq-pcie-m2.c | 111 ++++++++++++++++++++++++++++--
2 files changed, 105 insertions(+), 7 deletions(-)
diff --git a/drivers/power/sequencing/Kconfig b/drivers/power/sequencing/Kconfig
index f5fff84566ba..29bd204319cc 100644
--- a/drivers/power/sequencing/Kconfig
+++ b/drivers/power/sequencing/Kconfig
@@ -38,6 +38,7 @@ config POWER_SEQUENCING_TH1520_GPU
config POWER_SEQUENCING_PCIE_M2
tristate "PCIe M.2 connector power sequencing driver"
depends on OF || COMPILE_TEST
+ depends on PCI
help
Say Y here to enable the power sequencing driver for PCIe M.2
connectors. This driver handles the power sequencing for the M.2
diff --git a/drivers/power/sequencing/pwrseq-pcie-m2.c b/drivers/power/sequencing/pwrseq-pcie-m2.c
index e01e19123415..ad94090bbdb2 100644
--- a/drivers/power/sequencing/pwrseq-pcie-m2.c
+++ b/drivers/power/sequencing/pwrseq-pcie-m2.c
@@ -4,12 +4,16 @@
* Author: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
*/
+#include <linux/err.h>
#include <linux/device.h>
+#include <linux/delay.h>
+#include <linux/gpio/consumer.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/of_platform.h>
+#include <linux/pci.h>
#include <linux/platform_device.h>
#include <linux/pwrseq/provider.h>
#include <linux/regulator/consumer.h>
@@ -25,17 +29,20 @@ struct pwrseq_pcie_m2_ctx {
const struct pwrseq_pcie_m2_pdata *pdata;
struct regulator_bulk_data *regs;
size_t num_vregs;
- struct notifier_block nb;
+ struct gpio_desc *w_disable1_gpio;
+ struct gpio_desc *w_disable2_gpio;
+ struct device *dev;
+
};
-static int pwrseq_pcie_m2_m_vregs_enable(struct pwrseq_device *pwrseq)
+static int pwrseq_pcie_m2_vregs_enable(struct pwrseq_device *pwrseq)
{
struct pwrseq_pcie_m2_ctx *ctx = pwrseq_device_get_drvdata(pwrseq);
return regulator_bulk_enable(ctx->num_vregs, ctx->regs);
}
-static int pwrseq_pcie_m2_m_vregs_disable(struct pwrseq_device *pwrseq)
+static int pwrseq_pcie_m2_vregs_disable(struct pwrseq_device *pwrseq)
{
struct pwrseq_pcie_m2_ctx *ctx = pwrseq_device_get_drvdata(pwrseq);
@@ -44,18 +51,84 @@ static int pwrseq_pcie_m2_m_vregs_disable(struct pwrseq_device *pwrseq)
static const struct pwrseq_unit_data pwrseq_pcie_m2_vregs_unit_data = {
.name = "regulators-enable",
- .enable = pwrseq_pcie_m2_m_vregs_enable,
- .disable = pwrseq_pcie_m2_m_vregs_disable,
+ .enable = pwrseq_pcie_m2_vregs_enable,
+ .disable = pwrseq_pcie_m2_vregs_disable,
};
-static const struct pwrseq_unit_data *pwrseq_pcie_m2_m_unit_deps[] = {
+static const struct pwrseq_unit_data *pwrseq_pcie_m2_unit_deps[] = {
&pwrseq_pcie_m2_vregs_unit_data,
NULL
};
+static int pwrseq_pci_m2_e_uart_enable(struct pwrseq_device *pwrseq)
+{
+ struct pwrseq_pcie_m2_ctx *ctx = pwrseq_device_get_drvdata(pwrseq);
+
+ return gpiod_set_value_cansleep(ctx->w_disable2_gpio, 0);
+}
+
+static int pwrseq_pci_m2_e_uart_disable(struct pwrseq_device *pwrseq)
+{
+ struct pwrseq_pcie_m2_ctx *ctx = pwrseq_device_get_drvdata(pwrseq);
+
+ return gpiod_set_value_cansleep(ctx->w_disable2_gpio, 1);
+}
+
+static const struct pwrseq_unit_data pwrseq_pcie_m2_e_uart_unit_data = {
+ .name = "uart-enable",
+ .deps = pwrseq_pcie_m2_unit_deps,
+ .enable = pwrseq_pci_m2_e_uart_enable,
+ .disable = pwrseq_pci_m2_e_uart_disable,
+};
+
+static int pwrseq_pci_m2_e_pcie_enable(struct pwrseq_device *pwrseq)
+{
+ struct pwrseq_pcie_m2_ctx *ctx = pwrseq_device_get_drvdata(pwrseq);
+
+ return gpiod_set_value_cansleep(ctx->w_disable1_gpio, 0);
+}
+
+static int pwrseq_pci_m2_e_pcie_disable(struct pwrseq_device *pwrseq)
+{
+ struct pwrseq_pcie_m2_ctx *ctx = pwrseq_device_get_drvdata(pwrseq);
+
+ return gpiod_set_value_cansleep(ctx->w_disable1_gpio, 1);
+}
+
+static const struct pwrseq_unit_data pwrseq_pcie_m2_e_pcie_unit_data = {
+ .name = "pcie-enable",
+ .deps = pwrseq_pcie_m2_unit_deps,
+ .enable = pwrseq_pci_m2_e_pcie_enable,
+ .disable = pwrseq_pci_m2_e_pcie_disable,
+};
+
static const struct pwrseq_unit_data pwrseq_pcie_m2_m_pcie_unit_data = {
.name = "pcie-enable",
- .deps = pwrseq_pcie_m2_m_unit_deps,
+ .deps = pwrseq_pcie_m2_unit_deps,
+};
+
+static int pwrseq_pcie_m2_e_pwup_delay(struct pwrseq_device *pwrseq)
+{
+ /*
+ * FIXME: This delay is only required for some Qcom WLAN/BT cards like
+ * WCN7850 and not for all devices. But currently, there is no way to
+ * identify the device model before enumeration.
+ */
+ msleep(50);
+
+ return 0;
+}
+
+static const struct pwrseq_target_data pwrseq_pcie_m2_e_uart_target_data = {
+ .name = "uart",
+ .unit = &pwrseq_pcie_m2_e_uart_unit_data,
+ .post_enable = pwrseq_pcie_m2_e_pwup_delay,
+};
+
+static const struct pwrseq_target_data pwrseq_pcie_m2_e_pcie_target_data = {
+ .name = "pcie",
+ .unit = &pwrseq_pcie_m2_e_pcie_unit_data,
+ .post_enable = pwrseq_pcie_m2_e_pwup_delay,
};
static const struct pwrseq_target_data pwrseq_pcie_m2_m_pcie_target_data = {
@@ -63,11 +136,21 @@ static const struct pwrseq_target_data pwrseq_pcie_m2_m_pcie_target_data = {
.unit = &pwrseq_pcie_m2_m_pcie_unit_data,
};
+static const struct pwrseq_target_data *pwrseq_pcie_m2_e_targets[] = {
+ &pwrseq_pcie_m2_e_pcie_target_data,
+ &pwrseq_pcie_m2_e_uart_target_data,
+ NULL
+};
+
static const struct pwrseq_target_data *pwrseq_pcie_m2_m_targets[] = {
&pwrseq_pcie_m2_m_pcie_target_data,
NULL
};
+static const struct pwrseq_pcie_m2_pdata pwrseq_pcie_m2_e_of_data = {
+ .targets = pwrseq_pcie_m2_e_targets,
+};
+
static const struct pwrseq_pcie_m2_pdata pwrseq_pcie_m2_m_of_data = {
.targets = pwrseq_pcie_m2_m_targets,
};
@@ -126,6 +209,16 @@ static int pwrseq_pcie_m2_probe(struct platform_device *pdev)
return dev_err_probe(dev, ret,
"Failed to get all regulators\n");
+ ctx->w_disable1_gpio = devm_gpiod_get_optional(dev, "w-disable1", GPIOD_OUT_HIGH);
+ if (IS_ERR(ctx->w_disable1_gpio))
+ return dev_err_probe(dev, PTR_ERR(ctx->w_disable1_gpio),
+ "Failed to get the W_DISABLE_1# GPIO\n");
+
+ ctx->w_disable2_gpio = devm_gpiod_get_optional(dev, "w-disable2", GPIOD_OUT_HIGH);
+ if (IS_ERR(ctx->w_disable2_gpio))
+ return dev_err_probe(dev, PTR_ERR(ctx->w_disable2_gpio),
+ "Failed to get the W_DISABLE_2# GPIO\n");
+
ctx->num_vregs = ret;
ret = devm_add_action_or_reset(dev, pwrseq_pcie_free_resources, ctx);
@@ -151,6 +244,10 @@ static const struct of_device_id pwrseq_pcie_m2_of_match[] = {
.compatible = "pcie-m2-m-connector",
.data = &pwrseq_pcie_m2_m_of_data,
},
+ {
+ .compatible = "pcie-m2-e-connector",
+ .data = &pwrseq_pcie_m2_e_of_data,
+ },
{ }
};
MODULE_DEVICE_TABLE(of, pwrseq_pcie_m2_of_match);
--
2.48.1
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox