[PATCH] Add Phytec i.MX93 support
Yannic Moog
Y.Moog at phytec.de
Fri Jan 19 08:21:35 CET 2024
Hello Mathieu
As a heads-up: you need to rebase as am62 (doc) got applied by Tom.
On Wed, 2024-01-17 at 08:52 +0100, Mathieu Othacehe wrote:
> Add support for the Phytec i.MX93 Segin evaluation kit. The SoM consists
> of an NXP i.MX93 dual A55 CPU. The SoM is mounted on a Phytec Segin SBC.
>
> Signed-off-by: Mathieu Othacehe <othacehe at gnu.org>
> ---
> arch/arm/dts/Makefile | 3 +-
> arch/arm/dts/imx93-phycore-segin-u-boot.dtsi | 274 +++
> arch/arm/dts/imx93-phycore-segin.dts | 95 +
> arch/arm/dts/imx93-phycore-som.dtsi | 64 +
> arch/arm/mach-imx/imx9/Kconfig | 6 +
> board/phytec/common/mmc.c | 49 +
> board/phytec/imx93_phycore/Kconfig | 21 +
> board/phytec/imx93_phycore/MAINTAINERS | 10 +
> board/phytec/imx93_phycore/Makefile | 16 +
> board/phytec/imx93_phycore/imx93_phycore.c | 89 +
> board/phytec/imx93_phycore/imx93_phycore.env | 96 +
> .../phytec/imx93_phycore/lpddr4_timing_1GB.c | 1546 +++++++++++++++++
> board/phytec/imx93_phycore/spl.c | 181 ++
> configs/imx93_phycore_defconfig | 147 ++
> doc/board/phytec/imx93_phycore.rst | 68 +
> doc/board/phytec/index.rst | 1 +
> include/configs/imx93_phycore.h | 47 +
> 17 files changed, 2712 insertions(+), 1 deletion(-)
> create mode 100644 arch/arm/dts/imx93-phycore-segin-u-boot.dtsi
> create mode 100644 arch/arm/dts/imx93-phycore-segin.dts
> create mode 100644 arch/arm/dts/imx93-phycore-som.dtsi
> create mode 100644 board/phytec/common/mmc.c
> create mode 100644 board/phytec/imx93_phycore/Kconfig
> create mode 100644 board/phytec/imx93_phycore/MAINTAINERS
> create mode 100644 board/phytec/imx93_phycore/Makefile
> create mode 100644 board/phytec/imx93_phycore/imx93_phycore.c
> create mode 100644 board/phytec/imx93_phycore/imx93_phycore.env
> create mode 100644 board/phytec/imx93_phycore/lpddr4_timing_1GB.c
> create mode 100644 board/phytec/imx93_phycore/spl.c
> create mode 100644 configs/imx93_phycore_defconfig
> create mode 100644 doc/board/phytec/imx93_phycore.rst
> create mode 100644 include/configs/imx93_phycore.h
>
>
<snip>
>
> diff --git a/doc/board/phytec/imx93_phycore.rst b/doc/board/phytec/imx93_phycore.rst
> new file mode 100644
> index 00000000000..f9b87691cdc
> --- /dev/null
> +++ b/doc/board/phytec/imx93_phycore.rst
> @@ -0,0 +1,68 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +imx93_phytec
> +============
rename it to phyCORE-i.MX 93 please, as this is the official name. See
https://www.phytec.eu/en/produkte/system-on-modules/phycore-imx-91-93/
> +
> +U-Boot for the NXP i.MX93 Phytec SoM of a Segin board
Same here; Use official naming, please.
> +
> +Quick Start
> +-----------
> +
> +- Get and Build the ARM Trusted firmware
> +- Get the DDR firmware
> +- Get ahab-container.img
> +- Build U-Boot
> +- Boot
> +
> +Get and Build the ARM Trusted firmware
> +--------------------------------------
> +
> +Note: srctree is U-Boot source directory
> +Get ATF from: https://github.com/nxp-imx/imx-atf/
Is the trusted-firmware-a upstream version working? If so, please use that instead.
> +branch: lf_v2.8
> +
> +.. code-block:: bash
> +
> + $ unset LDFLAGS
> + $ make PLAT=imx93 bl31
> + $ cp build/imx93/release/bl31.bin $(srctree)
> +
> +Get the DDR firmware
> +--------------------
> +
> +.. code-block:: bash
> +
> + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.21.bin
> + $ chmod +x firmware-imx-8.21.bin
> + $ ./firmware-imx-8.21.bin
> + $ cp firmware-imx-8.21/firmware/ddr/synopsys/lpddr4*.bin $(srctree)
> +
> +Get ahab-container.img
> +---------------------------------------
> +
> +.. code-block:: bash
> +
> + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-sentinel-0.10.bin
> + $ chmod +x firmware-sentinel-0.10.bin
> + $ ./firmware-sentinel-0.10.bin
> + $ cp firmware-sentinel-0.10/mx93a0-ahab-container.img $(srctree)
> +
> +Build U-Boot
> +------------
> +
> +.. code-block:: bash
> +
> + $ export CROSS_COMPILE=aarch64-poky-linux-
Leave this as generic as possible please. ARM toolchain should be sufficient.
> + $ make imx93_phytec_defconfig
> + $ make
> +
> +Burn the flash.bin to MicroSD card offset 32KB:
> +
> +.. code-block:: bash
> +
> + $ dd if=flash.bin of=/dev/sd[x] bs=1024 seek=32 conv=notrunc
> +
> +Boot
> +----
> +
> +Set Boot switch to SD boot
Add info to what position(s) the boot switches must be set.
> diff --git a/doc/board/phytec/index.rst b/doc/board/phytec/index.rst
> index 9996bce9741..a740f0cbae4 100644
> --- a/doc/board/phytec/index.rst
> +++ b/doc/board/phytec/index.rst
> @@ -7,5 +7,6 @@ PHYTEC
> :maxdepth: 2
>
> imx8mm-phygate-tauri-l
> + imx93_phycore
> phycore-imx8mm
> phycore-imx8mp
> diff --git a/include/configs/imx93_phycore.h b/include/configs/imx93_phycore.h
> new file mode 100644
> index 00000000000..ee1322c9b52
> --- /dev/null
> +++ b/include/configs/imx93_phycore.h
> @@ -0,0 +1,47 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +/*
> + * Copyright 2022 NXP
> + * Copyright (C) 2023 PHYTEC Messtechnik GmbH
> + * Christoph Stoidner <c.stoidner at phytec.de>
> + */
> +
> +#ifndef __IMX93_PHYCORE_H
> +#define __IMX93_PHYCORE_H
> +
> +#include <linux/sizes.h>
> +#include <linux/stringify.h>
> +#include <asm/arch/imx-regs.h>
> +
> +#define CFG_SYS_UBOOT_BASE \
> + (QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512)
> +
> +#define BOOT_TARGET_DEVICES(func) \
> + func(MMC, mmc, 0) \
> + func(MMC, mmc, 1)
> +
> +#include <config_distro_bootcmd.h>
I don't see a specific reason to have this include separate?! Group it with the others, please.
Yannic
> +
> +/* Initial environment variables */
> +#define CFG_EXTRA_ENV_SETTINGS BOOTENV
> +
> +#define CFG_SYS_INIT_RAM_ADDR 0x80000000
> +#define CFG_SYS_INIT_RAM_SIZE 0x200000
> +
> +#define CFG_SYS_SDRAM_BASE 0x80000000
> +#define PHYS_SDRAM 0x80000000
> +#define PHYS_SDRAM_SIZE 0x80000000
> +
> +#define CFG_SYS_FSL_USDHC_NUM 2
> +
> +/* Using ULP WDOG for reset */
> +#define WDOG_BASE_ADDR WDG3_BASE_ADDR
> +
> +#if defined(CONFIG_CMD_NET)
> +#define PHY_ANEG_TIMEOUT 20000
> +#endif
> +
> +#ifdef CONFIG_IMX_MATTER_TRUSTY
> +#define NS_ARCH_ARM64 1
> +#endif
> +
> +#endif
More information about the U-Boot
mailing list