From: Joseph Guo <[email protected]>

Add boot support and peripherals like eMMC/SD, UART, I2C, GPIO, ENETC0/1
and PCIE0/1 for iMX95 19x19 FRDM PRO board.
Updated imx95_frdm doc to include build instruction for FRDM-IMX95-PRO.

Signed-off-by: Joseph Guo <[email protected]>
---
Note: boot phase properties upstream have been sent [1]. These properties
can be removed in imx95-19x19-frdm-pro-uboot.dtsi after upstream changed.

[1] https://lore.kernel.org/all/[email protected]/
---
 arch/arm/dts/imx95-19x19-frdm-pro-u-boot.dtsi |  65 +++++++++++
 arch/arm/mach-imx/imx9/Kconfig                |   8 ++
 board/nxp/imx95_frdm/Kconfig                  |   2 +-
 board/nxp/imx95_frdm/MAINTAINERS              |   1 +
 configs/imx95_19x19_frdm_pro_defconfig        | 153 ++++++++++++++++++++++++++
 doc/board/nxp/imx95_frdm.rst                  |  29 ++++-
 include/configs/imx95_frdm.h                  |   4 +
 7 files changed, 260 insertions(+), 2 deletions(-)

diff --git a/arch/arm/dts/imx95-19x19-frdm-pro-u-boot.dtsi 
b/arch/arm/dts/imx95-19x19-frdm-pro-u-boot.dtsi
new file mode 100644
index 
0000000000000000000000000000000000000000..f1fcd3630102e002a715af2d2798d75726041b96
--- /dev/null
+++ b/arch/arm/dts/imx95-19x19-frdm-pro-u-boot.dtsi
@@ -0,0 +1,65 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2026 NXP
+ */
+
+#include "imx95-u-boot.dtsi"
+
+/ {
+       aliases {
+               pci0 = &netc_bus0;
+               pci1 = &netc_bus1;
+       };
+};
+
+&lpuart1 {
+       bootph-pre-ram;
+};
+
+&reg_usdhc2_vmmc {
+       bootph-pre-ram;
+};
+
+&usdhc1 {
+       bootph-pre-ram;
+};
+
+&usdhc2 {
+       bootph-pre-ram;
+};
+
+&pinctrl_uart1 {
+       bootph-pre-ram;
+};
+
+&pinctrl_usdhc1 {
+       bootph-pre-ram;
+};
+
+&pinctrl_usdhc1_100mhz {
+       bootph-pre-ram;
+};
+
+&pinctrl_usdhc1_200mhz {
+       bootph-pre-ram;
+};
+
+&pinctrl_usdhc2 {
+       bootph-pre-ram;
+};
+
+&pinctrl_usdhc2_100mhz {
+       bootph-pre-ram;
+};
+
+&pinctrl_usdhc2_200mhz {
+       bootph-pre-ram;
+};
+
+&pinctrl_usdhc2_gpio {
+       bootph-pre-ram;
+};
+
+&pinctrl_reg_usdhc2_vmmc {
+       bootph-pre-ram;
+};
diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig
index 
d66d4193906f8bf4b84494f1e64428efda3acd75..1630695e1cd27293eac18a605dc736230e78e329
 100644
--- a/arch/arm/mach-imx/imx9/Kconfig
+++ b/arch/arm/mach-imx/imx9/Kconfig
@@ -192,6 +192,14 @@ config TARGET_IMX95_15X15_FRDM
        imply BOOTSTD_BOOTCOMMAND
        imply OF_UPSTREAM
 
+config TARGET_IMX95_19X19_FRDM_PRO
+       bool "imx95_19x19_frdm_pro"
+       select OF_BOARD_FIXUP
+       select IMX95
+       imply BOOTSTD_FULL
+       imply BOOTSTD_BOOTCOMMAND
+       imply OF_UPSTREAM
+
 config TARGET_IMX943_EVK
        bool "imx943_evk"
        select OF_BOARD_FIXUP
