[PATCH] imx93_frdm: Add initial board support

Fabio Estevam festevam at gmail.com
Thu Jul 24 04:26:45 CEST 2025


Hi Peng,

On Wed, Jul 23, 2025 at 11:19 PM Peng Fan <peng.fan at oss.nxp.com> wrote:
>
> Hi Fabio,
>
> Thanks for working on i.MX93 FRDM upstream.
>
> On Tue, Jul 22, 2025 at 05:37:36PM -0300, Fabio Estevam wrote:
> >Add the initial board support for the NXP i.MX93 FRDM board:
> >
> >https://www.nxp.com/design/design-center/development-boards-and-designs/frdm-i-mx-93-development-board:FRDM-IMX93
> >
> >Based on the NXP U-Boot code.
> >
> >There were attempts to upstream the board devicetree, but it has not been
> >accepted upstream yet:
> >
> >https://lore.kernel.org/linux-arm-kernel/20250526-fpg-nxp-imx93-frdm-v2-2-e5ad0efaec33@pengutronix.de/
> >
> >Once it reaches upstream, we can switch to OF_UPSTREAM.
> >
> >Signed-off-by: Fabio Estevam <festevam at gmail.com>
> >---
> > arch/arm/dts/Makefile                         |    1 +
> > arch/arm/dts/imx93-11x11-frdm-u-boot.dtsi     |  212 ++
> > arch/arm/dts/imx93-11x11-frdm.dts             |  603 +++++
> > arch/arm/include/asm/arch-imx9/ddr.h          |    1 +
> > arch/arm/mach-imx/imx9/Kconfig                |    9 +
> > board/freescale/imx93_frdm/Kconfig            |   12 +
> > board/freescale/imx93_frdm/MAINTAINERS        |    6 +
> > board/freescale/imx93_frdm/Makefile           |   11 +
> > board/freescale/imx93_frdm/imx93_frdm.c       |   59 +
> > board/freescale/imx93_frdm/imx93_frdm.env     |   31 +
> > board/freescale/imx93_frdm/lpddr4_timing.h    |   13 +
> > .../freescale/imx93_frdm/lpddr4x_1gb_timing.c | 1996 +++++++++++++++++
> > .../freescale/imx93_frdm/lpddr4x_2gb_timing.c | 1995 ++++++++++++++++
> > board/freescale/imx93_frdm/spl.c              |  207 ++
> > configs/imx93_frdm_defconfig                  |  124 +
> > doc/board/nxp/imx93_frdm.rst                  |   75 +
> > doc/board/nxp/index.rst                       |    1 +
> > include/configs/imx93_frdm.h                  |   32 +
> > 18 files changed, 5388 insertions(+)
> > create mode 100644 arch/arm/dts/imx93-11x11-frdm-u-boot.dtsi
> > create mode 100644 arch/arm/dts/imx93-11x11-frdm.dts
> > create mode 100644 board/freescale/imx93_frdm/Kconfig
> > create mode 100644 board/freescale/imx93_frdm/MAINTAINERS
> > create mode 100644 board/freescale/imx93_frdm/Makefile
> > create mode 100644 board/freescale/imx93_frdm/imx93_frdm.c
> > create mode 100644 board/freescale/imx93_frdm/imx93_frdm.env
> > create mode 100644 board/freescale/imx93_frdm/lpddr4_timing.h
> > create mode 100644 board/freescale/imx93_frdm/lpddr4x_1gb_timing.c
> > create mode 100644 board/freescale/imx93_frdm/lpddr4x_2gb_timing.c
> > create mode 100644 board/freescale/imx93_frdm/spl.c
> > create mode 100644 configs/imx93_frdm_defconfig
> > create mode 100644 doc/board/nxp/imx93_frdm.rst
> > create mode 100644 include/configs/imx93_frdm.h
> >
> >diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
> >index 17795f8f746d..09e3edc4f8b1 100644
> >--- a/arch/arm/dts/Makefile
> >+++ b/arch/arm/dts/Makefile
> >@@ -918,6 +918,7 @@ dtb-$(CONFIG_ARCH_IMX8M) += \
> >       imx8mq-librem5-r4.dtb
> >
> > dtb-$(CONFIG_ARCH_IMX9) += \
> >+      imx93-11x11-frdm.dtb \
> >       imx93-var-som-symphony.dtb
> >
> > dtb-$(CONFIG_ARCH_IMXRT) += imxrt1020-evk.dtb \
> >diff --git a/arch/arm/dts/imx93-11x11-frdm-u-boot.dtsi b/arch/arm/dts/imx93-11x11-frdm-u-boot.dtsi
> >new file mode 100644
> >index 000000000000..558a43470e81
> >--- /dev/null
> >+++ b/arch/arm/dts/imx93-11x11-frdm-u-boot.dtsi
> >@@ -0,0 +1,212 @@
> >+// SPDX-License-Identifier: GPL-2.0+
> >+/*
> >+ * Copyright 2024 NXP
>
> 2025.
>
> >+ */
> >+
> >+#include "imx93-u-boot.dtsi"
> >+
> >+/ {
> >+      wdt-reboot {
> >+              compatible = "wdt-reboot";
> >+              wdt = <&wdog3>;
> >+              bootph-pre-ram;
> >+              bootph-some-ram;
> >+      };
> >+
> >+      aliases {
> >+              usbgadget0 = &usbg1;
> >+              usbgadget1 = &usbg2;
> >+      };
> >+
> >+      usbg1: usbg1 {
> >+              compatible = "fsl,imx27-usb-gadget";
> >+              dr_mode = "peripheral";
> >+              chipidea,usb = <&usbotg1>;
> >+              status = "okay";
> >+      };
> >+
> >+      usbg2: usbg2 {
> >+              compatible = "fsl,imx27-usb-gadget";
> >+              dr_mode = "peripheral";
> >+              chipidea,usb = <&usbotg2>;
> >+              status = "okay";
> >+      };
>
> This fsl,imx27-usb-gadget is only in NXP downstream, needs drop here.

Yes,  I have removed it in v2.

> >--- /dev/null
> >+++ b/board/freescale/imx93_frdm/lpddr4_timing.h
> >@@ -0,0 +1,13 @@
> >+/* SPDX-License-Identifier: GPL-2.0+ */
> >+/*
> >+ * Copyright 2022 Marek Vasut <marex at denx.de>
>
> Wrong Copyright.

The NXP code declares the externs inside the C file, which is not a
good practice.

I used the approach done by Marek on another board, so I kept his Copyright.

> Align macros.
>
> Seems some use blank space, some use tab

This is also fixed in v2.

I will address your 2025 Copyright changes and submit a v3.

Thanks


More information about the U-Boot mailing list