From nobody Sun Sep 14 20:20:42 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BD2F2C32793 for ; Wed, 18 Jan 2023 16:32:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230322AbjARQcF (ORCPT ); Wed, 18 Jan 2023 11:32:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35540 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230307AbjARQbd (ORCPT ); Wed, 18 Jan 2023 11:31:33 -0500 X-Greylist: delayed 63 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 18 Jan 2023 08:29:29 PST Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net [185.136.64.228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83FFA59576 for ; Wed, 18 Jan 2023 08:29:26 -0800 (PST) Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 20230118162822ed4ab1b3dbf4111be0 for ; Wed, 18 Jan 2023 17:28:22 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=jan.kiszka@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=o0QGfu5aYlJSGJDDc5cQ+AgSfA70JLHN2RUhvaqAiZU=; b=ZqKa4I5FUI0djHbRQViIsHGuDemx55vTFh0KDuf+UG+M9n+pap646IKTek2dgm/nkGF78D kH6Q2eA+oUmE6JuOxqO0SzFgRdXs+VDl8EqZvdjdmE/I/BAIChZyvPSNKuVLApZIooltvSJU +uexhUzfiUIL7QbaCR9t1h7jzod9Q=; From: Jan Kiszka To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Bao Cheng Su , Chao Zeng Subject: [PATCH 1/3] arm64: dts: ti: iot2050: Add layout of OSPI flash Date: Wed, 18 Jan 2023 17:28:18 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Jan Kiszka Describe the layout of the OSPI flash as the latest firmware uses it. Specifically the location of the U-Boot envs is important for userspace in order to access it. Signed-off-by: Jan Kiszka --- .../boot/dts/ti/k3-am65-iot2050-common.dtsi | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi b/arch/arm6= 4/boot/dts/ti/k3-am65-iot2050-common.dtsi index 3cced26b520a..96ac2b476b11 100644 --- a/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am65-iot2050-common.dtsi @@ -609,6 +609,52 @@ flash@0 { cdns,tchsh-ns =3D <60>; cdns,tslch-ns =3D <60>; cdns,read-delay =3D <2>; + + partitions { + compatible =3D "fixed-partitions"; + #address-cells =3D <1>; + #size-cells =3D <1>; + + seboot@0 { + label =3D "seboot"; + reg =3D <0x0 0x180000>; /* 1.5M */ + }; + + tispl@180000 { + label =3D "tispl"; + reg =3D <0x180000 0x200000>; /* 2M */ + }; + + u-boot@380000 { + label =3D "u-boot"; + reg =3D <0x380000 0x300000>; /* 3M */ + }; + + env@680000 { + label =3D "env"; + reg =3D <0x680000 0x20000>; /* 128K */ + }; + + env-backup@6a0000 { + label =3D "env.backup"; + reg =3D <0x6a0000 0x20000>; /* 128K */ + }; + + otpcmd@6c0000 { + label =3D "otpcmd"; + reg =3D <0x6c0000 0x10000>; /* 64K */ + }; + + unused@6d0000 { + label =3D "unused"; + reg =3D <0x6d0000 0x7b0000>; /* 7872K */ + }; + + seboot-backup@e80000 { + label =3D "seboot.backup"; + reg =3D <0xe80000 0x180000>; /* 1.5M */ + }; + }; }; }; =20 --=20 2.35.3 From nobody Sun Sep 14 20:20:42 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F795C32793 for ; Wed, 18 Jan 2023 16:32:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229581AbjARQb7 (ORCPT ); Wed, 18 Jan 2023 11:31:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35538 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230254AbjARQbc (ORCPT ); Wed, 18 Jan 2023 11:31:32 -0500 X-Greylist: delayed 62 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 18 Jan 2023 08:29:28 PST Received: from mta-64-228.siemens.flowmailer.net (mta-64-228.siemens.flowmailer.net [185.136.64.228]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 83E9F59541 for ; Wed, 18 Jan 2023 08:29:27 -0800 (PST) Received: by mta-64-228.siemens.flowmailer.net with ESMTPSA id 202301181628221e0356c8fdb985b8b3 for ; Wed, 18 Jan 2023 17:28:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=jan.kiszka@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=kKCAFwGy2SwmmRR8xa0RRk8D8x4JK6IuQDlTLYzyD/I=; b=geJlaDMFR3dkdYgDZB/t/3vHbTsK+ekBYmKQoFxVY6FXa3EzNm3qSbTB1ssubOkquej+Ap 8QZl1j2x1n6VMG31goMaYjKWkQu/sv3lrJLQpXwdA/S40OOVjVzwTmB9L58n6wY0ygRnqPPx kkHzLb6LAcJ0UzF6dNsE6MMGookXE=; From: Jan Kiszka To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Bao Cheng Su , Chao Zeng Subject: [PATCH 2/3] dt-bindings: arm: ti: Add binding for Siemens IOT2050 M.2 variant Date: Wed, 18 Jan 2023 17:28:19 +0100 Message-Id: <3f825ff8853b1ffd8228d3283c7da0483ddf55d5.1674059300.git.jan.kiszka@siemens.com> In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Jan Kiszka This new variant is derived from the Advanced PG2 board, replacing the MiniPCI slot with B and E-keyed M.2 slots. Signed-off-by: Jan Kiszka Acked-by: Krzysztof Kozlowski --- Documentation/devicetree/bindings/arm/ti/k3.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/arm/ti/k3.yaml b/Documentati= on/devicetree/bindings/arm/ti/k3.yaml index 203faab80142..7af813202f1f 100644 --- a/Documentation/devicetree/bindings/arm/ti/k3.yaml +++ b/Documentation/devicetree/bindings/arm/ti/k3.yaml @@ -43,6 +43,7 @@ properties: - enum: - siemens,iot2050-advanced - siemens,iot2050-advanced-pg2 + - siemens,iot2050-advanced-m2 - siemens,iot2050-basic - siemens,iot2050-basic-pg2 - ti,am654-evm --=20 2.35.3 From nobody Sun Sep 14 20:20:42 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B006C32793 for ; Wed, 18 Jan 2023 16:32:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229993AbjARQcW (ORCPT ); Wed, 18 Jan 2023 11:32:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229663AbjARQbk (ORCPT ); Wed, 18 Jan 2023 11:31:40 -0500 X-Greylist: delayed 72 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Wed, 18 Jan 2023 08:29:37 PST Received: from mta-65-226.siemens.flowmailer.net (mta-65-226.siemens.flowmailer.net [185.136.65.226]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B954059B4D for ; Wed, 18 Jan 2023 08:29:37 -0800 (PST) Received: by mta-65-226.siemens.flowmailer.net with ESMTPSA id 20230118162823c3ee4325a36ea5a2fe for ; Wed, 18 Jan 2023 17:28:23 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; s=fm1; d=siemens.com; i=jan.kiszka@siemens.com; h=Date:From:Subject:To:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Cc:References:In-Reply-To; bh=3Caob5l0q9fl1lZH64o8jCtERq+1/3UHqT0YSyFX62s=; b=LxHXc3yPGvwdruGGDHlNYNEFW2ufAtHRWcV3bpv33nZZ34to7rBN+wxufxVXEuemPmtgZP fA86ajtF4cYHbzIGM08gRqkJelF2OYQb9w1yHFGjgs38LmI9KgWZjg7r1PLQnTZFl06RLr2+ Yx3JsTvawe9DjWEq+0sR1CmSviHXU=; From: Jan Kiszka To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Bao Cheng Su , Chao Zeng Subject: [PATCH 3/3] arm64: dts: ti: iot2050: Add support for M.2 variant Date: Wed, 18 Jan 2023 17:28:20 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Flowmailer-Platform: Siemens Feedback-ID: 519:519-294854:519-21489:flowmailer Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: chao zeng The M.2 variant comes with 2 slots, one B-keyed and another one E-keyed. They are configured by the firmware during startup. Also the device tree will be adjusted according to the detect or manually configured interface mode by the firmware. The kernel only carries a single configuration as base device tree. It has to be built with a symbols node so that the firmware can apply overlays for the connector modes. Signed-off-by: chao zeng [Jan: refactored to a single DT] Signed-off-by: Jan Kiszka --- arch/arm64/boot/dts/ti/Makefile | 3 + .../dts/ti/k3-am6548-iot2050-advanced-m2.dts | 122 ++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-m2.dts diff --git a/arch/arm64/boot/dts/ti/Makefile b/arch/arm64/boot/dts/ti/Makef= ile index cf7c509538a4..13e79bf7e804 100644 --- a/arch/arm64/boot/dts/ti/Makefile +++ b/arch/arm64/boot/dts/ti/Makefile @@ -11,6 +11,9 @@ dtb-$(CONFIG_ARCH_K3) +=3D k3-am6528-iot2050-basic.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am6528-iot2050-basic-pg2.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am6548-iot2050-advanced.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-am6548-iot2050-advanced-pg2.dtb +dtb-$(CONFIG_ARCH_K3) +=3D k3-am6548-iot2050-advanced-m2.dtb + +DTC_FLAGS_k3-am6548-iot2050-advanced-m2 +=3D -@ =20 dtb-$(CONFIG_ARCH_K3) +=3D k3-j721e-beagleboneai64.dtb dtb-$(CONFIG_ARCH_K3) +=3D k3-j721e-common-proc-board.dtb diff --git a/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-m2.dts b/arc= h/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-m2.dts new file mode 100644 index 000000000000..3109adac7c93 --- /dev/null +++ b/arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-m2.dts @@ -0,0 +1,122 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (c) Siemens AG, 2018-2022 + * + * Authors: + * Chao Zeng + * Jan Kiszka + * + * AM6548-based (quad-core) IOT2050 M.2 variant (based on Advanced Product + * Generation 2), 2 GB RAM, 16 GB eMMC, USB-serial converter on connector = X30 + * + * Product homepage: + * https://new.siemens.com/global/en/products/automation/pc-based/iot-gate= ways/simatic-iot2050.html + */ + +#include "k3-am6548-iot2050-advanced-common.dtsi" +#include "k3-am65-iot2050-common-pg2.dtsi" + +/ { + compatible =3D "siemens,iot2050-advanced-m2", "ti,am654"; + model =3D "SIMATIC IOT2050 Advanced M2"; +}; + +&mcu_r5fss0 { + /* lock-step mode not supported on this board */ + ti,cluster-mode =3D <0>; +}; + +&main_pmx0 { + main_m2_enable_pins_default: main-m2-enable-pins-default { + pinctrl-single,pins =3D < + AM65X_IOPAD(0x01c4, PIN_INPUT_PULLUP, 7) /* (AH13) GPIO1_17 */ + >; + }; + + main_bkey_pcie_reset: main-bkey-pcie-reset { + pinctrl-single,pins =3D < + AM65X_IOPAD(0x01bc, PIN_OUTPUT_PULLUP, 7) /* (AG13) GPIO1_15 */ + >; + }; + + main_pmx0_m2_config_pins_default: main-pmx0-m2-config-pins-default { + pinctrl-single,pins =3D < + AM65X_IOPAD(0x01c8, PIN_INPUT_PULLUP, 7) /* (AE13) GPIO1_18 */ + AM65X_IOPAD(0x01cc, PIN_INPUT_PULLUP, 7) /* (AD13) GPIO1_19 */ + >; + }; + + main_m2_pcie_mux_control: main-m2-pcie-mux-control { + pinctrl-single,pins =3D < + AM65X_IOPAD(0x0148, PIN_INPUT_PULLUP, 7) /* (AG22) GPIO0_82 */ + AM65X_IOPAD(0x0160, PIN_INPUT_PULLUP, 7) /* (AE20) GPIO0_88 */ + AM65X_IOPAD(0x0164, PIN_INPUT_PULLUP, 7) /* (AF19) GPIO0_89 */ + >; + }; +}; + +&main_pmx1 { + main_pmx1_m2_config_pins_default: main-pmx1-m2-config-pins-default { + pinctrl-single,pins =3D < + AM65X_IOPAD(0x0018, PIN_INPUT_PULLUP, 7) /* (B22) GPIO1_88 */ + AM65X_IOPAD(0x001c, PIN_INPUT_PULLUP, 7) /* (C23) GPIO1_89 */ + >; + }; +}; + +&main_gpio0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D < + &main_m2_pcie_mux_control + &arduino_io_d4_to_d9_pins_default + >; +}; + +&main_gpio1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D < + &main_m2_enable_pins_default + &main_pmx0_m2_config_pins_default + &main_pmx1_m2_config_pins_default + &cp2102n_reset_pin_default + + >; +}; + +/* + * Base configuration for B-key slot with PCIe x2, E-key with USB 2.0 only. + * Firmware switches to other modes via device tree overlays. + */ + +&serdes0 { + assigned-clocks =3D <&k3_clks 153 4>, <&serdes0 AM654_SERDES_CMU_REFCLK>; + assigned-clock-parents =3D <&k3_clks 153 8>, <&k3_clks 153 4>; +}; + +&pcie0_rc { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&main_bkey_pcie_reset>; + + num-lanes =3D <2>; + phys =3D <&serdes0 PHY_TYPE_PCIE 1>, <&serdes1 PHY_TYPE_PCIE 1>; + phy-names =3D "pcie-phy0","pcie-phy1"; + reset-gpios =3D <&main_gpio1 15 GPIO_ACTIVE_HIGH>; + status =3D "okay"; +}; + +&pcie1_rc { + status =3D "disabled"; +}; + +&dwc3_0 { + assigned-clock-parents =3D <&k3_clks 151 4>, /* set REF_CLK to 20MHz i.e= . PER0_PLL/48 */ + <&k3_clks 151 9>; /* set PIPE3_TXB_CLK to CLK_12M_RC/256 (for HS onl= y) */ + /delete-property/ phys; + /delete-property/ phy-names; +}; + +&usb0 { + maximum-speed =3D "high-speed"; + /delete-property/ snps,dis-u1-entry-quirk; + /delete-property/ snps,dis-u2-entry-quirk; +}; --=20 2.35.3