diff --git a/board/nxp/imx95_frdm/Kconfig b/board/nxp/imx95_frdm/Kconfig
index 
0da9a56adadec661792c38b1258e4eb914af5aa5..c0d85f421fd83710826bafa0b249346ede821f80
 100644
--- a/board/nxp/imx95_frdm/Kconfig
+++ b/board/nxp/imx95_frdm/Kconfig
@@ -1,4 +1,4 @@
-if TARGET_IMX95_15X15_FRDM
+if TARGET_IMX95_15X15_FRDM || TARGET_IMX95_19X19_FRDM_PRO
 
 config SYS_BOARD
        default "imx95_frdm"
diff --git a/board/nxp/imx95_frdm/MAINTAINERS b/board/nxp/imx95_frdm/MAINTAINERS
index 
33870f054e7452ed3af36f19236163d451c93665..01a200169e9e4ff5e8f6296e0a0631c06868f3a1
 100644
--- a/board/nxp/imx95_frdm/MAINTAINERS
+++ b/board/nxp/imx95_frdm/MAINTAINERS
@@ -4,3 +4,4 @@ S:      Maintained
 F:     board/nxp/imx95_frdm/
 F:     include/configs/imx95_frdm.h
 F:     configs/imx95_15x15_frdm_defconfig
+F:      configs/imx95_19x19_frdm_pro_defconfig
diff --git a/configs/imx95_19x19_frdm_pro_defconfig 
b/configs/imx95_19x19_frdm_pro_defconfig
new file mode 100644
index 
0000000000000000000000000000000000000000..14ff08d5d34ae92e463345a39bb5d2831fb1824b
--- /dev/null
+++ b/configs/imx95_19x19_frdm_pro_defconfig
@@ -0,0 +1,153 @@
+CONFIG_ARM=y
+CONFIG_ARCH_IMX9=y
+CONFIG_TEXT_BASE=0x90200000
+CONFIG_SYS_MALLOC_LEN=0x2000000
+CONFIG_SYS_MALLOC_F_LEN=0x10000
+CONFIG_SPL_GPIO=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=3
+CONFIG_ENV_SOURCE_FILE="imx95_frdm"
+CONFIG_SF_DEFAULT_SPEED=40000000
+CONFIG_ENV_SIZE=0x4000
+CONFIG_ENV_OFFSET=0x700000
+CONFIG_DM_GPIO=y
+CONFIG_DEFAULT_DEVICE_TREE="freescale/imx95-19x19-frdm-pro"
+CONFIG_TARGET_IMX95_19X19_FRDM_PRO=y
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_SYS_MONITOR_LEN=524288
+CONFIG_SPL_MMC=y
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_DRIVERS_MISC=y
+CONFIG_SPL_TEXT_BASE=0x20480000
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x204d6000
+CONFIG_SPL_BSS_MAX_SIZE=0x2000
+CONFIG_SYS_LOAD_ADDR=0x90400000
+CONFIG_SPL=y
+CONFIG_SPL_RECOVER_DATA_SECTION=y
+CONFIG_PCI=y
+CONFIG_SYS_MEMTEST_START=0x90000000
+CONFIG_SYS_MEMTEST_END=0xA0000000
+CONFIG_REMAKE_ELF=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_OF_SYSTEM_SETUP=y
+CONFIG_BOOTCOMMAND="bootflow scan -l; run bsp_bootcmd"
+CONFIG_DEFAULT_FDT_FILE="imx95-19x19-frdm-pro.dtb"
+CONFIG_SYS_CBSIZE=2048
+CONFIG_SYS_PBSIZE=2074
+# CONFIG_BOARD_INIT is not set
+CONFIG_BOARD_LATE_INIT=y
+CONFIG_PCI_INIT_R=y
+CONFIG_SPL_MAX_SIZE=0x20000
+CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_LOAD_IMX_CONTAINER=y
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_SYS_MALLOC=y
+CONFIG_SPL_HAS_CUSTOM_MALLOC_START=y
+CONFIG_SPL_CUSTOM_SYS_MALLOC_ADDR=0x93200000
+CONFIG_SPL_SYS_MALLOC_SIZE=0x80000
+CONFIG_SPL_SYS_MMCSD_RAW_MODE=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1040
+CONFIG_SPL_I2C=y
+CONFIG_SPL_DM_MAILBOX=y
+CONFIG_SPL_POWER=y
+CONFIG_SPL_WATCHDOG=y
+CONFIG_SYS_PROMPT="u-boot=> "
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_NVEDIT_EFI=y
+CONFIG_CRC32_VERIFY=y
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_CLK=y
+CONFIG_CMD_DFU=y
+CONFIG_CMD_FUSE=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_POWEROFF=y
+CONFIG_CMD_REMOTEPROC=y
+CONFIG_CMD_SNTP=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_EFIDEBUG=y
+CONFIG_CMD_RTC=y
+CONFIG_CMD_TIME=y
+CONFIG_CMD_GETTIME=y
+CONFIG_CMD_TIMER=y
+CONFIG_CMD_REGULATOR=y
+CONFIG_CMD_HASH=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_OF_CONTROL=y
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_IS_NOWHERE=y
+CONFIG_ENV_IS_IN_MMC=y
+CONFIG_ENV_RELOC_GD_ENV_ADDR=y
+CONFIG_ENV_MMC_DEVICE_INDEX=1
+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
+CONFIG_USE_ETHPRIME=y
+CONFIG_ETHPRIME="eth0"
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_SYS_RX_ETH_BUFFER=8
+CONFIG_SPL_DM=y
+CONFIG_SYSCON=y
+CONFIG_SPL_OF_TRANSLATE=y
+CONFIG_CLK=y
+CONFIG_SPL_CLK=y
+CONFIG_SPL_CLK_CCF=y
+CONFIG_CLK_CCF=y
+CONFIG_CLK_SCMI=y
+CONFIG_SPL_CLK_SCMI=y
+CONFIG_DFU_MMC=y
+CONFIG_DFU_RAM=y
+CONFIG_SPL_FIRMWARE=y
+# CONFIG_SCMI_AGENT_SMCCC is not set
+CONFIG_IMX_SM_CPU=y
+CONFIG_IMX_SM_LMM=y
+CONFIG_IMX_RGPIO2P=y
+CONFIG_DM_PCA953X=y
+CONFIG_ADP5585_GPIO=y
+CONFIG_DM_I2C=y
+CONFIG_SYS_I2C_IMX_LPI2C=y
+CONFIG_IMX_MU_MBOX=y
+CONFIG_SUPPORT_EMMC_BOOT=y
+CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_MMC_UHS_SUPPORT=y
+CONFIG_MMC_HS400_ES_SUPPORT=y
+CONFIG_MMC_HS400_SUPPORT=y
+CONFIG_FSL_USDHC=y
+CONFIG_MTD=y
+CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPI_FLASH_WINBOND=y
+CONFIG_PHYLIB=y
+CONFIG_PHY_AQUANTIA=y
+CONFIG_PHY_MOTORCOMM=y
+CONFIG_DM_MDIO=y
+CONFIG_MII=y
+CONFIG_FSL_ENETC=y
+CONFIG_PCIE_ECAM_GENERIC=y
+CONFIG_PHY=y
+CONFIG_PINCTRL=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_PINCTRL_IMX_SCMI=y
+CONFIG_POWER_DOMAIN=y
+CONFIG_SCMI_POWER_DOMAIN=y
+CONFIG_DM_REGULATOR=y
+CONFIG_SPL_DM_REGULATOR=y
+CONFIG_DM_REGULATOR_FIXED=y
+CONFIG_SPL_DM_REGULATOR_FIXED=y
+CONFIG_DM_REGULATOR_GPIO=y
+CONFIG_REMOTEPROC_IMX=y
+CONFIG_DM_RTC=y
+CONFIG_DM_SERIAL=y
+CONFIG_FSL_LPUART=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_NXP_FSPI=y
+CONFIG_ULP_WATCHDOG=y
+CONFIG_LZO=y
+CONFIG_BZIP2=y
+CONFIG_WDT=y
diff --git a/doc/board/nxp/imx95_frdm.rst b/doc/board/nxp/imx95_frdm.rst
index 
85ef9022e76fc0d8f2a5524128309939f22f4715..a0a5422bf8a7ba574f38dc19898f19f4dc4a6f8a
 100644
