[PATCH 1/3] ARM: i.MX8MP: add imx8mp-frdm board
Sascha Hauer
s.hauer at pengutronix.de
Fri Jan 23 01:16:58 PST 2026
On Mon, Jan 19, 2026 at 04:24:37PM +0100, Marco Felsch wrote:
> Hi Fabian,
>
> please see below.
>
> On 26-01-19, Fabian Pfitzner wrote:
> > The FRDM-i.MX8MP is an NXP development platform based on the i.MX8M Plus
> > SoC, featuring a quad Cortex-A53, Cortex-M7 co-processor, 4GB LPDDR4,
> > 32GB eMMC, Wi-Fi 6/Bluetooth 5.4/802.15.4 tri-radio, Ethernet, HDMI/MIPI
> > display interfaces, camera connectors, and standard expansion headers.
> >
> > The DRAM timings were taken from [1].
> > Furthermore, the board code was mainly taken from the imx8mp-evk.
> >
> > [1] git at github.com:nxp-imx/uboot-imx.git branch lf_v2025.04
> >
> > Signed-off-by: Fabian Pfitzner <f.pfitzner at pengutronix.de>
> > ---
> > arch/arm/boards/Makefile | 1 +
> > arch/arm/boards/nxp-imx8mp-frdm/Makefile | 4 +
> > arch/arm/boards/nxp-imx8mp-frdm/board.c | 36 +
> > .../flash-header-imx8mp-frdm.imxcfg | 10 +
> > arch/arm/boards/nxp-imx8mp-frdm/lowlevel.c | 145 +++
> > arch/arm/boards/nxp-imx8mp-frdm/lpddr4-timing.c | 1119 ++++++++++++++++++++
> > arch/arm/configs/imx_v8_defconfig | 1 +
> > arch/arm/configs/multi_v8_defconfig | 1 +
> > arch/arm/mach-imx/Kconfig | 10 +
> > images/Makefile.imx | 2 +
> > 10 files changed, 1329 insertions(+)
> >
> > diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile
> > index f73285ede9d3ea0b7ea04f7a984fce0e796f9f73..71b26713f10ec4b617070015463c1e122ddc550a 100644
> > --- a/arch/arm/boards/Makefile
> > +++ b/arch/arm/boards/Makefile
> > @@ -73,6 +73,7 @@ obj-$(CONFIG_MACH_NXP_IMX8MQ_EVK) += nxp-imx8mq-evk/
> > obj-$(CONFIG_MACH_NXP_IMX8MM_EVK) += nxp-imx8mm-evk/
> > obj-$(CONFIG_MACH_NXP_IMX8MN_EVK) += nxp-imx8mn-evk/
> > obj-$(CONFIG_MACH_NXP_IMX8MP_EVK) += nxp-imx8mp-evk/
> > +obj-$(CONFIG_MACH_NXP_IMX8MP_FRDM) += nxp-imx8mp-frdm/
> > obj-$(CONFIG_MACH_NXP_IMX93_FRDM) += nxp-imx93-frdm/
> > obj-$(CONFIG_MACH_CONGATEC_QMX8P_SOM) += congatec-qmx8p/
> > obj-$(CONFIG_MACH_TQ_MBA8MPXL) += tqma8mpxl/
> > diff --git a/arch/arm/boards/nxp-imx8mp-frdm/Makefile b/arch/arm/boards/nxp-imx8mp-frdm/Makefile
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..35d8640087b1d6d12201d2bcb5aacc76b03f140e
> > --- /dev/null
> > +++ b/arch/arm/boards/nxp-imx8mp-frdm/Makefile
> > @@ -0,0 +1,4 @@
> > +# SPDX-License-Identifier: GPL-2.0-only
> > +
> > +obj-y += board.o
> > +lwl-y += lowlevel.o lpddr4-timing.o
> > diff --git a/arch/arm/boards/nxp-imx8mp-frdm/board.c b/arch/arm/boards/nxp-imx8mp-frdm/board.c
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..914d16e3b5c82d1e4b9dbe700af9061be079b2e2
> > --- /dev/null
> > +++ b/arch/arm/boards/nxp-imx8mp-frdm/board.c
> > @@ -0,0 +1,36 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Copyright (C) 2026 Fabian Pfitzner, Pengutronix
> > + */
> > +
> > +#include <asm/memory.h>
> > +#include <bootsource.h>
> > +#include <common.h>
> > +#include <deep-probe.h>
> > +#include <init.h>
> > +#include <linux/phy.h>
> > +#include <linux/sizes.h>
> > +#include <mach/imx/bbu.h>
> > +#include <mach/imx/iomux-mx8mp.h>
> > +#include <gpio.h>
> > +#include <envfs.h>
> > +
> > +static int nxp_imx8mp_frdm_probe(struct device *dev)
> > +{
> > + imx8m_bbu_internal_mmcboot_register_handler("eMMC", "/dev/mmc2", BBU_HANDLER_FLAG_DEFAULT);
>
> @Ahmad @Sascha
>
> Do we have a proper driver for the bbu? In that case we could drop the
> whole board.c :-)
No we don't have that yet. Would be nice to have, but requires some
thinking. I think this would require yet another barebox specific device
tree binding which is not a nice thing to have.
Sascha
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list