
Hi Alice,
On Wed, Oct 16, 2024 at 4:19 AM Alice Guo alice.guo@oss.nxp.com wrote:
From: Ye Li ye.li@nxp.com
This patch adds i.MX95 19x19 EVK board basic support.
Signed-off-by: Ye Li ye.li@nxp.com Signed-off-by: Alice Guo alice.guo@nxp.com Reviewed-by: Peng Fan peng.fan@nxp.com
A MAINTAINERS file is missing. CI flags this as an error.
Please make sure to run the series through CI before posting v2.
A general question: how is the flash.bin generated?
I don't see binman support here. Why?
We also need a doc/board/nxp/imx95_evk.rts file that explains how to build and boot the board, the firmware files it needs, etc.
+++ b/board/freescale/imx95_evk/imx95_evk.c @@ -0,0 +1,75 @@ +// SPDX-License-Identifier: GPL-2.0+ +/*
- Copyright 2023 NXP
- */
+#include <env.h> +#include <init.h> +#include <asm/global_data.h> +#include <asm/arch-imx9/ccm_regs.h> +#include <asm/arch/clock.h> +#include <fdt_support.h> +#include <usb.h> +#include <dwc3-uboot.h>
Why do you add USB headers if there is no USB support?
+#ifdef CONFIG_SCMI_FIRMWARE
Remove the ifdef and include the headers unconditionally.
+DECLARE_GLOBAL_DATA_PTR;
+int board_early_init_f(void) +{
/* UART1: A55, UART2: M33, UART3: M7 */
init_uart_clk(0);
Shouldn't DM_SERIAL enable the UART clock?
+#if CONFIG_IS_ENABLED(NET) +int board_phy_config(struct phy_device *phydev) +{
if (phydev->drv->config)
phydev->drv->config(phydev);
return 0;
Is this needed?
+#ifdef CONFIG_OF_BOARD_SETUP +int ft_board_setup(void *blob, struct bd_info *bd) +{
return 0;
This function is not useful and can be removed.
+extern int imx9_probe_mu(void);
No extern in C files, please.
printf("SOC: 0x%x\n", gd->arch.soc_rev);
printf("LC: 0x%x\n", gd->arch.lifecycle);
Make this debug() instead.
+CONFIG_SPL_POWER=y +CONFIG_SDP_LOADADDR=0x90400000
No blank lines in defconfig, please.
Generate the defconfig via 'make savedefconfig'
+/* Initial environment variables */ +#define CFG_EXTRA_ENV_SETTINGS \
BOOTENV \
AHAB_ENV \
"initrd_addr=0x93800000\0" \
"initrd_high=0xffffffffffffffff\0" \
"emmc_dev=0\0"\
"sd_dev=1\0" \
"prepare_mcore=setenv mcore_clk clk-imx95.mcore_booted;\0" \
"scriptaddr=0x93500000\0" \
"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"image=Image\0" \
"splashimage=0xA0000000\0" \
"console=ttyLP0,115200 earlycon\0" \
"fdt_addr_r=0x93000000\0" \
"fdt_addr=0x93000000\0" \
"fdt_high=0xffffffffffffffff\0" \
"cntr_addr=0xA8000000\0" \
"cntr_file=os_cntr_signed.bin\0" \
"boot_fit=no\0" \
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
"bootm_size=0x10000000\0" \
"mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \
"mmcpart=1\0" \
"mmcroot=/dev/mmcblk1p2 rootwait rw\0" \
"mmcautodetect=yes\0" \
"mmcargs=setenv bootargs ${mcore_clk} console=${console} root=${mmcroot}\0 " \
"loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
"bootscript=echo Running bootscript from mmc ...; " \
"source\0" \
"loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
"loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}\0" \
"loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file}\0" \
"auth_os=auth_cntr ${cntr_addr}\0" \
"boot_os=booti ${loadaddr} - ${fdt_addr_r};\0" \
"mmcboot=echo Booting from mmc ...; " \
"run mmcargs; " \
"if test ${sec_boot} = yes; then " \
"if run auth_os; then " \
"run boot_os; " \
"else " \
"echo ERR: failed to authenticate; " \
"fi; " \
"else " \
"if test ${boot_fit} = yes || test ${boot_fit} = try; then " \
"bootm ${loadaddr}; " \
"else " \
"if run loadfdt; then " \
"run boot_os; " \
"else " \
"echo WARN: Cannot load the DT; " \
"fi; " \
"fi;" \
"fi;\0" \
"netargs=setenv bootargs ${mcore_clk} console=${console} " \
"root=/dev/nfs " \
"ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
"netboot=echo Booting from net ...; " \
"run netargs; " \
"if test ${ip_dyn} = yes; then " \
"setenv get_cmd dhcp; " \
"else " \
"setenv get_cmd tftp; " \
"fi; " \
"if test ${sec_boot} = yes; then " \
"${get_cmd} ${cntr_addr} ${cntr_file}; " \
"if run auth_os; then " \
"run boot_os; " \
"else " \
"echo ERR: failed to authenticate; " \
"fi; " \
"else " \
"${get_cmd} ${loadaddr} ${image}; " \
"if test ${boot_fit} = yes || test ${boot_fit} = try; then " \
"bootm ${loadaddr}; " \
"else " \
"if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then " \
"run boot_os; " \
"else " \
"echo WARN: Cannot load the DT; " \
"fi; " \
"fi;" \
"fi;\0" \
"bsp_bootcmd=echo Running BSP bootcmd ...; " \
"mmc dev ${mmcdev}; if mmc rescan; then " \
"if run loadbootscript; then " \
"run bootscript; " \
"else " \
"if test ${sec_boot} = yes; then " \
"if run loadcntr; then " \
"run mmcboot; " \
"else run netboot; " \
"fi; " \
"else " \
"if run loadimage; then " \
"run mmcboot; " \
"else run netboot; " \
"fi; " \
"fi; " \
"fi; " \
"fi;"
Move this to board/freescale/imx95_evk/imx95_evk.env