--- a/doc/board/nxp/imx95_frdm.rst
+++ b/doc/board/nxp/imx95_frdm.rst
@@ -3,7 +3,7 @@
 imx95_frdm
 =======================
 
-U-Boot for the NXP i.MX95 15x15 FRDM board
+U-Boot for the NXP i.MX95 15x15 FRDM board & i.MX95 19x19 FRDM PRO board
 
 Quick Start
 -----------
@@ -73,6 +73,13 @@ i.MX95 B0 silicon version on 15x15 LPDDR4X FRDM Board
    $ make board=mx95lp4x-15 oei=ddr DEBUG=1 r=B0 all
    $ cp build/mx95lp4x-15/ddr/oei-m33-ddr.bin $(srctree)
 
+i.MX95 B0 silicon version on 19x19 LPDDR5 FRDM PRO Board
+
+.. code-block:: bash
+
+   $ make board=mx95lp5-19 oei=ddr DEBUG=1 r=B0 all
+   $ cp build/mx95lp5-19/ddr/oei-m33-ddr.bin $(srctree)
+
 Get and Build System Manager Image
 --------------------------------------
 
@@ -88,9 +95,21 @@ branch: master
    $ export TOOLS=$PWD
    $ git clone -b master https://github.com/nxp-imx/imx-sm.git
    $ cd imx-sm
