diff --git a/boards/nxp/imx943_evk/doc/index.rst b/boards/nxp/imx943_evk/doc/index.rst index 90feb669bdf83..878e59d8b7dd4 100644 --- a/boards/nxp/imx943_evk/doc/index.rst +++ b/boards/nxp/imx943_evk/doc/index.rst @@ -375,9 +375,9 @@ For DDR target Note: -a. Please connect two additional usb2serial converter between Host PC and board's -auduino interface with dupont cable for M70 in M70 MIX and M71 in M71 MIX. -Connection as below, +a. Please connect two additional USB-to-Serial converters between the Host PC and the board's +Arduino interface using Dupont cables. For M70 in M7MIX0 and M71 in M7MIX1, +make the connections as shown below. .. code-block:: text @@ -393,7 +393,28 @@ Connection as below, | | | |--GND----------------GND(J43-14)-| | +---------+ +-----------------+ +---------+ -b. There will be 4 serial ports identified when connect USB cable to debug port. +b. For debugging system via JTAG interface, please connect one additional +USB-to-Serial converter between the Host PC and the board's Arduino interface +using Dupont cables. For M33S in NETCMIX, +(LPUART8's pads reused by JTAG's pads, so change to use another UART3, +then UART3 and JTAG can be used at the same time.) +make the connections as shown below, + +.. code-block:: text + + +---------+ USB +-----------------+ +---------+ + | Host PC |<----->| USB-to-Serial c |--TX-->RX(J44-10, M1_LED_TP1, LPUART3_RX)--| board | + | | | |--RX<--TX(J51-18, M1_PWM_CX, LPUART3_TX)---| | + | | | |--GND--GND(J45-12)-------------------------| | + | | +-----------------+ | | + | | | | + | | | | + | | | | + | | | | + | | | | + +---------+ +---------+ + +c. There will be 4 serial ports identified when connect USB cable to debug port. The first serial port will be UART8 for M33. As there is multiplexing between JTAG and UART8, below bcu (`bcu 1.1.113 download`_) configuration is needed to use UART8. diff --git a/boards/nxp/imx943_evk/imx943_evk-pinctrl.dtsi b/boards/nxp/imx943_evk/imx943_evk-pinctrl.dtsi index dfe1c44ee197d..421fb57120485 100644 --- a/boards/nxp/imx943_evk/imx943_evk-pinctrl.dtsi +++ b/boards/nxp/imx943_evk/imx943_evk-pinctrl.dtsi @@ -142,6 +142,16 @@ }; }; + lpuart3_default: lpuart3_default { + group0 { + pinmux = <&iomuxc_gpio_io31_lpuart_rx_lpuart3_rx>, + <&iomuxc_gpio_io30_lpuart_tx_lpuart3_tx>; + bias-pull-up; + slew-rate = "slightly_fast"; + drive-strength = "x4"; + }; + }; + lpuart8_default: lpuart8_default { group0 { pinmux = <&iomuxc_dap_tclk_swclk_lpuart_rx_lpuart8_rx>, diff --git a/boards/nxp/imx943_evk/imx943_evk_mimx94398_m33.dts b/boards/nxp/imx943_evk/imx943_evk_mimx94398_m33.dts index 942f6ebcab30a..52bf5b1d7e3fe 100644 --- a/boards/nxp/imx943_evk/imx943_evk_mimx94398_m33.dts +++ b/boards/nxp/imx943_evk/imx943_evk_mimx94398_m33.dts @@ -14,7 +14,6 @@ compatible = "nxp,imx943_evk"; chosen { - /* TCM */ zephyr,flash = &itcm; zephyr,sram = &dtcm; @@ -107,6 +106,13 @@ status = "okay"; }; +&lpuart3 { + status = "disabled"; + current-speed = <115200>; + pinctrl-0 = <&lpuart3_default>; + pinctrl-names = "default"; +}; + &lpuart8 { status = "okay"; current-speed = <115200>; diff --git a/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_0.dts b/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_0.dts index 94c4a71a6a50d..8a0a5f64cc087 100644 --- a/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_0.dts +++ b/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_0.dts @@ -14,7 +14,6 @@ compatible = "nxp,imx943_evk"; chosen { - /* TCM */ zephyr,flash = &itcm; zephyr,sram = &dtcm; diff --git a/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_1.dts b/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_1.dts index c3525e9d1aee7..dff72105d0bb2 100644 --- a/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_1.dts +++ b/boards/nxp/imx943_evk/imx943_evk_mimx94398_m7_1.dts @@ -14,7 +14,6 @@ compatible = "nxp,imx943_evk"; chosen { - /* TCM */ zephyr,flash = &itcm; zephyr,sram = &dtcm; diff --git a/dts/arm/nxp/nxp_imx943_m33.dtsi b/dts/arm/nxp/nxp_imx943_m33.dtsi index fe8937e7c1755..f9732d01b5b62 100644 --- a/dts/arm/nxp/nxp_imx943_m33.dtsi +++ b/dts/arm/nxp/nxp_imx943_m33.dtsi @@ -5,10 +5,8 @@ */ #include -#include -#include -#include #include +#include #include / { @@ -21,7 +19,7 @@ compatible = "arm,cortex-m33"; cpu-power-states = <&wait &stop &suspend>; reg = <0>; - clock-frequency = ; + clock-frequency = ; #address-cells = <1>; #size-cells = <1>; @@ -66,44 +64,6 @@ }; }; - firmware { - scmi { - compatible = "arm,scmi"; - shmem = <&scmi_shmem0>; - mboxes = <&mu8 0>; - mbox-names = "tx"; - - #address-cells = <1>; - #size-cells = <0>; - - scmi_devpd: protocol@11 { - compatible = "arm,scmi-power"; - reg = <0x11>; - #power-domain-cells = <1>; - }; - - scmi_clk: protocol@14 { - compatible = "arm,scmi-clock"; - reg = <0x14>; - #clock-cells = <1>; - }; - - scmi_iomuxc: protocol@19 { - compatible = "arm,scmi-pinctrl"; - reg = <0x19>; - - pinctrl: pinctrl { - compatible = "nxp,imx943-pinctrl", "nxp,imx93-pinctrl"; - }; - }; - - scmi_cpu: protocol@82 { - compatible = "nxp,scmi-cpu"; - reg = <0x82>; - }; - }; - }; - soc { itcm: itcm@ffc0000 { compatible = "nxp,imx-itcm"; @@ -114,421 +74,30 @@ compatible = "nxp,imx-dtcm"; reg = <0x20000000 DT_SIZE_K(256)>; }; + }; - lpi2c3: i2c@42530000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x42530000 0x4000>; - interrupts = <67 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C3>; - status = "disabled"; - }; - - lpi2c4: i2c@42540000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x42540000 0x4000>; - interrupts = <68 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C4>; - status = "disabled"; - }; - - lpuart3: serial@42570000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42570000 DT_SIZE_K(64)>; - interrupts = <74 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART3>; - status = "disabled"; - }; - - lpuart4: serial@42580000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42580000 DT_SIZE_K(64)>; - interrupts = <75 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART4>; - status = "disabled"; - }; - - lpuart5: serial@42590000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42590000 DT_SIZE_K(64)>; - interrupts = <76 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART5>; - status = "disabled"; - }; - - lpuart6: serial@425a0000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x425a0000 DT_SIZE_K(64)>; - interrupts = <77 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART6>; - status = "disabled"; - }; - - lpuart7: serial@42690000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42690000 DT_SIZE_K(64)>; - interrupts = <78 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART7>; - status = "disabled"; - }; - - lpuart8: serial@426a0000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x426a0000 DT_SIZE_K(64)>; - interrupts = <79 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART8>; - status = "disabled"; - }; - - lpi2c5: i2c@426b0000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x426b0000 0x4000>; - interrupts = <108 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C5>; - status = "disabled"; - }; - - lpi2c6: i2c@426c0000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x426c0000 0x4000>; - interrupts = <109 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C6>; - status = "disabled"; - }; - - lpi2c7: i2c@426d0000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x426d0000 0x4000>; - interrupts = <110 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C7>; - status = "disabled"; - }; - - lpi2c8: i2c@426e0000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x426e0000 0x4000>; - interrupts = <111 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C8>; - status = "disabled"; - }; - - lpuart9: serial@42a50000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42a50000 DT_SIZE_K(64)>; - interrupts = <80 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART9>; - status = "disabled"; - }; - - lpuart10: serial@42a60000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42a60000 DT_SIZE_K(64)>; - interrupts = <81 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART10>; - status = "disabled"; - }; - - lpuart11: serial@42a70000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42a70000 DT_SIZE_K(64)>; - interrupts = <82 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART11>; - status = "disabled"; - }; - - lpuart12: serial@42a80000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x42a80000 DT_SIZE_K(64)>; - interrupts = <83 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART12>; - status = "disabled"; - }; - - flexio1: flexio@425c0000 { - compatible = "nxp,flexio"; - reg = <0x425c0000 DT_SIZE_K(4)>; - interrupts = <48 0>; - clocks = <&scmi_clk IMX943_CLK_FLEXIO1>; - status = "disabled"; - }; - - flexio2: flexio@425d0000 { - compatible = "nxp,flexio"; - reg = <0x425d0000 DT_SIZE_K(4)>; - interrupts = <49 0>; - clocks = <&scmi_clk IMX943_CLK_FLEXIO2>; - status = "disabled"; - }; - - flexio3: flexio@4d100000 { - compatible = "nxp,flexio"; - reg = <0x4d100000 DT_SIZE_K(4)>; - interrupts = <50 0>; - clocks = <&scmi_clk IMX943_CLK_FLEXIO3>; - status = "disabled"; - }; - - flexio4: flexio@4d110000 { - compatible = "nxp,flexio"; - reg = <0x4d110000 DT_SIZE_K(4)>; - interrupts = <51 0>; - clocks = <&scmi_clk IMX943_CLK_FLEXIO4>; - status = "disabled"; - }; - - gpio2: gpio@43810000 { - compatible = "nxp,imx-rgpio"; - reg = <0x43810000 DT_SIZE_K(64)>; - interrupts = <54 0>, <55 0>; - gpio-controller; - #gpio-cells = <2>; - ngpios = <32>; - status = "disabled"; - }; - - gpio3: gpio@43820000 { - compatible = "nxp,imx-rgpio"; - reg = <0x43820000 DT_SIZE_K(64)>; - interrupts = <56 0>, <57 0>; - gpio-controller; - #gpio-cells = <2>; - ngpios = <26>; - status = "disabled"; - }; - - gpio4: gpio@43840000 { - compatible = "nxp,imx-rgpio"; - reg = <0x43840000 DT_SIZE_K(64)>; - interrupts = <58 0>, <59 0>; - gpio-controller; - #gpio-cells = <2>; - ngpios = <32>; - status = "disabled"; - }; - - gpio5: gpio@43850000 { - compatible = "nxp,imx-rgpio"; - reg = <0x43850000 DT_SIZE_K(64)>; - interrupts = <60 0>, <61 0>; - gpio-controller; - #gpio-cells = <2>; - ngpios = <32>; - status = "disabled"; - }; - - gpio6: gpio@43860000 { - compatible = "nxp,imx-rgpio"; - reg = <0x43860000 DT_SIZE_K(64)>; - interrupts = <62 0>, <63 0>; - gpio-controller; - #gpio-cells = <2>; - ngpios = <32>; - status = "disabled"; - }; - - gpio7: gpio@43870000 { - compatible = "nxp,imx-rgpio"; - reg = <0x43870000 DT_SIZE_K(64)>; - interrupts = <64 0>, <65 0>; - gpio-controller; - #gpio-cells = <2>; - ngpios = <28>; - gpio-reserved-ranges = <10 6>; - status = "disabled"; - }; - - lpi2c1: i2c@44340000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x44340000 0x4000>; - interrupts = <15 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C1>; - status = "disabled"; - }; - - lpi2c2: i2c@44350000 { - compatible = "nxp,lpi2c"; - clock-frequency = ; - #address-cells = <1>; - #size-cells = <0>; - reg = <0x44350000 0x4000>; - interrupts = <16 0>; - clocks = <&scmi_clk IMX943_CLK_LPI2C2>; - status = "disabled"; - }; - - lpuart1: serial@44380000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x44380000 DT_SIZE_K(64)>; - interrupts = <21 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART1>; - status = "disabled"; - }; - - lpuart2: serial@44390000 { - compatible = "nxp,imx-lpuart", "nxp,lpuart"; - reg = <0x44390000 DT_SIZE_K(64)>; - interrupts = <22 3>; - clocks = <&scmi_clk IMX943_CLK_LPUART2>; - status = "disabled"; - }; - - mu8: mbox@44720000 { - compatible = "nxp,mbox-imx-mu"; - reg = <0x44720000 DT_SIZE_K(64)>; - interrupts = <273 0>; - #mbox-cells = <1>; - }; - - gpio1: gpio@47400000 { - compatible = "nxp,imx-rgpio"; - reg = <0x47400000 DT_SIZE_K(64)>; - interrupts = <12 0>, <13 0>; - gpio-controller; - #gpio-cells = <2>; - ngpios = <16>; - status = "disabled"; - }; - - netc: ethernet { - compatible = "nxp,imx-netc"; - interrupts = <294 0>; - #address-cells = <1>; - #size-cells = <1>; - ranges; - - enetc_psi0: ethernet@4cc80000 { - compatible = "nxp,imx-netc-psi"; - reg = <0x4cc80000 0x10000>, - <0x4cb00000 0x1000>; - reg-names = "port", "pfconfig"; - mac-index = <0>; - si-index = <0>; - status = "disabled"; - }; - - enetc_psi1: ethernet@4ccc0000 { - compatible = "nxp,imx-netc-psi"; - reg = <0x4ccc0000 0x10000>, - <0x4cb40000 0x1000>; - reg-names = "port", "pfconfig"; - mac-index = <1>; - si-index = <1>; - status = "disabled"; - }; - - enetc_psi2: ethernet@4cd00000 { - compatible = "nxp,imx-netc-psi"; - reg = <0x4cd00000 0x10000>, - <0x4cb80000 0x1000>; - reg-names = "port", "pfconfig"; - mac-index = <2>; - si-index = <2>; - status = "disabled"; - }; - - /* Internal port */ - enetc_psi3: ethernet@4cd40000 { - compatible = "nxp,imx-netc-psi"; - reg = <0x4cd40000 0x10000>, - <0x4ca00000 0x1000>; - reg-names = "port", "pfconfig"; - mac-index = <3>; - si-index = <3>; - phy-connection-type = "internal"; - status = "disabled"; - }; - - netc_ptp_clock0: ptp_clock@4cd80000 { - compatible = "nxp,netc-ptp-clock"; - reg = <0x4cd80000 0x10000>; - clocks = <&scmi_clk IMX943_CLK_ENET>; - status = "disabled"; - }; - - netc_ptp_clock1: ptp_clock@4cda0000 { - compatible = "nxp,netc-ptp-clock"; - reg = <0x4cda0000 0x10000>; - clocks = <&scmi_clk IMX943_CLK_ENET>; - status = "disabled"; - }; - - netc_ptp_clock2: ptp_clock@4cdc0000 { - compatible = "nxp,netc-ptp-clock"; - reg = <0x4cdc0000 0x10000>; - clocks = <&scmi_clk IMX943_CLK_ENET>; - status = "disabled"; - }; - - emdio: mdio@4cde0000 { - compatible = "nxp,imx-netc-emdio"; - reg = <0x4cde0000 0x10000>, - <0x4cbc0000 0x40000>; - reg-names = "basic", "pfconfig"; - clocks = <&scmi_clk IMX943_CLK_ENET>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; - - netc_switch: switch@4cc00000 { - compatible = "nxp,netc-switch"; - reg = <0x4cc00000 0x40000>, - <0x4ca02000 0x1000>; - reg-names = "base", "pfconfig"; - status = "disabled"; - #address-cells = <1>; - #size-cells = <0>; - - switch_port0: switch_port@0 { - compatible = "zephyr,dsa-port"; - reg = <0>; - status = "disabled"; - }; + mailbox_m33s_m70_for_m33s_as_master: ipm-mbox0 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m70_for_m33s 1>, <&mu_m33s_m70_for_m33s 0>; + mbox-names = "tx", "rx"; + }; - switch_port1: switch_port@1 { - compatible = "zephyr,dsa-port"; - reg = <1>; - status = "disabled"; - }; + mailbox_m33s_m70_for_m33s_as_remote: ipm-mbox1 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m70_for_m33s 0>, <&mu_m33s_m70_for_m33s 1>; + mbox-names = "tx", "rx"; + }; - /* Parallel interface is muxed with enetc_psi0. */ - switch_port2: switch_port@2 { - compatible = "zephyr,dsa-port"; - reg = <2>; - status = "disabled"; - }; + mailbox_m33s_m71_for_m33s_as_master: ipm-mbox2 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m71_for_m33s 1>, <&mu_m33s_m71_for_m33s 0>; + mbox-names = "tx", "rx"; + }; - /* Internal port */ - switch_port3: switch_port@3 { - compatible = "zephyr,dsa-port"; - reg = <3>; - ethernet = <&enetc_psi3>; - phy-connection-type = "internal"; - dsa-tag-protocol = ; - status = "disabled"; - }; - }; - }; + mailbox_m33s_m71_for_m33s_as_remote: ipm-mbox3 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m71_for_m33s 0>, <&mu_m33s_m71_for_m33s 1>; + mbox-names = "tx", "rx"; }; }; @@ -536,237 +105,31 @@ arm,num-irq-priority-bits = <4>; }; -/* - * GPIO pinmux options. These options define the pinmux settings - * for GPIO ports on the package, so that the GPIO driver can - * select GPIO mux options during GPIO configuration. - */ - -&gpio1 { - pinmux = <&iomuxc_i2c1_scl_gpio_io_gpio1_io0>, - <&iomuxc_i2c1_sda_gpio_io_gpio1_io1>, - <&iomuxc_i2c2_scl_gpio_io_gpio1_io2>, - <&iomuxc_i2c2_sda_gpio_io_gpio1_io3>, - <&iomuxc_uart1_rxd_gpio_io_gpio1_io4>, - <&iomuxc_uart1_txd_gpio_io_gpio1_io5>, - <&iomuxc_uart2_rxd_gpio_io_gpio1_io6>, - <&iomuxc_uart2_txd_gpio_io_gpio1_io7>, - <&iomuxc_pdm_clk_gpio_io_gpio1_io8>, - <&iomuxc_pdm_bit_stream0_gpio_io_gpio1_io9>, - <&iomuxc_pdm_bit_stream1_gpio_io_gpio1_io10>, - <&iomuxc_sai1_txfs_gpio_io_gpio1_io11>, - <&iomuxc_sai1_txc_gpio_io_gpio1_io12>, - <&iomuxc_sai1_txd0_gpio_io_gpio1_io13>, - <&iomuxc_sai1_rxd0_gpio_io_gpio1_io14>, - <&iomuxc_wdog_any_gpio_io_gpio1_io15>; +&scmi { + shmem = <&scmi_shmem0>; + mboxes = <&mu8 0>; }; -&gpio2 { - pinmux = <&iomuxc_gpio_io00_gpio_io_gpio2_io0>, - <&iomuxc_gpio_io01_gpio_io_gpio2_io1>, - <&iomuxc_gpio_io02_gpio_io_gpio2_io2>, - <&iomuxc_gpio_io03_gpio_io_gpio2_io3>, - <&iomuxc_gpio_io04_gpio_io_gpio2_io4>, - <&iomuxc_gpio_io05_gpio_io_gpio2_io5>, - <&iomuxc_gpio_io06_gpio_io_gpio2_io6>, - <&iomuxc_gpio_io07_gpio_io_gpio2_io7>, - <&iomuxc_gpio_io08_gpio_io_gpio2_io8>, - <&iomuxc_gpio_io09_gpio_io_gpio2_io9>, - <&iomuxc_gpio_io10_gpio_io_gpio2_io10>, - <&iomuxc_gpio_io11_gpio_io_gpio2_io11>, - <&iomuxc_gpio_io12_gpio_io_gpio2_io12>, - <&iomuxc_gpio_io13_gpio_io_gpio2_io13>, - <&iomuxc_gpio_io14_gpio_io_gpio2_io14>, - <&iomuxc_gpio_io15_gpio_io_gpio2_io15>, - <&iomuxc_gpio_io16_gpio_io_gpio2_io16>, - <&iomuxc_gpio_io17_gpio_io_gpio2_io17>, - <&iomuxc_gpio_io18_gpio_io_gpio2_io18>, - <&iomuxc_gpio_io19_gpio_io_gpio2_io19>, - <&iomuxc_gpio_io20_gpio_io_gpio2_io20>, - <&iomuxc_gpio_io21_gpio_io_gpio2_io21>, - <&iomuxc_gpio_io22_gpio_io_gpio2_io22>, - <&iomuxc_gpio_io23_gpio_io_gpio2_io23>, - <&iomuxc_gpio_io24_gpio_io_gpio2_io24>, - <&iomuxc_gpio_io25_gpio_io_gpio2_io25>, - <&iomuxc_gpio_io26_gpio_io_gpio2_io26>, - <&iomuxc_gpio_io27_gpio_io_gpio2_io27>, - <&iomuxc_gpio_io28_gpio_io_gpio2_io28>, - <&iomuxc_gpio_io29_gpio_io_gpio2_io29>, - <&iomuxc_gpio_io30_gpio_io_gpio2_io30>, - <&iomuxc_gpio_io31_gpio_io_gpio2_io31>; +&mu8 { + status = "okay"; }; -&gpio3 { - pinmux = <&iomuxc_gpio_io32_gpio_io_gpio3_io0>, - <&iomuxc_gpio_io33_gpio_io_gpio3_io1>, - <&iomuxc_gpio_io34_gpio_io_gpio3_io2>, - <&iomuxc_gpio_io35_gpio_io_gpio3_io3>, - <&iomuxc_gpio_io36_gpio_io_gpio3_io4>, - <&iomuxc_gpio_io37_gpio_io_gpio3_io5>, - <&iomuxc_gpio_io38_gpio_io_gpio3_io6>, - <&iomuxc_gpio_io39_gpio_io_gpio3_io7>, - <&iomuxc_gpio_io40_gpio_io_gpio3_io8>, - <&iomuxc_gpio_io41_gpio_io_gpio3_io9>, - <&iomuxc_gpio_io42_gpio_io_gpio3_io10>, - <&iomuxc_gpio_io43_gpio_io_gpio3_io11>, - <&iomuxc_gpio_io44_gpio_io_gpio3_io12>, - <&iomuxc_gpio_io45_gpio_io_gpio3_io13>, - <&iomuxc_gpio_io46_gpio_io_gpio3_io14>, - <&iomuxc_gpio_io47_gpio_io_gpio3_io15>, - <&iomuxc_gpio_io48_gpio_io_gpio3_io16>, - <&iomuxc_gpio_io49_gpio_io_gpio3_io17>, - <&iomuxc_gpio_io50_gpio_io_gpio3_io18>, - <&iomuxc_gpio_io51_gpio_io_gpio3_io19>, - <&iomuxc_gpio_io52_gpio_io_gpio3_io20>, - <&iomuxc_gpio_io53_gpio_io_gpio3_io21>, - <&iomuxc_gpio_io54_gpio_io_gpio3_io22>, - <&iomuxc_gpio_io55_gpio_io_gpio3_io23>, - <&iomuxc_gpio_io56_gpio_io_gpio3_io24>, - <&iomuxc_gpio_io57_gpio_io_gpio3_io25>; +&mu_m33s_secure_m71_for_m33s { + interrupts = <289 0>; + status = "okay"; }; -&gpio4 { - pinmux = <&iomuxc_ccm_clko1_gpio_io_gpio4_io0>, - <&iomuxc_ccm_clko2_gpio_io_gpio4_io1>, - <&iomuxc_ccm_clko3_gpio_io_gpio4_io2>, - <&iomuxc_ccm_clko4_gpio_io_gpio4_io3>, - <&iomuxc_dap_tdi_gpio_io_gpio4_io4>, - <&iomuxc_dap_tms_swdio_gpio_io_gpio4_io5>, - <&iomuxc_dap_tclk_swclk_gpio_io_gpio4_io6>, - <&iomuxc_dap_tdo_traceswo_gpio_io_gpio4_io7>, - <&iomuxc_sd1_clk_gpio_io_gpio4_io8>, - <&iomuxc_sd1_cmd_gpio_io_gpio4_io9>, - <&iomuxc_sd1_data0_gpio_io_gpio4_io10>, - <&iomuxc_sd1_data1_gpio_io_gpio4_io11>, - <&iomuxc_sd1_data2_gpio_io_gpio4_io12>, - <&iomuxc_sd1_data3_gpio_io_gpio4_io13>, - <&iomuxc_sd1_data4_gpio_io_gpio4_io14>, - <&iomuxc_sd1_data5_gpio_io_gpio4_io15>, - <&iomuxc_sd1_data6_gpio_io_gpio4_io16>, - <&iomuxc_sd1_data7_gpio_io_gpio4_io17>, - <&iomuxc_sd1_strobe_gpio_io_gpio4_io18>, - <&iomuxc_sd2_vselect_gpio_io_gpio4_io19>, - <&iomuxc_sd2_cd_b_gpio_io_gpio4_io20>, - <&iomuxc_sd2_clk_gpio_io_gpio4_io21>, - <&iomuxc_sd2_cmd_gpio_io_gpio4_io22>, - <&iomuxc_sd2_data0_gpio_io_gpio4_io23>, - <&iomuxc_sd2_data1_gpio_io_gpio4_io24>, - <&iomuxc_sd2_data2_gpio_io_gpio4_io25>, - <&iomuxc_sd2_data3_gpio_io_gpio4_io26>, - <&iomuxc_sd2_reset_b_gpio_io_gpio4_io27>, - <&iomuxc_sd2_gpio0_gpio_io_gpio4_io28>, - <&iomuxc_sd2_gpio1_gpio_io_gpio4_io29>, - <&iomuxc_sd2_gpio2_gpio_io_gpio4_io30>, - <&iomuxc_sd2_gpio3_gpio_io_gpio4_io31>; +&mu_m33s_m71_for_m33s { + interrupts = <290 0>; + status = "okay"; }; -&gpio5 { - pinmux = <&iomuxc_eth0_txd0_gpio_io_gpio5_io0>, - <&iomuxc_eth0_txd1_gpio_io_gpio5_io1>, - <&iomuxc_eth0_tx_en_gpio_io_gpio5_io2>, - <&iomuxc_eth0_tx_clk_gpio_io_gpio5_io3>, - <&iomuxc_eth0_rxd0_gpio_io_gpio5_io4>, - <&iomuxc_eth0_rxd1_gpio_io_gpio5_io5>, - <&iomuxc_eth0_rx_dv_gpio_io_gpio5_io6>, - <&iomuxc_eth0_txd2_gpio_io_gpio5_io7>, - <&iomuxc_eth0_txd3_gpio_io_gpio5_io8>, - <&iomuxc_eth0_rxd2_gpio_io_gpio5_io9>, - <&iomuxc_eth0_rxd3_gpio_io_gpio5_io10>, - <&iomuxc_eth0_rx_clk_gpio_io_gpio5_io11>, - <&iomuxc_eth0_rx_er_gpio_io_gpio5_io12>, - <&iomuxc_eth0_tx_er_gpio_io_gpio5_io13>, - <&iomuxc_eth0_crs_gpio_io_gpio5_io14>, - <&iomuxc_eth0_col_gpio_io_gpio5_io15>, - <&iomuxc_eth1_txd0_gpio_io_gpio5_io16>, - <&iomuxc_eth1_txd1_gpio_io_gpio5_io17>, - <&iomuxc_eth1_tx_en_gpio_io_gpio5_io18>, - <&iomuxc_eth1_tx_clk_gpio_io_gpio5_io19>, - <&iomuxc_eth1_rxd0_gpio_io_gpio5_io20>, - <&iomuxc_eth1_rxd1_gpio_io_gpio5_io21>, - <&iomuxc_eth1_rx_dv_gpio_io_gpio5_io22>, - <&iomuxc_eth1_txd2_gpio_io_gpio5_io23>, - <&iomuxc_eth1_txd3_gpio_io_gpio5_io24>, - <&iomuxc_eth1_rxd2_gpio_io_gpio5_io25>, - <&iomuxc_eth1_rxd3_gpio_io_gpio5_io26>, - <&iomuxc_eth1_rx_clk_gpio_io_gpio5_io27>, - <&iomuxc_eth1_rx_er_gpio_io_gpio5_io28>, - <&iomuxc_eth1_tx_er_gpio_io_gpio5_io29>, - <&iomuxc_eth1_crs_gpio_io_gpio5_io30>, - <&iomuxc_eth1_col_gpio_io_gpio5_io31>; -}; - -&gpio6 { - pinmux = <&iomuxc_eth2_mdc_gpio1_gpio_io_gpio6_io0>, - <&iomuxc_eth2_mdio_gpio2_gpio_io_gpio6_io1>, - <&iomuxc_eth2_txd3_gpio_io_gpio6_io2>, - <&iomuxc_eth2_txd2_gpio_io_gpio6_io3>, - <&iomuxc_eth2_txd1_gpio_io_gpio6_io4>, - <&iomuxc_eth2_txd0_gpio_io_gpio6_io5>, - <&iomuxc_eth2_tx_ctl_gpio_io_gpio6_io6>, - <&iomuxc_eth2_tx_clk_gpio_io_gpio6_io7>, - <&iomuxc_eth2_rx_ctl_gpio_io_gpio6_io8>, - <&iomuxc_eth2_rx_clk_gpio_io_gpio6_io9>, - <&iomuxc_eth2_rxd0_gpio_io_gpio6_io10>, - <&iomuxc_eth2_rxd1_gpio_io_gpio6_io11>, - <&iomuxc_eth2_rxd2_gpio_io_gpio6_io12>, - <&iomuxc_eth2_rxd3_gpio_io_gpio6_io13>, - <&iomuxc_eth3_mdc_gpio1_gpio_io_gpio6_io14>, - <&iomuxc_eth3_mdio_gpio2_gpio_io_gpio6_io15>, - <&iomuxc_eth3_txd3_gpio_io_gpio6_io16>, - <&iomuxc_eth3_txd2_gpio_io_gpio6_io17>, - <&iomuxc_eth3_txd1_gpio_io_gpio6_io18>, - <&iomuxc_eth3_txd0_gpio_io_gpio6_io19>, - <&iomuxc_eth3_tx_ctl_gpio_io_gpio6_io20>, - <&iomuxc_eth3_tx_clk_gpio_io_gpio6_io21>, - <&iomuxc_eth3_rx_ctl_gpio_io_gpio6_io22>, - <&iomuxc_eth3_rx_clk_gpio_io_gpio6_io23>, - <&iomuxc_eth3_rxd0_gpio_io_gpio6_io24>, - <&iomuxc_eth3_rxd1_gpio_io_gpio6_io25>, - <&iomuxc_eth3_rxd2_gpio_io_gpio6_io26>, - <&iomuxc_eth3_rxd3_gpio_io_gpio6_io27>, - <&iomuxc_eth4_mdc_gpio1_gpio_io_gpio6_io28>, - <&iomuxc_eth4_mdio_gpio2_gpio_io_gpio6_io29>, - <&iomuxc_eth4_tx_clk_gpio_io_gpio6_io30>, - <&iomuxc_eth4_tx_ctl_gpio_io_gpio6_io31>; -}; - -/* - * Use the NULL pinmux for the GPIO io port which is not available to - * make the driver to be easy. - */ -&scmi_iomuxc { - /omit-if-no-ref/ null_pinmux: NULL_PINMUX { - pinmux = <0x0 0 0x0 0 0x0>; - }; +&mu_m33s_secure_m70_for_m33s { + interrupts = <291 0>; + status = "okay"; }; -&gpio7 { - pinmux = <&iomuxc_eth4_txd0_gpio_io_gpio7_io0>, - <&iomuxc_eth4_txd1_gpio_io_gpio7_io1>, - <&iomuxc_eth4_txd2_gpio_io_gpio7_io2>, - <&iomuxc_eth4_txd3_gpio_io_gpio7_io3>, - <&iomuxc_eth4_rxd0_gpio_io_gpio7_io4>, - <&iomuxc_eth4_rxd1_gpio_io_gpio7_io5>, - <&iomuxc_eth4_rxd2_gpio_io_gpio7_io6>, - <&iomuxc_eth4_rxd3_gpio_io_gpio7_io7>, - <&iomuxc_eth4_rx_ctl_gpio_io_gpio7_io8>, - <&iomuxc_eth4_rx_clk_gpio_io_gpio7_io9>, - <&null_pinmux>, - <&null_pinmux>, - <&null_pinmux>, - <&null_pinmux>, - <&null_pinmux>, - <&null_pinmux>, - <&iomuxc_xspi1_data0_gpio_io_gpio7_io16>, - <&iomuxc_xspi1_data1_gpio_io_gpio7_io17>, - <&iomuxc_xspi1_data2_gpio_io_gpio7_io18>, - <&iomuxc_xspi1_data3_gpio_io_gpio7_io19>, - <&iomuxc_xspi1_data4_gpio_io_gpio7_io20>, - <&iomuxc_xspi1_data5_gpio_io_gpio7_io21>, - <&iomuxc_xspi1_data6_gpio_io_gpio7_io22>, - <&iomuxc_xspi1_data7_gpio_io_gpio7_io23>, - <&iomuxc_xspi1_dqs_gpio_io_gpio7_io24>, - <&iomuxc_xspi1_sclk_gpio_io_gpio7_io25>, - <&iomuxc_xspi1_ss0_b_gpio_io_gpio7_io26>, - <&iomuxc_xspi1_ss1_b_gpio_io_gpio7_io27>; +&mu_m33s_m70_for_m33s { + interrupts = <292 0>; + status = "okay"; }; diff --git a/dts/arm/nxp/nxp_imx943_m7_0.dtsi b/dts/arm/nxp/nxp_imx943_m7_0.dtsi index 16b77cd80e759..204b9f6053a1a 100644 --- a/dts/arm/nxp/nxp_imx943_m7_0.dtsi +++ b/dts/arm/nxp/nxp_imx943_m7_0.dtsi @@ -77,6 +77,30 @@ reg = <0x20000000 DT_SIZE_K(256)>; }; }; + + mailbox_m70_m71_for_m70_as_master: ipm-mbox4 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m70_m71_for_m70 1>, <&mu_m70_m71_for_m70 0>; + mbox-names = "tx", "rx"; + }; + + mailbox_m70_m71_for_m70_as_remote: ipm-mbox5 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m70_m71_for_m70 0>, <&mu_m70_m71_for_m70 1>; + mbox-names = "tx", "rx"; + }; + + mailbox_m33s_m70_for_m70_as_master: ipm-mbox6 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m70_for_m70 1>, <&mu_m33s_m70_for_m70 0>; + mbox-names = "tx", "rx"; + }; + + mailbox_m33s_m70_for_m70_as_remote: ipm-mbox7 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m70_for_m70 0>, <&mu_m33s_m70_for_m70 1>; + mbox-names = "tx", "rx"; + }; }; &nvic { @@ -91,3 +115,20 @@ &mu5 { status = "okay"; }; + +&mu_m70_m71_for_m70 { + interrupts = <130 0>; + status = "okay"; +}; + +/* m70 and m33s secure */ +&mu_m33s_secure_m70_for_m70 { + interrupts = <133 0>; + status = "okay"; +}; + +/* m70 and m33s non secure */ +&mu_m33s_m70_for_m70 { + interrupts = <134 0>; + status = "okay"; +}; diff --git a/dts/arm/nxp/nxp_imx943_m7_1.dtsi b/dts/arm/nxp/nxp_imx943_m7_1.dtsi index 14ba2fbc82bdc..cc02b87ab1572 100644 --- a/dts/arm/nxp/nxp_imx943_m7_1.dtsi +++ b/dts/arm/nxp/nxp_imx943_m7_1.dtsi @@ -77,6 +77,30 @@ reg = <0x20000000 DT_SIZE_K(256)>; }; }; + + mailbox_m70_m71_for_m71_as_master: ipm-mbox8 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m70_m71_for_m71 1>, <&mu_m70_m71_for_m71 0>; + mbox-names = "tx", "rx"; + }; + + mailbox_m70_m71_for_m71_as_remote: ipm-mbox9 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m70_m71_for_m71 0>, <&mu_m70_m71_for_m71 1>; + mbox-names = "tx", "rx"; + }; + + mailbox_m33s_m71_for_m71_as_master: ipm-mbox10 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m71_for_m71 1>, <&mu_m33s_m71_for_m71 0>; + mbox-names = "tx", "rx"; + }; + + mailbox_m33s_m71_for_m71_as_remote: ipm-mbox11 { + compatible = "zephyr,mbox-ipm"; + mboxes = <&mu_m33s_m71_for_m71 0>, <&mu_m33s_m71_for_m71 1>; + mbox-names = "tx", "rx"; + }; }; &nvic { @@ -91,3 +115,19 @@ &mu7 { status = "okay"; }; + +/* m70 and m71 */ +&mu_m70_m71_for_m71 { + interrupts = <129 0>; + status = "okay"; +}; + +&mu_m33s_secure_m71_for_m71 { + interrupts = <131 0>; + status = "okay"; +}; + +&mu_m33s_m71_for_m71 { + interrupts = <132 0>; + status = "okay"; +}; diff --git a/dts/arm/nxp/nxp_imx94x.dtsi b/dts/arm/nxp/nxp_imx94x.dtsi index 50a5f15013882..e90dc5617864d 100644 --- a/dts/arm/nxp/nxp_imx94x.dtsi +++ b/dts/arm/nxp/nxp_imx94x.dtsi @@ -5,7 +5,11 @@ */ #include +#include +#include +#include #include +#include / { cpus { @@ -58,6 +62,56 @@ }; soc { + mu10_a: mbox@42430000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42430000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu10_b: mbox@42440000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42440000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + lpi2c3: i2c@42530000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x42530000 0x4000>; + interrupts = <67 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C3>; + status = "disabled"; + }; + + lpi2c4: i2c@42540000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x42540000 0x4000>; + interrupts = <68 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C4>; + status = "disabled"; + }; + + mu11_a: mbox@42730000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42730000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu11_b: mbox@42740000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42740000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + lpuart3: serial@42570000 { compatible = "nxp,imx-lpuart", "nxp,lpuart"; reg = <0x42570000 DT_SIZE_K(64)>; @@ -106,6 +160,50 @@ status = "disabled"; }; + lpi2c5: i2c@426b0000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x426b0000 0x4000>; + interrupts = <108 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C5>; + status = "disabled"; + }; + + lpi2c6: i2c@426c0000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x426c0000 0x4000>; + interrupts = <109 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C6>; + status = "disabled"; + }; + + lpi2c7: i2c@426d0000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x426d0000 0x4000>; + interrupts = <110 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C7>; + status = "disabled"; + }; + + lpi2c8: i2c@426e0000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x426e0000 0x4000>; + interrupts = <111 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C8>; + status = "disabled"; + }; + lpuart9: serial@42a50000 { compatible = "nxp,imx-lpuart", "nxp,lpuart"; reg = <0x42a50000 DT_SIZE_K(64)>; @@ -138,6 +236,104 @@ status = "disabled"; }; + mu12_a: mbox@42ab0000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42ab0000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu12_b: mbox@42ac0000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42ac0000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu13_a: mbox@42ad0000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42ad0000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu13_b: mbox@42ae0000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42ae0000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu14_a: mbox@42af0000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42af0000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu14_b: mbox@42b00000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b00000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu15_a: mbox@42b10000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b10000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu15_b: mbox@42b20000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b20000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu16_a: mbox@42b30000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b30000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu16_b: mbox@42b40000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b40000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu17_a: mbox@42b50000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b50000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu17_b: mbox@42b60000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b60000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m70_m71_for_m71: mbox@42b70000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b70000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m70_m71_for_m70: mbox@42b80000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x42b80000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + flexio1: flexio@425c0000 { compatible = "nxp,flexio"; reg = <0x425c0000 DT_SIZE_K(4)>; @@ -231,6 +427,28 @@ status = "disabled"; }; + lpi2c1: i2c@44340000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x44340000 0x4000>; + interrupts = <15 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C1>; + status = "disabled"; + }; + + lpi2c2: i2c@44350000 { + compatible = "nxp,lpi2c"; + clock-frequency = ; + #address-cells = <1>; + #size-cells = <0>; + reg = <0x44350000 0x4000>; + interrupts = <16 0>; + clocks = <&scmi_clk IMX943_CLK_LPI2C2>; + status = "disabled"; + }; + lpuart1: serial@44380000 { compatible = "nxp,imx-lpuart", "nxp,lpuart"; reg = <0x44380000 DT_SIZE_K(64)>; @@ -281,26 +499,18 @@ status = "disabled"; }; - netc: ethernet@4ca00000 { - reg = <0x4ca00000 0x500000>; + netc: ethernet { + compatible = "nxp,imx-netc"; interrupts = <294 0>; #address-cells = <1>; #size-cells = <1>; ranges; - status = "disabled"; - - emdio: mdio@4cde0000 { - compatible = "nxp,imx-netc-emdio"; - reg = <0x4cde0000 0x10000>; - clocks = <&scmi_clk IMX943_CLK_ENET>; - #address-cells = <1>; - #size-cells = <0>; - status = "disabled"; - }; enetc_psi0: ethernet@4cc80000 { compatible = "nxp,imx-netc-psi"; - reg = <0x4cc80000 0x10000>; + reg = <0x4cc80000 0x10000>, + <0x4cb00000 0x1000>; + reg-names = "port", "pfconfig"; mac-index = <0>; si-index = <0>; status = "disabled"; @@ -308,7 +518,9 @@ enetc_psi1: ethernet@4ccc0000 { compatible = "nxp,imx-netc-psi"; - reg = <0x4ccc0000 0x10000>; + reg = <0x4ccc0000 0x10000>, + <0x4cb40000 0x1000>; + reg-names = "port", "pfconfig"; mac-index = <1>; si-index = <1>; status = "disabled"; @@ -316,12 +528,26 @@ enetc_psi2: ethernet@4cd00000 { compatible = "nxp,imx-netc-psi"; - reg = <0x4cd00000 0x10000>; + reg = <0x4cd00000 0x10000>, + <0x4cb80000 0x1000>; + reg-names = "port", "pfconfig"; mac-index = <2>; si-index = <2>; status = "disabled"; }; + /* Internal port */ + enetc_psi3: ethernet@4cd40000 { + compatible = "nxp,imx-netc-psi"; + reg = <0x4cd40000 0x10000>, + <0x4ca00000 0x1000>; + reg-names = "port", "pfconfig"; + mac-index = <3>; + si-index = <3>; + phy-connection-type = "internal"; + status = "disabled"; + }; + netc_ptp_clock0: ptp_clock@4cd80000 { compatible = "nxp,netc-ptp-clock"; reg = <0x4cd80000 0x10000>; @@ -342,7 +568,181 @@ clocks = <&scmi_clk IMX943_CLK_ENET>; status = "disabled"; }; + + emdio: mdio@4cde0000 { + compatible = "nxp,imx-netc-emdio"; + reg = <0x4cde0000 0x10000>, + <0x4cbc0000 0x40000>; + reg-names = "basic", "pfconfig"; + clocks = <&scmi_clk IMX943_CLK_ENET>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + netc_switch: switch@4cc00000 { + compatible = "nxp,netc-switch"; + reg = <0x4cc00000 0x40000>, + <0x4ca02000 0x1000>; + reg-names = "base", "pfconfig"; + status = "disabled"; + #address-cells = <1>; + #size-cells = <0>; + + switch_port0: switch_port@0 { + compatible = "zephyr,dsa-port"; + reg = <0>; + status = "disabled"; + }; + + switch_port1: switch_port@1 { + compatible = "zephyr,dsa-port"; + reg = <1>; + status = "disabled"; + }; + + /* Parallel interface is muxed with enetc_psi0. */ + switch_port2: switch_port@2 { + compatible = "zephyr,dsa-port"; + reg = <2>; + status = "disabled"; + }; + + /* Internal port */ + switch_port3: switch_port@3 { + compatible = "zephyr,dsa-port"; + reg = <3>; + ethernet = <&enetc_psi3>; + phy-connection-type = "internal"; + dsa-tag-protocol = ; + status = "disabled"; + }; + }; + }; + + mu_m33s_secure_m71_for_m71: mbox@4d120000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d120000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m33s_secure_m71_for_m33s: mbox@4d130000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d130000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m33s_m71_for_m71: mbox@4d140000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d140000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m33s_m71_for_m33s: mbox@4d150000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d150000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m33s_secure_m70_for_m70: mbox@4d160000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d160000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m33s_secure_m70_for_m33s: mbox@4d170000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d170000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; }; + + mu_m33s_m70_for_m70: mbox@4d180000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d180000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + + mu_m33s_m70_for_m33s: mbox@4d190000 { + compatible = "nxp,mbox-imx-mu"; + reg = <0x4d190000 DT_SIZE_K(64)>; + #mbox-cells = <1>; + status = "disabled"; + }; + }; + /* Define memory regions for IPC between m33s and m71 */ + dram_m33s_m71_ipc0: memory0@87000000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87000000 DT_SIZE_K(16)>; + zephyr,memory-region="DRAM_M33S_M71_IPC0"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + dram_m33s_m71_ipc1: memory1@87004000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87004000 DT_SIZE_K(16)>; + zephyr,memory-region="DRAM_M33S_M71_IPC1"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + /* Define memory regions for IPC between m70 and m71 */ + dram_m70_m71_ipc0: memory2@87008000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87008000 DT_SIZE_K(16)>; + zephyr,memory-region="DRAM_M70_M71_IPC0"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + dram_m70_m71_ipc1: memory3@8700c000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x8700c000 DT_SIZE_K(16)>; + zephyr,memory-region="DRAM_M70_M71_IPC1"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + /* Define memory regions for IPC between m33s and m70 */ + dram_m33s_m70_ipc0: memory4@87010000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87010000 DT_SIZE_K(16)>; + zephyr,memory-region="DRAM_M33S_M70_IPC0"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + dram_m33s_m70_ipc1: memory5@87014000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87014000 DT_SIZE_K(16)>; + zephyr,memory-region="DRAM_M33S_M70_IPC1"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + /* Define memory regions for IPC between m33s and m71 */ + dram_m33s_m71_sh_mem: memory@87000000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87000000 DT_SIZE_K(32)>; + zephyr,memory-region="DRAM_M33S_M71_SH_MEM"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + /* Define memory regions for IPC between m70 and m71 */ + dram_m70_m71_sh_mem: memory@87008000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87008000 DT_SIZE_K(32)>; + zephyr,memory-region="DRAM_M70_M71_SH_MEM"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; + }; + + /* Define memory regions for IPC between m33s and m70 */ + dram_m33s_m70_sh_mem: memory@87010000 { + compatible = "zephyr,memory-region", "mmio-sram"; + reg = <0x87010000 DT_SIZE_K(32)>; + zephyr,memory-region="DRAM_M33S_M70_SH_MEM"; + zephyr,memory-attr = <(DT_MEM_ARM(ATTR_MPU_RAM_NOCACHE))>; }; }; diff --git a/samples/drivers/mbox/CMakeLists.txt b/samples/drivers/mbox/CMakeLists.txt index 64cb39ff8d645..984b7a461d934 100644 --- a/samples/drivers/mbox/CMakeLists.txt +++ b/samples/drivers/mbox/CMakeLists.txt @@ -29,6 +29,9 @@ if(CONFIG_BOARD_NRF5340DK_NRF5340_CPUAPP OR CONFIG_BOARD_NRF54L15DK_NRF54L15_CPUAPP OR CONFIG_BOARD_NRF54LM20DK_NRF54LM20A_CPUAPP OR CONFIG_BOARD_STM32H747I_DISCO_STM32H747XX_M7 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_0 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_1 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M33 OR CONFIG_BOARD_BL54L15_DVK_NRF54L15_CPUAPP OR CONFIG_BOARD_BL54L15U_DVK_NRF54L15_CPUAPP OR CONFIG_BOARD_EK_RA8P1_R7KA8P1KFLCAC_CM85) diff --git a/samples/drivers/mbox/Kconfig.sysbuild b/samples/drivers/mbox/Kconfig.sysbuild index 1ebc428a49143..816e4cc4a4b1e 100644 --- a/samples/drivers/mbox/Kconfig.sysbuild +++ b/samples/drivers/mbox/Kconfig.sysbuild @@ -29,3 +29,6 @@ config REMOTE_BOARD default "bl54l15_dvk/nrf54l15/cpuflpr" if "$(BOARD)$(BOARD_QUALIFIERS)" = "bl54l15_dvk/nrf54l15/cpuapp" default "bl54l15u_dvk/nrf54l15/cpuflpr" if $(BOARD) = "bl54l15u_dvk" default "ek_ra8p1/r7ka8p1kflcac/cm33" if $(BOARD) = "ek_ra8p1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_0" + default "imx943_evk/mimx94398/m7_1" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m33" diff --git a/samples/drivers/mbox/boards/imx943_evk_mimx94398_m33.overlay b/samples/drivers/mbox/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..262f8db52fa80 --- /dev/null +++ b/samples/drivers/mbox/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m33s(NETCMIX) as master(host), m71(M7MIX1) as remote + */ + mboxes = <&mu_m33s_m71_for_m33s 1>, <&mu_m33s_m71_for_m33s 0>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/drivers/mbox/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..904760a3a5cd9 --- /dev/null +++ b/samples/drivers/mbox/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m70(M7MIX0) as master(host), m33s(NETCMIX) as remote + */ + mboxes = <&mu_m33s_m70_for_m70 1>, <&mu_m33s_m70_for_m70 0>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/drivers/mbox/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..f436b90336067 --- /dev/null +++ b/samples/drivers/mbox/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m71(M7MIX1) as master(host), m33s(NETCMIX) as remote + */ + mboxes = <&mu_m33s_m71_for_m71 1>, <&mu_m33s_m71_for_m71 0>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox/remote/CMakeLists.txt b/samples/drivers/mbox/remote/CMakeLists.txt index 589e5b565926b..0f5a584b4f60a 100644 --- a/samples/drivers/mbox/remote/CMakeLists.txt +++ b/samples/drivers/mbox/remote/CMakeLists.txt @@ -29,6 +29,9 @@ if(CONFIG_BOARD_NRF5340DK_NRF5340_CPUNET OR CONFIG_BOARD_NRF54L15DK_NRF54L15_CPUFLPR OR CONFIG_BOARD_NRF54LM20DK_NRF54LM20A_CPUFLPR OR CONFIG_BOARD_STM32H747I_DISCO_STM32H747XX_M4 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_0 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_1 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M33 OR CONFIG_BOARD_BL54L15_DVK_NRF54L15_CPUFLPR OR CONFIG_BOARD_BL54L15U_DVK_NRF54L15_CPUFLPR OR CONFIG_BOARD_EK_RA8P1_R7KA8P1KFLCAC_CM33) diff --git a/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m33.overlay b/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..56aa337a545d6 --- /dev/null +++ b/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m71(M7MIX1) as master(host), m33s(NETCMIX) as remote + */ + mboxes = <&mu_m33s_m71_for_m33s 0>, <&mu_m33s_m71_for_m33s 1>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..2c38eeba54812 --- /dev/null +++ b/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m33s(NETCMIX) as master(host), m70(M7MIX0) as remote + */ + mboxes = <&mu_m33s_m70_for_m70 0>, <&mu_m33s_m70_for_m70 1>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..764c6e44242a7 --- /dev/null +++ b/samples/drivers/mbox/remote/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m33s(NETCMIX) as master(host), m71(M7MIX1) as remote + */ + mboxes = <&mu_m33s_m71_for_m71 0>, <&mu_m33s_m71_for_m71 1>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox_data/CMakeLists.txt b/samples/drivers/mbox_data/CMakeLists.txt index e72292ba13b4e..011e34e1c88a8 100644 --- a/samples/drivers/mbox_data/CMakeLists.txt +++ b/samples/drivers/mbox_data/CMakeLists.txt @@ -16,7 +16,10 @@ if(CONFIG_BOARD_MIMXRT1170_EVK_MIMXRT1176_CM7 OR CONFIG_BOARD_MCX_N9XX_EVK_MCXN947_CPU0 OR CONFIG_BOARD_MIMXRT1180_EVK_MIMXRT1189_CM33 OR CONFIG_BOARD_LPCXPRESSO55S69_LPC55S69_CPU0 OR - CONFIG_BOARD_EK_RA8P1_R7KA8P1KFLCAC_CM85) + CONFIG_BOARD_EK_RA8P1_R7KA8P1KFLCAC_CM85 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_0 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_1 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M33) message(STATUS "${BOARD}${BOARD_QUALIFIERS} compile as Main in this sample") else() message(FATAL_ERROR "${BOARD}${BOARD_QUALIFIERS} is not supported for this sample") diff --git a/samples/drivers/mbox_data/Kconfig.sysbuild b/samples/drivers/mbox_data/Kconfig.sysbuild index 5880535dc2b86..2a4505d44a666 100644 --- a/samples/drivers/mbox_data/Kconfig.sysbuild +++ b/samples/drivers/mbox_data/Kconfig.sysbuild @@ -15,3 +15,6 @@ string default "frdm_mcxn947/mcxn947/cpu1" if $(BOARD) = "frdm_mcxn947" default "mcx_n9xx_evk/mcxn947/cpu1" if $(BOARD) = "mcx_n9xx_evk" default "ek_ra8p1/r7ka8p1kflcac/cm33" if $(BOARD) = "ek_ra8p1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_0" + default "imx943_evk/mimx94398/m7_1" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m33" diff --git a/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m33.overlay b/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..262f8db52fa80 --- /dev/null +++ b/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m33s(NETCMIX) as master(host), m71(M7MIX1) as remote + */ + mboxes = <&mu_m33s_m71_for_m33s 1>, <&mu_m33s_m71_for_m33s 0>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..904760a3a5cd9 --- /dev/null +++ b/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m70(M7MIX0) as master(host), m33s(NETCMIX) as remote + */ + mboxes = <&mu_m33s_m70_for_m70 1>, <&mu_m33s_m70_for_m70 0>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..f436b90336067 --- /dev/null +++ b/samples/drivers/mbox_data/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m71(M7MIX1) as master(host), m33s(NETCMIX) as remote + */ + mboxes = <&mu_m33s_m71_for_m71 1>, <&mu_m33s_m71_for_m71 0>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox_data/remote/CMakeLists.txt b/samples/drivers/mbox_data/remote/CMakeLists.txt index e07f156639d9d..9efdc5c0cf9fe 100644 --- a/samples/drivers/mbox_data/remote/CMakeLists.txt +++ b/samples/drivers/mbox_data/remote/CMakeLists.txt @@ -14,7 +14,10 @@ if(CONFIG_BOARD_MIMXRT1170_EVK_MIMXRT1176_CM4 OR CONFIG_BOARD_MCX_N9XX_EVK_MCXN947_CPU1 OR CONFIG_BOARD_MIMXRT1180_EVK_MIMXRT1189_CM7 OR CONFIG_BOARD_LPCXPRESSO55S69_LPC55S69_CPU1 OR - CONFIG_BOARD_EK_RA8P1_R7KA8P1KFLCAC_CM33) + CONFIG_BOARD_EK_RA8P1_R7KA8P1KFLCAC_CM33 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_0 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M7_1 OR + CONFIG_BOARD_IMX943_EVK_MIMX94398_M33) message(STATUS "${BOARD}${BOARD_QUALIFIERS} compile as remote in this sample") else() message(FATAL_ERROR "${BOARD}${BOARD_QUALIFIERS} is not supported for this sample") diff --git a/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m33.overlay b/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..56aa337a545d6 --- /dev/null +++ b/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m71(M7MIX1) as master(host), m33s(NETCMIX) as remote + */ + mboxes = <&mu_m33s_m71_for_m33s 0>, <&mu_m33s_m71_for_m33s 1>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..2c38eeba54812 --- /dev/null +++ b/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m33s(NETCMIX) as master(host), m70(M7MIX0) as remote + */ + mboxes = <&mu_m33s_m70_for_m70 0>, <&mu_m33s_m70_for_m70 1>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..764c6e44242a7 --- /dev/null +++ b/samples/drivers/mbox_data/remote/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,16 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + mbox-consumer { + compatible = "vnd,mbox-consumer"; + /* + * m33s(NETCMIX) as master(host), m71(M7MIX1) as remote + */ + mboxes = <&mu_m33s_m71_for_m71 0>, <&mu_m33s_m71_for_m71 1>; + mbox-names = "tx", "rx"; + }; +}; diff --git a/samples/subsys/ipc/ipc_service/static_vrings/Kconfig.sysbuild b/samples/subsys/ipc/ipc_service/static_vrings/Kconfig.sysbuild index 64c51703004ea..a34dfef2ae930 100644 --- a/samples/subsys/ipc/ipc_service/static_vrings/Kconfig.sysbuild +++ b/samples/subsys/ipc/ipc_service/static_vrings/Kconfig.sysbuild @@ -18,3 +18,6 @@ string default "mcx_n9xx_evk/mcxn947/cpu1" if $(BOARD) = "mcx_n9xx_evk" default "mimxrt1180_evk/mimxrt1189/cm7" if $(BOARD) = "mimxrt1180_evk" default "ek_ra8p1/r7ka8p1kflcac/cm33" if $(BOARD) = "ek_ra8p1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_0" + default "imx943_evk/mimx94398/m7_1" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m33" diff --git a/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m33.overlay b/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..75c8c3c27e2b7 --- /dev/null +++ b/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,32 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + ipc { + ipc0: ipc0 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc0>; + mboxes = <&mu_m33s_m71_for_m33s 0>, <&mu_m33s_m71_for_m33s 1>; + mbox-names = "tx", "rx"; + role = "host"; + status = "okay"; + }; + + ipc1: ipc1 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc1>; + mboxes = <&mu_m33s_m71_for_m33s 2>, <&mu_m33s_m71_for_m33s 3>; + mbox-names = "tx", "rx"; + role = "host"; + zephyr,priority = <1 PRIO_COOP>; + zephyr,buffer-size = <128>; + status = "okay"; + }; + }; +}; diff --git a/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..71788a47d2830 --- /dev/null +++ b/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,32 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + ipc { + ipc0: ipc0 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m70_ipc0>; + mboxes = <&mu_m33s_m70_for_m70 0>, <&mu_m33s_m70_for_m70 1>; + mbox-names = "tx", "rx"; + role = "host"; + status = "okay"; + }; + + ipc1: ipc1 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m70_ipc1>; + mboxes = <&mu_m33s_m70_for_m70 2>, <&mu_m33s_m70_for_m70 3>; + mbox-names = "tx", "rx"; + role = "host"; + zephyr,priority = <1 PRIO_COOP>; + zephyr,buffer-size = <128>; + status = "okay"; + }; + }; +}; diff --git a/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..13e0af988b363 --- /dev/null +++ b/samples/subsys/ipc/ipc_service/static_vrings/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,31 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +/ { + ipc { + ipc0: ipc0 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc0>; + mboxes = <&mu_m33s_m71_for_m71 0>, <&mu_m33s_m71_for_m71 1>; + mbox-names = "tx", "rx"; + role = "host"; + status = "okay"; + }; + + ipc1: ipc1 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc1>; + mboxes = <&mu_m33s_m71_for_m71 2>, <&mu_m33s_m71_for_m71 3>; + mbox-names = "tx", "rx"; + role = "host"; + zephyr,priority = <1 PRIO_COOP>; + zephyr,buffer-size = <128>; + status = "okay"; + }; + }; +}; diff --git a/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m33.overlay b/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..7e07ba78dd55d --- /dev/null +++ b/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,32 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + ipc { + ipc0: ipc0 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc0>; + mboxes = <&mu_m33s_m71_for_m33s 0>, <&mu_m33s_m71_for_m33s 1>; + mbox-names = "rx", "tx"; + role = "remote"; + status = "okay"; + }; + + ipc1: ipc1 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc1>; + mboxes = <&mu_m33s_m71_for_m33s 2>, <&mu_m33s_m71_for_m33s 3>; + mbox-names = "rx", "tx"; + role = "remote"; + zephyr,priority = <1 PRIO_COOP>; + zephyr,buffer-size = <128>; + status = "okay"; + }; + }; +}; diff --git a/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..bc5d08ea347ab --- /dev/null +++ b/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,33 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + ipc { + ipc0: ipc0 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m70_ipc0>; + mboxes = <&mu_m33s_m70_for_m70 0>, <&mu_m33s_m70_for_m70 1>; + mbox-names = "rx", "tx"; + role = "remote"; + zephyr,priority = <1 PRIO_COOP>; + status = "okay"; + }; + + ipc1: ipc1 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m70_ipc1>; + mboxes = <&mu_m33s_m70_for_m70 2>, <&mu_m33s_m70_for_m70 3>; + mbox-names = "rx", "tx"; + role = "remote"; + zephyr,priority = <1 PRIO_COOP>; + zephyr,buffer-size = <128>; + status = "okay"; + }; + }; +}; diff --git a/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..be96b523ca20b --- /dev/null +++ b/samples/subsys/ipc/ipc_service/static_vrings/remote/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,33 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + ipc { + ipc0: ipc0 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc0>; + mboxes = <&mu_m33s_m71_for_m71 0>, <&mu_m33s_m71_for_m71 1>; + mbox-names = "rx", "tx"; + role = "remote"; + zephyr,priority = <1 PRIO_COOP>; + status = "okay"; + }; + + ipc1: ipc1 { + compatible = "zephyr,ipc-openamp-static-vrings"; + memory-region = <&dram_m33s_m71_ipc1>; + mboxes = <&mu_m33s_m71_for_m71 2>, <&mu_m33s_m71_for_m71 3>; + mbox-names = "rx", "tx"; + role = "remote"; + zephyr,priority = <1 PRIO_COOP>; + zephyr,buffer-size = <128>; + status = "okay"; + }; + }; +}; diff --git a/samples/subsys/ipc/ipc_service/static_vrings/remote/src/main.c b/samples/subsys/ipc/ipc_service/static_vrings/remote/src/main.c index 80fbdf5fcbd06..364d61dd4945f 100644 --- a/samples/subsys/ipc/ipc_service/static_vrings/remote/src/main.c +++ b/samples/subsys/ipc/ipc_service/static_vrings/remote/src/main.c @@ -75,7 +75,7 @@ static void ipc0A_entry(void *dummy0, void *dummy1, void *dummy2) ret = ipc_service_register_endpoint(ipc0_instance, &ipc0A_ept, &ipc0A_ept_cfg); if (ret < 0) { - printf("ipc_service_register_endpoint() failure\n"); + printf("ipc_service_register_endpoint() failure ret: %d\n", ret); return; } @@ -154,7 +154,7 @@ static void ipc0B_entry(void *dummy0, void *dummy1, void *dummy2) ret = ipc_service_register_endpoint(ipc0_instance, &ipc0B_ept, &ipc0B_ept_cfg); if (ret < 0) { - printf("ipc_service_register_endpoint() failure\n"); + printf("ipc_service_register_endpoint() failure ret: %d\n", ret); return; } @@ -241,7 +241,7 @@ static void ipc1_entry(void *dummy0, void *dummy1, void *dummy2) ret = ipc_service_register_endpoint(ipc1_instance, &ipc1_ept, &ipc1_ept_cfg); if (ret < 0) { - printf("ipc_service_register_endpoint() failure\n"); + printf("ipc_service_register_endpoint() failure ret: %d\n", ret); return; } diff --git a/samples/subsys/ipc/openamp/Kconfig.sysbuild b/samples/subsys/ipc/openamp/Kconfig.sysbuild index 2dac369190087..996eb2a46d3ba 100644 --- a/samples/subsys/ipc/openamp/Kconfig.sysbuild +++ b/samples/subsys/ipc/openamp/Kconfig.sysbuild @@ -23,3 +23,6 @@ string default "esp_wrover_kit/esp32/appcpu" if $(BOARD) = "esp_wrover_kit" default "esp32_ethernet_kit/esp32/appcpu" if $(BOARD) = "esp32_ethernet_kit" default "ek_ra8p1/r7ka8p1kflcac/cm33" if $(BOARD) = "ek_ra8p1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_1" + default "imx943_evk/mimx94398/m33" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m7_0" + default "imx943_evk/mimx94398/m7_1" if "$(BOARD)$(BOARD_QUALIFIERS)" = "imx943_evk/mimx94398/m33" diff --git a/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m33.overlay b/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..caef7c0d448c7 --- /dev/null +++ b/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,20 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + + zephyr,ipc_shm = &dram_m33s_m71_sh_mem; + zephyr,ipc = &mailbox_m33s_m71_for_m33s_as_master; + }; + +}; diff --git a/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..0f5e7a70ffeb0 --- /dev/null +++ b/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,19 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + + zephyr,ipc_shm = &dram_m33s_m70_sh_mem; + zephyr,ipc = &mailbox_m33s_m70_for_m70_as_master; + }; +}; diff --git a/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..17da601a39c69 --- /dev/null +++ b/samples/subsys/ipc/openamp/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,19 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + + zephyr,ipc_shm = &dram_m33s_m71_sh_mem; + zephyr,ipc = &mailbox_m33s_m71_for_m71_as_master; + }; +}; diff --git a/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m33.overlay b/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m33.overlay new file mode 100644 index 0000000000000..99e7bf277aca6 --- /dev/null +++ b/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m33.overlay @@ -0,0 +1,19 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + + zephyr,ipc_shm = &dram_m33s_m71_sh_mem; + zephyr,ipc = &mailbox_m33s_m71_for_m33s_as_remote; + }; +}; diff --git a/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m7_0.overlay b/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m7_0.overlay new file mode 100644 index 0000000000000..3f3b77f68da01 --- /dev/null +++ b/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m7_0.overlay @@ -0,0 +1,19 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + + zephyr,ipc_shm = &dram_m33s_m70_sh_mem; + zephyr,ipc = &mailbox_m33s_m70_for_m70_as_remote; + }; +}; diff --git a/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m7_1.overlay b/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m7_1.overlay new file mode 100644 index 0000000000000..e38f6a259c20d --- /dev/null +++ b/samples/subsys/ipc/openamp/remote/boards/imx943_evk_mimx94398_m7_1.overlay @@ -0,0 +1,19 @@ +/* + * Copyright 2025 NXP + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +/ { + chosen { + /* + * shared memory reserved for the inter-processor communication + */ + + zephyr,ipc_shm = &dram_m33s_m71_sh_mem; + zephyr,ipc = &mailbox_m33s_m71_for_m71_as_remote; + }; +};