[PATCH v2 16/17] imx95_evk: add i.MX95 19x19 EVK board basic support
João Paulo Gonçalves
jpaulo.silvagoncalves at gmail.com
Tue Dec 24 14:33:21 CET 2024
On Fri, Dec 20, 2024 at 10:55:14AM +0800, Alice Guo wrote:
> From: Ye Li <ye.li at nxp.com>
>
> This patch adds i.MX95 19x19 EVK board basic support.
>
> Signed-off-by: Ye Li <ye.li at nxp.com>
> Signed-off-by: Alice Guo <alice.guo at nxp.com>
> Reviewed-by: Peng Fan <peng.fan at nxp.com>
> ---
> arch/arm/dts/imx95-19x19-evk-u-boot.dtsi | 224 ++++++++++++++++++++++++++
> arch/arm/mach-imx/imx9/Kconfig | 6 +
> arch/arm/mach-imx/imx9/scmi/container.cfg | 10 ++
> arch/arm/mach-imx/imx9/scmi/imximage.cfg | 15 ++
> arch/arm/mach-imx/imx9/scmi/soc.c | 1 +
> board/freescale/imx95_evk/Kconfig | 12 ++
> board/freescale/imx95_evk/MAINTAINERS | 6 +
> board/freescale/imx95_evk/Makefile | 11 ++
> board/freescale/imx95_evk/imx95_19x19_evk.env | 95 +++++++++++
> board/freescale/imx95_evk/imx95_evk.c | 54 +++++++
> board/freescale/imx95_evk/spl.c | 117 ++++++++++++++
> configs/imx95_19x19_evk_defconfig | 178 ++++++++++++++++++++
> doc/board/nxp/imx95_evk.rst | 109 +++++++++++++
> doc/board/nxp/index.rst | 1 +
> include/configs/imx95_evk.h | 36 +++++
> 15 files changed, 875 insertions(+)
>
> diff --git a/arch/arm/dts/imx95-19x19-evk-u-boot.dtsi b/arch/arm/dts/imx95-19x19-evk-u-boot.dtsi
> new file mode 100644
> index 0000000000000000000000000000000000000000..5c891518448d24204f5ca2a00957b47a0a24bd70
> --- /dev/null
> +++ b/arch/arm/dts/imx95-19x19-evk-u-boot.dtsi
> @@ -0,0 +1,224 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Copyright 2024 NXP
> + */
> +
> +#ifdef CONFIG_BINMAN
> +/ {
> + binman {
> + multiple-images;
> +
> + m33-oei-ddrfw {
> + filename = "m33-oei-ddrfw.bin";
> +
> + nxp-append-ddrfw {
> + oei_m33_ddr_image = "oei-m33-ddr.bin";
> + lpddr_imem = "lpddr5_imem_v202311.bin";
> + lpddr_dmem = "lpddr5_dmem_v202311.bin";
> + lpddr_imem_qb = "lpddr5_imem_qb_v202311.bin";
> + lpddr_dmem_qb = "lpddr5_dmem_qb_v202311.bin";
> + };
> + };
> +
> + spl {
> + filename = "spl.bin";
> +
> + mkimage {
> + args = "-n spl/u-boot-spl.cfgout -T imx8image";
> + };
> + };
> +
> + u-boot {
> + filename = "uboot.bin";
> +
> + mkimage {
> + args = "-n u-boot-container.cfgout -T imx8image";
> + };
> + };
> +
> + imx-boot {
> + filename = "imx-boot-imx95.bin";
> + pad-byte = <0x00>;
> +
> + blob-ext at 1 {
> + align = <0x400>;
> + align-size = <0x400>;
> + offset = <0x0>;
> + filename = "spl.bin";
> + };
> +
> + blob-ext at 2 {
> + filename = "uboot.bin";
> + };
> + };
> + };
> +};
> +#endif
> +
> +&{/soc} {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&aips1 {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&aips2 {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&aips3 {
> + bootph-pre-ram;
> +};
> +
> +&gpio1 {
> + reg = <0 0x47400000 0 0x1000>, <0 0x47400040 0 0x40>;
> +};
> +
> +&gpio2 {
> + reg = <0 0x43810000 0 0x1000>, <0 0x43810040 0 0x40>;
> + bootph-pre-ram;
> +};
> +
> +&gpio3 {
> + reg = <0 0x43820000 0 0x1000>, <0 0x43820040 0 0x40>;
> + bootph-pre-ram;
> +};
> +
> +&gpio4 {
> + reg = <0 0x43840000 0 0x1000>, <0 0x43840040 0 0x40>;
> + bootph-pre-ram;
> +};
> +
> +&gpio5 {
> + reg = <0 0x43850000 0 0x1000>, <0 0x43850040 0 0x40>;
> + bootph-pre-ram;
> +};
> +
> +&lpuart1 {
> + clocks = <&scmi_clk IMX95_CLK_LPUART1>, <&scmi_clk IMX95_CLK_LPUART1>;
> + clock-names = "ipg", "per";
> + bootph-pre-ram;
> +};
> +
> +&mu2 {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&osc_24m {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&clk_ext1 {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&sram0 {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&scmi_buf0 {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&scmi_buf1 {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&{/firmware} {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&{/firmware/scmi} {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&{/firmware/scmi/protocol at 11} {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&{/firmware/scmi/protocol at 13} {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&{/firmware/scmi/protocol at 14} {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&{/firmware/scmi/protocol at 19} {
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&pinctrl_uart1 {
> + bootph-pre-ram;
> +};
> +
> +&usdhc1 {
> + bootph-pre-ram;
> +};
> +
> +&pinctrl_usdhc1 {
> + bootph-pre-ram;
> +};
> +
> +&pinctrl_usdhc1_100mhz {
> + bootph-pre-ram;
> +};
> +
> +&pinctrl_usdhc1_200mhz {
> + bootph-pre-ram;
> +};
> +
> +&usdhc2 {
> + 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;
> +};
> +
> +®_usdhc2_vmmc {
> + bootph-pre-ram;
> +};
> +
> +&pinctrl_reg_usdhc2_vmmc {
> + bootph-pre-ram;
> +};
> +
> +&elemu3 {
> + compatible = "fsl,imx93-mu-s4";
> + status = "okay";
> + bootph-all;
> + bootph-pre-ram;
> +};
> +
> +&wdog3 {
> + status = "disabled";
> +};
Hi Alice,
Would it be possible to factor out the common parts of the U-Boot
SPL/Pre-relocation device tree into an imx95-u-boot.dtsi file, like
U-Boot already has for imx8mp/imx8mm? From what I understand, the binman
configuration and some DT nodes (e.g. soc, aips*, scmi*, elemu*,
gpio2-5) are required on all boards, as they are bus parent nodes or
needed by the SoC implementation.
In the downstream kernel, there are already other boards apart from the
EVK (e.g., Verdin-EVK), and we’re also working on a new SoM family
(Toradex SMARC iMX95). Having the common parts factored out would make
things more organized and easier to upstream.
Best regards,
João Paulo
More information about the U-Boot
mailing list