+
+i.MX95 B0 silicon version on 15x15 LPDDR4X FRDM Board
+
+.. code-block:: bash
+
    $ make config=mx95evk all
    $ cp build/mx95evk/m33_image.bin $(srctree)
 
+i.MX95 B0 silicon version on 19x19 LPDDR5 FRDM PRO Board
+
+.. code-block:: bash
+
+   $ make config=other/mx95frdm-pro all
+   $ cp build/other/mx95frdm-pro/m33_image.bin $(srctree)
+
 Get and Build the ARM Trusted Firmware
 --------------------------------------
 
@@ -119,6 +138,14 @@ i.MX95 B0 silicon version on 15x15 LPDDR4X FRDM Board
    $ make imx95_15x15_frdm_defconfig
    $ make
 
+i.MX95 B0 silicon version on 19x19 LPDDR5 FRDM PRO Board
+
+.. code-block:: bash
+
+   $ export CROSS_COMPILE=aarch64-poky-linux-
+   $ make imx95_19x19_frdm_pro_defconfig
+   $ make
+
 Copy imx-boot-imx95.bin to the MicroSD card:
 
 .. code-block:: bash
diff --git a/include/configs/imx95_frdm.h b/include/configs/imx95_frdm.h
index 
e64294a2bb15a025351b9bc9f2c8a0ee0a7e9224..78a28d7a5a137070c29ac25a0b219599866f6923
 100644
--- a/include/configs/imx95_frdm.h
+++ b/include/configs/imx95_frdm.h
@@ -18,7 +18,11 @@
 
 #define PHYS_SDRAM_SIZE                        0x70000000 /* 2GB - 256MB DDR */
 
+#ifdef CONFIG_TARGET_IMX95_19X19_FRDM_PRO
+#define PHYS_SDRAM_2_SIZE              0x380000000UL /* 14GB (Totally 16GB) */
+#else
 #define PHYS_SDRAM_2_SIZE              0x180000000 /* 6GB (Totally 8GB) */
+#endif
 
 #define CFG_SYS_SECURE_SDRAM_BASE   0x8A000000 /* Secure DDR region for A55 */
 #define CFG_SYS_SECURE_SDRAM_SIZE   0x04000000

-- 
2.34.1

Reply via email to