Hello Yannic, Am Freitag, dem 22.08.2025 um 14:21 +0200 schrieb Yannic Moog: > From: Benjamin Hahn <b.h...@phytec.de> > > Add new imx8mp-libra-fpsc board. > Bootph tags as well as USB device tree nodes are in u-boot.dtsi for > now > and will be removed when upstreamed. > The Libra i.MX 8M Plus FPSC is a single board computer. It uses an > i.MX > 8M Plus FPSC [1] System on Module which utilizes the FPSC standard > [2]. > > [1] > https://www.phytec.eu/en/produkte/system-on-modules/phycore-imx-8m-plus-fpsc > [2] https://www.phytec.eu/en/produkte/system-on-modules/fpsc > > Signed-off-by: Benjamin Hahn <b.h...@phytec.de> > Signed-off-by: Yannic Moog <y.m...@phytec.de>
please find two nits below. With them fixed: Reviewed-by: Teresa Remmet <t.rem...@phytec.de> Tested-by: Teresa Remmet <t.rem...@phytec.de> Thanks Benjamin and Yannic for working on this. > --- > Changes in v3: > - take over series from Benjamin > - add imply OF_UPSTREAM, remove from defconfig > - style fixes with regards to proper Product name > - add USB dt properties to u-boot.dtsi (until present in upstream) > - remove som_detection code from board code (still present in spl as > som > info is printed; in u-boot proper code, nothing is done) > - standard boot: > - add CONFIG_DEFAULT_FDT_FILE for fdtfile variable > - change addresses for standard boot variables; align with imx8mm > PHYTEC boards > - use u-boot.dtsi to define standard boot support > - Doc: > - add doc file to toctree > - remove optional from optee_os build instructions > - update imx-firmware version > - drop export commands, use single make command for instructions > - Link to v2: > https://lore.kernel.org/r/20250814-imx8mp-libra-initial-support-v2-1-9b91d437e...@phytec.de > > Changes in v2: > - Review comments from v1 (too many to list them all) > - removed the first two patches (devicetree is now in of_upstream) > - added the latest version of ram timings > - add optee support (libra is now in upstream optee) > - add CONFIG_CMD_MMC_REG command for mmc reg read command > - Link to v1: > https://lore.kernel.org/r/20250725-imx8mp-libra-initial-support-v1-0-d9982df21...@phytec.de > --- > arch/arm/dts/imx8mp-libra-rdk-fpsc-u-boot.dtsi | 131 ++ > arch/arm/mach-imx/imx8m/Kconfig | 10 + > board/phytec/imx8mp-libra-fpsc/Kconfig | 16 + > board/phytec/imx8mp-libra-fpsc/MAINTAINERS | 9 + > board/phytec/imx8mp-libra-fpsc/Makefile | 10 + > board/phytec/imx8mp-libra-fpsc/imx8mp-libra-fpsc.c | 89 + > .../phytec/imx8mp-libra-fpsc/imx8mp-libra-fpsc.env | 19 + > board/phytec/imx8mp-libra-fpsc/imximage-8mp-sd.cfg | 9 + > board/phytec/imx8mp-libra-fpsc/lpddr4_timing.c | 1814 > ++++++++++++++++++++ > board/phytec/imx8mp-libra-fpsc/spl.c | 132 ++ > configs/imx8mp-libra-fpsc_defconfig | 175 ++ > doc/board/phytec/imx8mp-libra-fpsc.rst | 84 + > doc/board/phytec/index.rst | 1 + > include/configs/imx8mp-libra-fpsc.h | 27 + > 14 files changed, 2526 insertions(+) > > [...] > diff --git a/board/phytec/imx8mp-libra-fpsc/lpddr4_timing.c > b/board/phytec/imx8mp-libra-fpsc/lpddr4_timing.c > new file mode 100644 > index > 0000000000000000000000000000000000000000..1206bc7ca31751816858131b30b > 0a75ce0131596 > --- /dev/null > +++ b/board/phytec/imx8mp-libra-fpsc/lpddr4_timing.c > @@ -0,0 +1,1814 @@ > +// SPDX-License-Identifier: BSD-3-Clause > +/* > + * Copyright 2025 NXP > + * > + * Code generated with DDR Tool v3.5.0_9-1ddf053d. > + * DDR PHY FW2020.06 > + */ > [...] > + > +/* ddr timing config params */ > +struct dram_timing_info dram_timing = { > + .ddrc_cfg = ddr_ddrc_cfg, > + .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), > + .ddrphy_cfg = ddr_ddrphy_cfg, > + .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), > + .fsp_msg = ddr_dram_fsp_msg, > + .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), > + .ddrphy_trained_csr = ddr_ddrphy_trained_csr, > + .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), > + .ddrphy_pie = ddr_phy_pie, > + .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), > + .fsp_table = { 4000, }, > +}; > + please remove the empty line at EOF. [...] > diff --git a/doc/board/phytec/imx8mp-libra-fpsc.rst > b/doc/board/phytec/imx8mp-libra-fpsc.rst > new file mode 100644 > index > 0000000000000000000000000000000000000000..fb65b8e92b117bc0bb3b41a3d02 > 705ffa3fceab0 > --- /dev/null > +++ b/doc/board/phytec/imx8mp-libra-fpsc.rst > @@ -0,0 +1,84 @@ > +.. SPDX-License-Identifier: GPL-2.0+ > + > +Libra i.MX 8M Plus FPSC > +======================= > + > +The Libra i.MX 8M Plus FPSC is a SBC based with the phyCORE-i.MX 8M > Plus FPSC > +SoM. > +The phyCORE-i.MX 8M Plus FPSC with 2GB of main memory is supported. > + > +Quick Start > +----------- > + > +- Build the ARM Trusted firmware binary > +- Build the OP-TEE binary > +- Get ddr firmware > +- Build U-Boot > +- Boot > + > +Build the ARM Trusted firmware binary > +------------------------------------- > + > +.. code-block:: bash > + > + $ git clone > https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git > + $ cd trusted-firmware-a > + $ make -j $(nproc) \ > + CROSS_COMPILE=aarch64-linux-gnu- \ > + PLAT=imx8mp \ > + IMX_BOOT_UART_BASE=0x30a60000 \ > + BL32_BASE=0x7e000000 \ > + SPD=opteed \ > + bl31 > + > +Build the OP-TEE binary > +----------------------- > + > +.. code-block:: bash > + > + $ git clone https://github.com/OP-TEE/optee_os.git > + $ cd optee_os > + $ make -j $(nproc) \ > + CROSS_COMPILE=aarch64-linux-gnu- \ > + CFG_TEE_BENCHMARK=n \ > + O=out/arm \ > + PLATFORM=imx-mx8mp_libra_fpsc > + > +Get the ddr firmware > +-------------------- > + > +.. code-block:: bash > + > + $ wget > https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.28-994fa14.bin > + $ chmod +x firmware-imx-8.28-994fa14.bin > + $ ./firmware-imx-8.28-994fa14.bin > + > +Build U-Boot for SD card > +------------------------ > + > +Copy binaries > +^^^^^^^^^^^^^ > + > +.. code-block:: bash > + > + $ cp <TF-A dir>/build/imx8mp/release/bl31.bin . > + $ cp <OP-TEE dir>/out/arm/core/tee-raw.bin tee.bin > + $ cp firmware-imx-8.28-994fa14/firmware/ddr/synopsys/lpddr4*.bin > . > + > +Build U-Boot > +^^^^^^^^^^^^ > + > +.. code-block:: bash > + > + $ make flash.bin looks like this should be removed. Teresa > + $ make -j $(nproc) \ > + CROSS_COMPILE=aarch64-linux-gnu- \ > + imx8mp-libra-fpsc_defconfig \ > + flash.bin > + > +Flash SD card > +^^^^^^^^^^^^^ > + > +.. code-block:: bash > + > + $ sudo dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32 conv=fsync > diff --git a/doc/board/phytec/index.rst b/doc/board/phytec/index.rst > index > 1ae30c2dcd58657f6ba2bd4eeb580447418b6f95..e24040a496e98b5b8c94ca03a5d > 6382fbab0ab0b 100644 > --- a/doc/board/phytec/index.rst > +++ b/doc/board/phytec/index.rst > @@ -6,6 +6,7 @@ PHYTEC > .. toctree:: > :maxdepth: 2 > > + imx8mp-libra-fpsc > imx8mm-phygate-tauri-l > imx93-phycore > phycore-am62x > diff --git a/include/configs/imx8mp-libra-fpsc.h > b/include/configs/imx8mp-libra-fpsc.h > new file mode 100644 > index > 0000000000000000000000000000000000000000..cde91dc364256bf7783b68e507e > 9f79f5f894cf9 > --- /dev/null > +++ b/include/configs/imx8mp-libra-fpsc.h > @@ -0,0 +1,27 @@ > +/* SPDX-License-Identifier: GPL-2.0-or-later > + * > + * Copyright (C) 2025 PHYTEC Messtechnik GmbH > + */ > + > +#ifndef __IMX8MP_LIBRA_FPSC_H > +#define __IMX8MP_LIBRA_FPSC_H > + > +#include <linux/sizes.h> > +#include <asm/arch/imx-regs.h> > + > +#define CFG_SYS_UBOOT_BASE \ > + (QSPI0_AMBA_BASE + > CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512) > + > +/* Link Definitions */ > + > +#define CFG_SYS_INIT_RAM_ADDR 0x40000000 > +#define CFG_SYS_INIT_RAM_SIZE SZ_512K > + > +#define CFG_SYS_SDRAM_BASE 0x40000000 > + > +#define PHYS_SDRAM 0x40000000 > +#define PHYS_SDRAM_SIZE (SZ_2G + SZ_1G) /* 3GB */ > +#define PHYS_SDRAM_2 0x100000000 > +#define PHYS_SDRAM_2_SIZE (SZ_4G + SZ_1G) /* 5GB */ > + > +#endif /* __IMX8MP_LIBRA_FPSC_H */ > > --- > base-commit: b6e2cfca1a6fd10c8f12016a40d690d2ec61796c > change-id: 20250821-imx8mp-libra-fpsc-4e42820ba0b1 > > Best regards, -- PHYTEC Messtechnik GmbH | Barcelona-Allee 1 | 55129 Mainz, Germany Geschäftsführer: Dipl.-Ing. Michael Mitezki, Dipl.-Ing. Bodo Huber, Dipl.-Ing. (FH) Markus Lickes | Handelsregister Mainz HRB 4656 | Finanzamt Mainz | St.Nr. 26/665/00608, DE 149059855