CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/24221

- Enable watchdog command on Capricorn board.
- Convert imx8m evk boards to BOOTSTD.
- Enable dynamic mmcdev setting on imx8m evk boards.
- Fix i.MX FDT cooling-device property corruption.
- Add OP-TEE support on Phycore i.MX8M boards.
This commit is contained in:
Tom Rini
2025-01-16 09:59:54 -06:00
45 changed files with 573 additions and 374 deletions

View File

@@ -164,6 +164,21 @@
}; };
#endif #endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
binman_fip: fip { binman_fip: fip {
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
@@ -192,7 +207,7 @@
fdt = "fdt-SEQ"; fdt = "fdt-SEQ";
firmware = "uboot"; firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI #ifndef CONFIG_ARMV8_PSCI
loadables = "atf"; loadables = "atf", "tee";
#endif #endif
}; };
}; };

View File

@@ -240,6 +240,21 @@
}; };
#endif #endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
binman_fip: fip { binman_fip: fip {
arch = "arm64"; arch = "arm64";
compression = "none"; compression = "none";
@@ -268,7 +283,7 @@
fdt = "fdt-SEQ"; fdt = "fdt-SEQ";
firmware = "uboot"; firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI #ifndef CONFIG_ARMV8_PSCI
loadables = "atf"; loadables = "atf", "tee";
#endif #endif
}; };
}; };

View File

@@ -185,6 +185,21 @@
}; };
#endif #endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
@fdt-SEQ { @fdt-SEQ {
description = "NAME"; description = "NAME";
type = "flat_dt"; type = "flat_dt";
@@ -204,7 +219,7 @@
fdt = "fdt-SEQ"; fdt = "fdt-SEQ";
firmware = "uboot"; firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI #ifndef CONFIG_ARMV8_PSCI
loadables = "atf"; loadables = "atf", "tee";
#endif #endif
}; };
}; };

View File

@@ -144,6 +144,21 @@
}; };
#endif #endif
tee: tee {
description = "OP-TEE";
type = "tee";
arch = "arm64";
compression = "none";
os = "tee";
load = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
entry = <CONFIG_IMX8M_OPTEE_LOAD_ADDR>;
tee-os {
filename = "tee.bin";
optional;
};
};
fdt { fdt {
compression = "none"; compression = "none";
description = "NAME"; description = "NAME";
@@ -164,7 +179,7 @@
fdt = "fdt"; fdt = "fdt";
firmware = "uboot"; firmware = "uboot";
#ifndef CONFIG_ARMV8_PSCI #ifndef CONFIG_ARMV8_PSCI
loadables = "atf"; loadables = "atf", "tee";
#endif #endif
}; };
}; };

View File

@@ -26,111 +26,6 @@
bootph-pre-ram; bootph-pre-ram;
}; };
&lpi2c2 {
#address-cells = <1>;
#size-cells = <0>;
clock-frequency = <400000>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&pinctrl_lpi2c2>;
pinctrl-1 = <&pinctrl_lpi2c2>;
status = "okay";
pmic@25 {
compatible = "nxp,pca9451a";
reg = <0x25>;
interrupt-parent = <&pcal6524>;
interrupts = <11 IRQ_TYPE_LEVEL_LOW>;
regulators {
buck1: BUCK1 {
regulator-name = "BUCK1";
regulator-min-microvolt = <650000>;
regulator-max-microvolt = <2237500>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <3125>;
};
buck2: BUCK2 {
regulator-name = "BUCK2";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <2187500>;
regulator-boot-on;
regulator-always-on;
regulator-ramp-delay = <3125>;
};
buck4: BUCK4{
regulator-name = "BUCK4";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
};
buck5: BUCK5{
regulator-name = "BUCK5";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
};
buck6: BUCK6 {
regulator-name = "BUCK6";
regulator-min-microvolt = <600000>;
regulator-max-microvolt = <3400000>;
regulator-boot-on;
regulator-always-on;
};
ldo1: LDO1 {
regulator-name = "LDO1";
regulator-min-microvolt = <1600000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ldo4: LDO4 {
regulator-name = "LDO4";
regulator-min-microvolt = <800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
ldo5: LDO5 {
regulator-name = "LDO5";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
regulator-always-on;
};
};
};
pcal6524: gpio@22 {
compatible = "nxp,pcal6524";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pcal6524>;
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
interrupt-parent = <&gpio3>;
interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
};
adp5585gpio: gpio@34 {
compatible = "adp5585";
reg = <0x34>;
gpio-controller;
#gpio-cells = <2>;
};
};
&aips1 { &aips1 {
bootph-pre-ram; bootph-pre-ram;
bootph-all; bootph-all;
@@ -149,19 +44,6 @@
&iomuxc { &iomuxc {
bootph-pre-ram; bootph-pre-ram;
bootph-some-ram; bootph-some-ram;
pinctrl_lpi2c2: lpi2c2grp {
fsl,pins = <
MX93_PAD_I2C2_SCL__LPI2C2_SCL 0x40000b9e
MX93_PAD_I2C2_SDA__LPI2C2_SDA 0x40000b9e
>;
};
pinctrl_pcal6524: pcal6524grp {
fsl,pins = <
MX93_PAD_CCM_CLKO2__GPIO3_IO27 0x31e
>;
};
}; };
&reg_usdhc2_vmmc { &reg_usdhc2_vmmc {

View File

@@ -39,7 +39,7 @@ static void disable_thermal_cpu_nodes(void *blob, u32 num_disabled_cores, u32 ma
for (j = 0; j < cnt; j++) for (j = 0; j < cnt; j++)
cooling_dev[j] = cpu_to_fdt32(cooling_dev[j]); cooling_dev[j] = cpu_to_fdt32(cooling_dev[j]);
ret = fdt_setprop(blob, nodeoff, "cooling-device", &cooling_dev, ret = fdt_setprop(blob, nodeoff, "cooling-device", cooling_dev,
sizeof(__le32) * (num_le32 - num_disabled_cores * 3)); sizeof(__le32) * (num_le32 - num_disabled_cores * 3));
if (ret < 0) { if (ret < 0) {
printf("Warning: %s, cooling-device setprop failed %d\n", printf("Warning: %s, cooling-device setprop failed %d\n",

View File

@@ -37,6 +37,17 @@ config SYS_HAS_ARMV8_SECURE_BASE
If enabled, please also define the value for ARMV8_SECURE_BASE, If enabled, please also define the value for ARMV8_SECURE_BASE,
for i.MX8M, it could be some address in OCRAM. for i.MX8M, it could be some address in OCRAM.
config IMX8M_OPTEE_LOAD_ADDR
hex "Load address of OPTEE image"
default 0xbe000000 if IMX8MM
default 0xbe000000 if IMX8MN
default 0x56000000 if IMX8MP
default 0xfe000000 if IMX8MQ
help
The load and entry address for the OPTEE image. This value defaults to
the one defined in tf-a if not provided in the board defconfig file.
choice choice
prompt "NXP i.MX8M board select" prompt "NXP i.MX8M board select"
optional optional
@@ -54,6 +65,8 @@ config TARGET_IMX8MQ_EVK
select ARCH_MISC_INIT select ARCH_MISC_INIT
select SPL_CRYPTO if SPL select SPL_CRYPTO if SPL
imply OF_UPSTREAM imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
config TARGET_IMX8MQ_PHANBELL config TARGET_IMX8MQ_PHANBELL
bool "imx8mq_phanbell" bool "imx8mq_phanbell"
@@ -154,6 +167,8 @@ config TARGET_IMX8MN_EVK
select FSL_CAAM select FSL_CAAM
select SPL_CRYPTO if SPL select SPL_CRYPTO if SPL
imply OF_UPSTREAM imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
config TARGET_IMX8MN_DDR4_EVK config TARGET_IMX8MN_DDR4_EVK
bool "imx8mn DDR4 EVK board" bool "imx8mn DDR4 EVK board"
@@ -163,6 +178,8 @@ config TARGET_IMX8MN_DDR4_EVK
select FSL_CAAM select FSL_CAAM
select SPL_CRYPTO if SPL select SPL_CRYPTO if SPL
imply OF_UPSTREAM imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
config TARGET_IMX8MN_VENICE config TARGET_IMX8MN_VENICE
bool "Support Gateworks Venice iMX8M Nano module" bool "Support Gateworks Venice iMX8M Nano module"
@@ -227,6 +244,8 @@ config TARGET_IMX8MP_EVK
select ARCH_MISC_INIT select ARCH_MISC_INIT
select SPL_CRYPTO if SPL select SPL_CRYPTO if SPL
imply OF_UPSTREAM imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
config TARGET_IMX8MP_NAVQP config TARGET_IMX8MP_NAVQP
bool "Emcraft Systems i.MX8M Plus NavQ+ board" bool "Emcraft Systems i.MX8M Plus NavQ+ board"

View File

@@ -34,6 +34,8 @@ config TARGET_IMX91_11X11_EVK
select OF_BOARD_FIXUP select OF_BOARD_FIXUP
select IMX91 select IMX91
imply OF_UPSTREAM imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
config TARGET_IMX93_9X9_QSB config TARGET_IMX93_9X9_QSB
bool "imx93_qsb" bool "imx93_qsb"
@@ -41,12 +43,16 @@ config TARGET_IMX93_9X9_QSB
select IMX93 select IMX93
select IMX9_LPDDR4X select IMX9_LPDDR4X
imply OF_UPSTREAM imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
config TARGET_IMX93_11X11_EVK config TARGET_IMX93_11X11_EVK
bool "imx93_11x11_evk" bool "imx93_11x11_evk"
select OF_BOARD_FIXUP select OF_BOARD_FIXUP
select IMX93 select IMX93
imply OF_UPSTREAM imply OF_UPSTREAM
imply BOOTSTD_FULL
imply BOOTSTD_BOOTCOMMAND
config TARGET_IMX93_VAR_SOM config TARGET_IMX93_VAR_SOM
bool "imx93_var_som" bool "imx93_var_som"

View File

@@ -59,7 +59,7 @@ obj-$(CONFIG_POWER_PFUZE100) += pfuze.o
endif endif
obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze.o obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze.o
obj-$(CONFIG_POWER_MC34VR500) += mc34vr500.o obj-$(CONFIG_POWER_MC34VR500) += mc34vr500.o
ifneq (,$(filter $(SOC), imx8ulp imx9)) ifneq (,$(filter $(SOC), imx8m imx8ulp imx9))
obj-y += mmc.o obj-y += mmc.o
endif endif

View File

@@ -59,6 +59,9 @@ int board_mmc_get_env_dev(int devno)
int board_late_init(void) int board_late_init(void)
{ {
if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC))
board_late_mmc_env_init();
if (IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG)) { if (IS_ENABLED(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG)) {
env_set("board_name", "EVK"); env_set("board_name", "EVK");
env_set("board_rev", "iMX8MM"); env_set("board_rev", "iMX8MM");

View File

@@ -0,0 +1,67 @@
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
boot_fdt=try
boot_fit=no
boot_targets=mmc1 mmc2 dhcp
bootm_size=0x10000000
console=ttymxc1,115200
fdt_addr_r=0x48000000
fdtfile=CONFIG_DEFAULT_FDT_FILE
fdtoverlay_addr_r=0x49000000
initrd_addr=0x48080000
image=Image
ip_dyn=yes
kernel_addr_r=0x42000000
loadaddr=CONFIG_SYS_LOAD_ADDR
mmcautodetect=yes
mmcdev=CONFIG_SYS_MMC_ENV_DEV
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
prepare_mcore=setenv mcore_clk clk-imx8mm.mcore_booted;
pxefile_addr_r=0x40100000
ramdisk_addr_r=0x48080000
scriptaddr=0x40000000
mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}
prepare_mcore=setenv mcore_clk clk-imx8mn.mcore_booted
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
mmcboot=echo Booting from mmc ...;
run mmcargs;
if test ${boot_fit} = yes || test ${boot_fit} = try; then
bootm ${loadaddr};
else
if run loadfdt; then
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
fi
netargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=/dev/nfs
ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...;
run netargs;
if test ${ip_dyn} = yes; then
setenv get_cmd dhcp;
else
setenv get_cmd tftp;
fi;
${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
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
fi;
bsp_bootcmd=echo Running BSP bootcmd ...;
mmc dev ${mmcdev};
if mmc rescan; then
if run loadimage; then
run mmcboot;
else
run netboot;
fi;
fi;

View File

@@ -3,14 +3,10 @@
* Copyright 2019 NXP * Copyright 2019 NXP
*/ */
#include <asm/arch/sys_proto.h>
#include <asm/io.h>
#include <env.h> #include <env.h>
#include <init.h> #include <init.h>
#include <asm/global_data.h>
#include <miiphy.h>
#include <netdev.h>
#include <asm/io.h>
DECLARE_GLOBAL_DATA_PTR;
int board_mmc_get_env_dev(int devno) int board_mmc_get_env_dev(int devno)
{ {
@@ -35,6 +31,10 @@ int board_init(void)
int board_late_init(void) int board_late_init(void)
{ {
#if CONFIG_IS_ENABLED(ENV_IS_IN_MMC)
board_late_mmc_env_init();
#endif
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
env_set("board_name", "DDR4 EVK"); env_set("board_name", "DDR4 EVK");
env_set("board_rev", "iMX8MN"); env_set("board_rev", "iMX8MN");

View File

@@ -0,0 +1,67 @@
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
boot_fdt=try
boot_fit=no
boot_targets=mmc1 mmc2 dhcp
bootm_size=0x10000000
console=ttymxc1,115200
fdt_addr_r=0x48000000
fdtfile=CONFIG_DEFAULT_FDT_FILE
fdtoverlay_addr_r=0x49000000
initrd_addr=0x48080000
image=Image
ip_dyn=yes
kernel_addr_r=0x42000000
loadaddr=CONFIG_SYS_LOAD_ADDR
mmcautodetect=yes
mmcdev=CONFIG_SYS_MMC_ENV_DEV
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
prepare_mcore=setenv mcore_clk clk-imx8mn.mcore_booted;
pxefile_addr_r=0x40100000
ramdisk_addr_r=0x48080000
scriptaddr=0x40000000
mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}
prepare_mcore=setenv mcore_clk clk-imx8mn.mcore_booted
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
mmcboot=echo Booting from mmc ...;
run mmcargs;
if test ${boot_fit} = yes || test ${boot_fit} = try; then
bootm ${loadaddr};
else
if run loadfdt; then
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
fi
netargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=/dev/nfs
ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...;
run netargs;
if test ${ip_dyn} = yes; then
setenv get_cmd dhcp;
else
setenv get_cmd tftp;
fi;
${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
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
fi;
bsp_bootcmd=echo Running BSP bootcmd ...;
mmc dev ${mmcdev};
if mmc rescan; then
if run loadimage; then
run mmcboot;
else
run netboot;
fi;
fi;

View File

@@ -3,6 +3,7 @@
* Copyright 2019 NXP * Copyright 2019 NXP
*/ */
#include <asm/arch/sys_proto.h>
#include <env.h> #include <env.h>
int board_init(void) int board_init(void)
@@ -12,6 +13,10 @@ int board_init(void)
int board_late_init(void) int board_late_init(void)
{ {
#if CONFIG_IS_ENABLED(ENV_IS_IN_MMC)
board_late_mmc_env_init();
#endif
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
env_set("board_name", "EVK"); env_set("board_name", "EVK");
env_set("board_rev", "iMX8MP"); env_set("board_rev", "iMX8MP");

View File

@@ -0,0 +1,57 @@
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
boot_fdt=try
boot_fit=no
boot_targets=mmc1 mmc2
bootm_size=0x10000000
console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200
fdt_addr_r=0x43000000
fdt_addr=0x43000000
fdtfile=CONFIG_DEFAULT_FDT_FILE
image=Image
ip_dyn=yes
mmcdev=CONFIG_SYS_MMC_ENV_DEV
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
mmcautodetect=yes
mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}
prepare_mcore=setenv mcore_clk clk-imx8mp.mcore_booted
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
mmcboot=echo Booting from mmc ...;
run mmcargs;
if test ${boot_fit} = yes || test ${boot_fit} = try; then
bootm ${loadaddr};
else
if run loadfdt; then
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
fi;
netargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=/dev/nfs
ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...;
run netargs;
if test ${ip_dyn} = yes; then
setenv get_cmd dhcp;
else
setenv get_cmd tftp;
fi;
${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
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
fi;
bsp_bootcmd=echo Running BSP bootcmd ...;
mmc dev ${mmcdev};
if run loadimage; then
run mmcboot;
else
run netboot;
fi;

View File

@@ -3,30 +3,11 @@
* Copyright 2018 NXP * Copyright 2018 NXP
*/ */
#include <env.h> #include <asm/arch/clock.h>
#include <init.h>
#include <malloc.h>
#include <errno.h>
#include <asm/global_data.h>
#include <asm/io.h>
#include <miiphy.h>
#include <netdev.h>
#include <asm/mach-imx/iomux-v3.h>
#include <asm-generic/gpio.h>
#include <fsl_esdhc_imx.h>
#include <mmc.h>
#include <asm/arch/imx8mq_pins.h> #include <asm/arch/imx8mq_pins.h>
#include <asm/arch/sys_proto.h> #include <asm/arch/sys_proto.h>
#include <asm/mach-imx/gpio.h> #include <asm/mach-imx/iomux-v3.h>
#include <asm/mach-imx/mxc_i2c.h> #include <env.h>
#include <asm/arch/clock.h>
#include <spl.h>
#include <linux/bitops.h>
#include <power/pmic.h>
#include <power/pfuze100_pmic.h>
#include "../common/pfuze.h"
DECLARE_GLOBAL_DATA_PTR;
#define UART_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_FSEL1) #define UART_PAD_CTRL (PAD_CTL_DSE6 | PAD_CTL_FSEL1)
@@ -69,6 +50,10 @@ int board_mmc_get_env_dev(int devno)
int board_late_init(void) int board_late_init(void)
{ {
#if CONFIG_IS_ENABLED(ENV_IS_IN_MMC)
board_late_mmc_env_init();
#endif
#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG #ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG
env_set("board_name", "EVK"); env_set("board_name", "EVK");
env_set("board_rev", "iMX8MQ"); env_set("board_rev", "iMX8MQ");

View File

@@ -0,0 +1,60 @@
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
boot_fdt=try
boot_targets=mmc1 mmc2 dhcp
bootm_size=0x10000000
console=ttymxc0,115200
fdt_addr_r=0x43000000
fdtfile=CONFIG_DEFAULT_FDT_FILE
initrd_addr=0x43800000
image=Image
ip_dyn=yes
kernel_addr_r=CONFIG_SYS_LOAD_ADDR
loadaddr=CONFIG_SYS_LOAD_ADDR
mmcautodetect=yes
mmcdev=CONFIG_SYS_MMC_ENV_DEV
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
prepare_mcore=setenv mcore_clk clk-imx8mq.mcore_booted;
scriptaddr=CONFIG_SYS_LOAD_ADDR
mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
mmcboot=echo Booting from mmc ...;
run mmcargs;
if test ${boot_fdt} = yes || test ${boot_fdt} = try; then
if run loadfdt; then
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
else
echo wait for boot;
fi;
netargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=/dev/nfs
ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
netboot=echo Booting from net ...;
run netargs;
if test ${ip_dyn} = yes; then
setenv get_cmd dhcp;
else
setenv get_cmd tftp;
fi;
${get_cmd} ${loadaddr} ${image};
if test ${boot_fdt} = yes || test ${boot_fit} = try; then
if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
booti ${loadaddr} - ${fdt_addr_r};
else
echo WARN: Cannot load the DT;
fi;
fi;
bsp_bootcmd=echo Running BSP bootcmd ...;
mmc dev ${mmcdev};
if mmc rescan; then
if run loadimage; then
run mmcboot;
else
run netboot;
fi;
fi;

View File

@@ -10,6 +10,7 @@ fdt_addr_r=0x83000000
fdt_addr=0x83000000 fdt_addr=0x83000000
fdtfile=CONFIG_DEFAULT_FDT_FILE fdtfile=CONFIG_DEFAULT_FDT_FILE
image=Image image=Image
mmcdev=CONFIG_SYS_MMC_ENV_DEV
mmcpart=1 mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw mmcroot=/dev/mmcblk1p2 rootwait rw
mmcautodetect=yes mmcautodetect=yes
@@ -19,12 +20,13 @@ loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile} loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file} loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file}
auth_os=auth_cntr ${cntr_addr} auth_os=auth_cntr ${cntr_addr}
sec_boot=no
boot_os=booti ${loadaddr} - ${fdt_addr_r} boot_os=booti ${loadaddr} - ${fdt_addr_r}
mmcboot= mmcboot=
echo Booting from mmc ...; echo Booting from mmc ...;
run mmcargs; run mmcargs;
if test ${sec_boot} = yes; then if test ${sec_boot} = yes; then
if run auth_os; then if run true; then
run boot_os; run boot_os;
else else
echo ERR: failed to authenticate; echo ERR: failed to authenticate;
@@ -48,7 +50,7 @@ netboot=
fi; fi;
if test ${sec_boot} = yes; then if test ${sec_boot} = yes; then
${get_cmd} ${cntr_addr} ${cntr_file}; ${get_cmd} ${cntr_addr} ${cntr_file};
if run auth_os; then if true; then
run boot_os; run boot_os;
else else
echo ERR: failed to authenticate; echo ERR: failed to authenticate;
@@ -61,3 +63,26 @@ netboot=
echo WARN: Cannot load the DT; echo WARN: Cannot load the DT;
fi; fi;
fi; fi;
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;
scriptaddr=0x83500000

View File

@@ -0,0 +1,88 @@
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
boot_targets=mmc0 mmc1
boot_fit=no
bootm_size=0x10000000
cntr_addr=0x98000000
cntr_file=os_cntr_signed.bin
console=ttyLP0,115200 earlycon
fdt_addr_r=0x83000000
fdt_addr=0x83000000
fdtfile=CONFIG_DEFAULT_FDT_FILE
image=Image
mmcdev=CONFIG_SYS_MMC_ENV_DEV
mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw
mmcautodetect=yes
mmcargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=${mmcroot}
prepare_mcore=setenv mcore_clk clk-imx93.mcore_booted
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file}
auth_os=auth_cntr ${cntr_addr}
sec_boot=no
boot_os=booti ${loadaddr} - ${fdt_addr_r}
mmcboot=
echo Booting from mmc ...;
run mmcargs;
if test ${sec_boot} = yes; then
if true; then
run boot_os;
else
echo ERR: failed to authenticate;
fi;
else
if run loadfdt; then
run boot_os;
else
echo WARN: Cannot load the DT;
fi;
fi;
netargs=setenv bootargs ${jh_clk} ${mcore_clk} console=${console} root=/dev/nfs
ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
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 true; then
run boot_os;
else
echo ERR: failed to authenticate;
fi;
else
${get_cmd} ${loadaddr} ${image};
if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
run boot_os;
else
echo WARN: Cannot load the DT;
fi;
fi;
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;
scriptaddr=0x83500000

View File

@@ -10,6 +10,7 @@ fdt_addr_r=0x83000000
fdt_addr=0x83000000 fdt_addr=0x83000000
fdtfile=CONFIG_DEFAULT_FDT_FILE fdtfile=CONFIG_DEFAULT_FDT_FILE
image=Image image=Image
mmcdev=CONFIG_SYS_MMC_ENV_DEV
mmcpart=1 mmcpart=1
mmcroot=/dev/mmcblk1p2 rootwait rw mmcroot=/dev/mmcblk1p2 rootwait rw
mmcautodetect=yes mmcautodetect=yes
@@ -19,12 +20,13 @@ loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile} loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file} loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file}
auth_os=auth_cntr ${cntr_addr} auth_os=auth_cntr ${cntr_addr}
sec_boot=no
boot_os=booti ${loadaddr} - ${fdt_addr_r} boot_os=booti ${loadaddr} - ${fdt_addr_r}
mmcboot= mmcboot=
echo Booting from mmc ...; echo Booting from mmc ...;
run mmcargs; run mmcargs;
if test ${sec_boot} = yes; then if test ${sec_boot} = yes; then
if run auth_os; then if run true; then
run boot_os; run boot_os;
else else
echo ERR: failed to authenticate; echo ERR: failed to authenticate;
@@ -48,7 +50,7 @@ netboot=
fi; fi;
if test ${sec_boot} = yes; then if test ${sec_boot} = yes; then
${get_cmd} ${cntr_addr} ${cntr_file}; ${get_cmd} ${cntr_addr} ${cntr_file};
if run auth_os; then if true; then
run boot_os; run boot_os;
else else
echo ERR: failed to authenticate; echo ERR: failed to authenticate;
@@ -61,3 +63,26 @@ netboot=
echo WARN: Cannot load the DT; echo WARN: Cannot load the DT;
fi; fi;
fi; fi;
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;
scriptaddr=0x83500000

View File

@@ -9,5 +9,6 @@ F: configs/imx8mm-phygate-tauri-l_defconfig
F: configs/phycore-imx8mm_defconfig F: configs/phycore-imx8mm_defconfig
F: doc/board/phytec/imx8mm-phygate-tauri-l.rst F: doc/board/phytec/imx8mm-phygate-tauri-l.rst
F: doc/board/phytec/index.rst F: doc/board/phytec/index.rst
F: doc/board/phytec/imx8mm-optee-build.rsti
F: doc/board/phytec/phycore_imx8mm.rst F: doc/board/phytec/phycore_imx8mm.rst
F: include/configs/phycore_imx8mm.h F: include/configs/phycore_imx8mm.h

View File

@@ -76,6 +76,7 @@ CONFIG_CMD_GPIO=y
CONFIG_CMD_I2C=y CONFIG_CMD_I2C=y
CONFIG_CMD_MMC=y CONFIG_CMD_MMC=y
CONFIG_CMD_READ=y CONFIG_CMD_READ=y
CONFIG_CMD_WDT=y
CONFIG_CMD_DHCP=y CONFIG_CMD_DHCP=y
CONFIG_CMD_MII=y CONFIG_CMD_MII=y
CONFIG_CMD_PING=y CONFIG_CMD_PING=y

View File

@@ -5,6 +5,7 @@ CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_SPL_GPIO=y CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_IMX8M_OPTEE_LOAD_ADDR=0x56000000
CONFIG_ENV_SIZE=0x10000 CONFIG_ENV_SIZE=0x10000
CONFIG_ENV_OFFSET=0x3C0000 CONFIG_ENV_OFFSET=0x3C0000
CONFIG_DM_GPIO=y CONFIG_DM_GPIO=y

View File

@@ -24,8 +24,9 @@ CONFIG_SPL=y
CONFIG_FIT=y CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_EXTERNAL_OFFSET=0x3000
CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_LOAD_FIT=y
CONFIG_DISTRO_DEFAULTS=y
CONFIG_OF_SYSTEM_SETUP=y CONFIG_OF_SYSTEM_SETUP=y
CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074 CONFIG_SYS_PBSIZE=2074
CONFIG_BOARD_LATE_INIT=y CONFIG_BOARD_LATE_INIT=y

View File

@@ -5,6 +5,7 @@ CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_SPL_GPIO=y CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_ENV_SOURCE_FILE="imx8mn_evk"
CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SF_DEFAULT_SPEED=40000000
CONFIG_SF_DEFAULT_MODE=0 CONFIG_SF_DEFAULT_MODE=0
CONFIG_ENV_SIZE=0x1000 CONFIG_ENV_SIZE=0x1000
@@ -27,8 +28,9 @@ CONFIG_SPL=y
CONFIG_FIT=y CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_EXTERNAL_OFFSET=0x3000
CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_LOAD_FIT=y
CONFIG_DISTRO_DEFAULTS=y
CONFIG_OF_SYSTEM_SETUP=y CONFIG_OF_SYSTEM_SETUP=y
CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074 CONFIG_SYS_PBSIZE=2074
CONFIG_BOARD_LATE_INIT=y CONFIG_BOARD_LATE_INIT=y

View File

@@ -26,8 +26,8 @@ CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000
CONFIG_FIT=y CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_EXTERNAL_OFFSET=0x3000
CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_LOAD_FIT=y
CONFIG_DISTRO_DEFAULTS=y
CONFIG_OF_SYSTEM_SETUP=y CONFIG_OF_SYSTEM_SETUP=y
CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx8mn-evk.dtb" CONFIG_DEFAULT_FDT_FILE="imx8mn-evk.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074 CONFIG_SYS_PBSIZE=2074

View File

@@ -26,8 +26,8 @@ CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x48000000
CONFIG_FIT=y CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_EXTERNAL_OFFSET=0x3000
CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_LOAD_FIT=y
CONFIG_DISTRO_DEFAULTS=y
CONFIG_OF_SYSTEM_SETUP=y CONFIG_OF_SYSTEM_SETUP=y
CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb" CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074 CONFIG_SYS_PBSIZE=2074

View File

@@ -30,8 +30,9 @@ CONFIG_REMAKE_ELF=y
CONFIG_FIT=y CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_FIT_EXTERNAL_OFFSET=0x3000
CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_LOAD_FIT=y
CONFIG_DISTRO_DEFAULTS=y
CONFIG_OF_SYSTEM_SETUP=y CONFIG_OF_SYSTEM_SETUP=y
CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx8mp-evk.dtb"
CONFIG_SYS_PBSIZE=1050 CONFIG_SYS_PBSIZE=1050
CONFIG_BOARD_EARLY_INIT_F=y CONFIG_BOARD_EARLY_INIT_F=y
CONFIG_BOARD_LATE_INIT=y CONFIG_BOARD_LATE_INIT=y

View File

@@ -6,7 +6,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x18000
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2 CONFIG_NR_DRAM_BANKS=2
CONFIG_ENV_SOURCE_FILE="imx91_evk"
CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SF_DEFAULT_SPEED=40000000
CONFIG_ENV_SIZE=0x4000 CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000 CONFIG_ENV_OFFSET=0x700000
@@ -31,7 +30,7 @@ CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x88000000
CONFIG_SYS_MEMTEST_START=0x80000000 CONFIG_SYS_MEMTEST_START=0x80000000
CONFIG_SYS_MEMTEST_END=0x90000000 CONFIG_SYS_MEMTEST_END=0x90000000
CONFIG_REMAKE_ELF=y CONFIG_REMAKE_ELF=y
CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_OF_SYSTEM_SETUP=y CONFIG_OF_SYSTEM_SETUP=y
CONFIG_DEFAULT_FDT_FILE="imx91-11x11-evk.dtb" CONFIG_DEFAULT_FDT_FILE="imx91-11x11-evk.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048

View File

@@ -6,7 +6,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x18000
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2 CONFIG_NR_DRAM_BANKS=2
CONFIG_ENV_SOURCE_FILE="imx91_evk"
CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SF_DEFAULT_SPEED=40000000
CONFIG_ENV_SIZE=0x4000 CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000 CONFIG_ENV_OFFSET=0x700000
@@ -31,7 +30,7 @@ CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x88000000
CONFIG_SYS_MEMTEST_START=0x80000000 CONFIG_SYS_MEMTEST_START=0x80000000
CONFIG_SYS_MEMTEST_END=0x90000000 CONFIG_SYS_MEMTEST_END=0x90000000
CONFIG_REMAKE_ELF=y CONFIG_REMAKE_ELF=y
CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_OF_SYSTEM_SETUP=y CONFIG_OF_SYSTEM_SETUP=y
CONFIG_DEFAULT_FDT_FILE="imx91-11x11-evk.dtb" CONFIG_DEFAULT_FDT_FILE="imx91-11x11-evk.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048

View File

@@ -26,7 +26,7 @@ CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x88000000
CONFIG_SYS_MEMTEST_START=0x80000000 CONFIG_SYS_MEMTEST_START=0x80000000
CONFIG_SYS_MEMTEST_END=0x90000000 CONFIG_SYS_MEMTEST_END=0x90000000
CONFIG_REMAKE_ELF=y CONFIG_REMAKE_ELF=y
CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx93-11x11-evk.dtb" CONFIG_DEFAULT_FDT_FILE="imx93-11x11-evk.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074 CONFIG_SYS_PBSIZE=2074

View File

@@ -6,7 +6,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x20000
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2 CONFIG_NR_DRAM_BANKS=2
CONFIG_ENV_SOURCE_FILE="imx93_qsb"
CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SF_DEFAULT_SPEED=40000000
CONFIG_ENV_SIZE=0x4000 CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000 CONFIG_ENV_OFFSET=0x700000
@@ -29,7 +28,7 @@ CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x88000000
CONFIG_SYS_MEMTEST_START=0x80000000 CONFIG_SYS_MEMTEST_START=0x80000000
CONFIG_SYS_MEMTEST_END=0x90000000 CONFIG_SYS_MEMTEST_END=0x90000000
CONFIG_REMAKE_ELF=y CONFIG_REMAKE_ELF=y
CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx93-9x9-qsb.dtb" CONFIG_DEFAULT_FDT_FILE="imx93-9x9-qsb.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074 CONFIG_SYS_PBSIZE=2074

View File

@@ -6,7 +6,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x20000
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=2 CONFIG_NR_DRAM_BANKS=2
CONFIG_ENV_SOURCE_FILE="imx93_qsb"
CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SF_DEFAULT_SPEED=40000000
CONFIG_ENV_SIZE=0x4000 CONFIG_ENV_SIZE=0x4000
CONFIG_ENV_OFFSET=0x700000 CONFIG_ENV_OFFSET=0x700000
@@ -29,7 +28,7 @@ CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x88000000
CONFIG_SYS_MEMTEST_START=0x80000000 CONFIG_SYS_MEMTEST_START=0x80000000
CONFIG_SYS_MEMTEST_END=0x90000000 CONFIG_SYS_MEMTEST_END=0x90000000
CONFIG_REMAKE_ELF=y CONFIG_REMAKE_ELF=y
CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTCOMMAND="bootflow scan -lb; run bsp_bootcmd"
CONFIG_DEFAULT_FDT_FILE="imx93-9x9-qsb.dtb" CONFIG_DEFAULT_FDT_FILE="imx93-9x9-qsb.dtb"
CONFIG_SYS_CBSIZE=2048 CONFIG_SYS_CBSIZE=2048
CONFIG_SYS_PBSIZE=2074 CONFIG_SYS_PBSIZE=2074

View File

@@ -5,6 +5,7 @@ CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_SPL_GPIO=y CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_IMX8M_OPTEE_LOAD_ADDR=0x56000000
CONFIG_SF_DEFAULT_SPEED=80000000 CONFIG_SF_DEFAULT_SPEED=80000000
CONFIG_ENV_SIZE=0x10000 CONFIG_ENV_SIZE=0x10000
CONFIG_ENV_OFFSET=0x3C0000 CONFIG_ENV_OFFSET=0x3C0000

View File

@@ -5,6 +5,7 @@ CONFIG_SYS_MALLOC_LEN=0x2000000
CONFIG_SPL_GPIO=y CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_IMX8M_OPTEE_LOAD_ADDR=0x56000000
CONFIG_PHYTEC_SOM_DETECTION=y CONFIG_PHYTEC_SOM_DETECTION=y
CONFIG_SF_DEFAULT_SPEED=80000000 CONFIG_SF_DEFAULT_SPEED=80000000
CONFIG_ENV_SIZE=0x10000 CONFIG_ENV_SIZE=0x10000

View File

@@ -0,0 +1,14 @@
Build the OP-TEE binary (optional)
----------------------------------
.. code-block:: bash
$ git clone https://github.com/OP-TEE/optee_os.git
$ cd optee_os
$ make CFG_TEE_BENCHMARK=n \
CROSS_COMPILE=aarch64-linux-gnu- \
O=out/arm \
PLATFORM=imx-mx8mmevk \
CFG_TZDRAM_START=0x56000000 \
CFG_DDR_SIZE=0x80000000 \
CFG_UART_BASE=UART3_BASE

View File

@@ -9,6 +9,7 @@ Quick Start
----------- -----------
- Build the ARM Trusted firmware binary - Build the ARM Trusted firmware binary
- Build the OP-TEE binary (optional)
- Get ddr firmware - Get ddr firmware
- Build U-Boot - Build U-Boot
- Boot - Boot
@@ -20,10 +21,15 @@ Build the ARM Trusted firmware binary
$ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git $ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
$ cd trusted-firmware-a $ cd trusted-firmware-a
$ export CROSS_COMPILE=aarch64-linux-gnu $ export CROSS_COMPILE=aarch64-linux-gnu-
$ export IMX_BOOT_UART_BASE=0x30880000 $ export IMX_BOOT_UART_BASE=0x30880000
$ # with optee
$ make PLAT=imx8mm BL32_BASE=0x56000000 SPD=opteed bl31
$ # without optee
$ make PLAT=imx8mm bl31 $ make PLAT=imx8mm bl31
.. include:: imx8mm-optee-build.rsti
Get the ddr firmware Get the ddr firmware
-------------------- --------------------
@@ -42,6 +48,7 @@ Copy binaries
.. code-block:: bash .. code-block:: bash
$ cp <TF-A dir>/build/imx8mm/release/bl31.bin . $ cp <TF-A dir>/build/imx8mm/release/bl31.bin .
$ cp <OP-TEE dir>/out/arm/core/tee-raw.bin tee.bin
$ cp firmware-imx-8.23/firmware/ddr/synopsys/lpddr4*.bin . $ cp firmware-imx-8.23/firmware/ddr/synopsys/lpddr4*.bin .
Build U-Boot Build U-Boot

View File

@@ -9,6 +9,7 @@ Quick Start
----------- -----------
- Build the ARM Trusted firmware binary - Build the ARM Trusted firmware binary
- Build the OP-TEE binary (optional)
- Get ddr firmware - Get ddr firmware
- Build U-Boot - Build U-Boot
- Boot - Boot
@@ -20,10 +21,15 @@ Build the ARM Trusted firmware binary
$ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git $ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
$ cd trusted-firmware-a $ cd trusted-firmware-a
$ export CROSS_COMPILE=aarch64-linux-gnu $ export CROSS_COMPILE=aarch64-linux-gnu-
$ export IMX_BOOT_UART_BASE=0x30880000 $ export IMX_BOOT_UART_BASE=0x30880000
$ # with optee
$ make PLAT=imx8mm BL32_BASE=0x56000000 SPD=opteed bl31
$ # without optee
$ make PLAT=imx8mm bl31 $ make PLAT=imx8mm bl31
.. include:: imx8mm-optee-build.rsti
Get the ddr firmware Get the ddr firmware
-------------------- --------------------

View File

@@ -9,6 +9,7 @@ Quick Start
----------- -----------
- Build the ARM Trusted firmware binary - Build the ARM Trusted firmware binary
- Build the OP-TEE binary (optional)
- Get ddr firmware - Get ddr firmware
- Build U-Boot - Build U-Boot
- Boot - Boot
@@ -20,10 +21,26 @@ Build the ARM Trusted firmware binary
$ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git $ git clone https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git
$ cd trusted-firmware-a $ cd trusted-firmware-a
$ export CROSS_COMPILE=aarch64-linux-gnu $ export CROSS_COMPILE=aarch64-linux-gnu-
$ export IMX_BOOT_UART_BASE=0x30860000 $ export IMX_BOOT_UART_BASE=0x30860000
$ # with optee
$ make PLAT=imx8mp SPD=opteed bl31
$ # without optee
$ make PLAT=imx8mp bl31 $ make PLAT=imx8mp bl31
Build the OP-TEE binary (optional)
----------------------------------
.. code-block:: bash
$ git clone https://github.com/OP-TEE/optee_os.git
$ cd optee_os
$ make CFG_TEE_BENCHMARK=n \
CROSS_COMPILE=aarch64-linux-gnu- \
O=out/arm \
PLATFORM=imx-mx8mp_phyboard_pollux \
CFG_TZDRAM_START=0x56000000
Get the ddr firmware Get the ddr firmware
-------------------- --------------------
@@ -42,6 +59,7 @@ Copy binaries
.. code-block:: bash .. code-block:: bash
$ cp <TF-A dir>/build/imx8mp/release/bl31.bin . $ 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.19/firmware/ddr/synopsys/lpddr4*.bin . $ cp firmware-imx-8.19/firmware/ddr/synopsys/lpddr4*.bin .
Build U-Boot Build U-Boot

View File

@@ -224,7 +224,7 @@ static int adp5585_probe(struct udevice *dev)
} }
static const struct udevice_id adp5585_ids[] = { static const struct udevice_id adp5585_ids[] = {
{ .compatible = "adp5585" }, { .compatible = "adi,adp5585" },
{ } { }
}; };

View File

@@ -29,28 +29,6 @@
#endif #endif
#define BOOT_TARGET_DEVICES(func) \
func(MMC, mmc, 1) \
func(MMC, mmc, 2) \
func(DHCP, dhcp, na)
#include <config_distro_bootcmd.h>
/* Initial environment variables */
#define CFG_EXTRA_ENV_SETTINGS \
BOOTENV \
"scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"image=Image\0" \
"console=ttymxc1,115200\0" \
"fdt_addr_r=0x43000000\0" \
"boot_fit=no\0" \
"fdtfile=imx8mm-evk.dtb\0" \
"initrd_addr=0x43800000\0" \
"bootm_size=0x10000000\0" \
"mmcpart=1\0" \
"mmcroot=/dev/mmcblk1p2 rootwait rw\0" \
/* Link Definitions */ /* Link Definitions */
#define CFG_SYS_INIT_RAM_ADDR 0x40000000 #define CFG_SYS_INIT_RAM_ADDR 0x40000000

View File

@@ -13,36 +13,6 @@
#define CFG_SYS_UBOOT_BASE \ #define CFG_SYS_UBOOT_BASE \
(QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512) (QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512)
#define BOOT_TARGET_DEVICES(func) \
func(MMC, mmc, 1) \
func(MMC, mmc, 2) \
func(DHCP, dhcp, na)
#include <config_distro_bootcmd.h>
/* Initial environment variables */
/* see include/configs/ti_armv7_common.h */
#define ENV_MEM_LAYOUT_SETTINGS \
"loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"kernel_addr_r=0x42000000\0" \
"fdt_addr_r=0x48000000\0" \
"fdtoverlay_addr_r=0x49000000\0" \
"ramdisk_addr_r=0x48080000\0" \
"initrd_addr=0x48080000\0" \
"scriptaddr=0x40000000\0" \
"pxefile_addr_r=0x40100000\0"
#define CFG_EXTRA_ENV_SETTINGS \
"image=Image\0" \
BOOTENV \
"console=ttymxc1,115200\0" \
"boot_fit=no\0" \
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
"bootm_size=0x10000000\0" \
"mmcpart=1\0" \
"mmcroot=/dev/mmcblk1p2 rootwait rw\0" \
ENV_MEM_LAYOUT_SETTINGS
/* Link Definitions */ /* Link Definitions */
#define CFG_SYS_INIT_RAM_ADDR 0x40000000 #define CFG_SYS_INIT_RAM_ADDR 0x40000000

View File

@@ -17,27 +17,6 @@
#endif #endif
#define BOOT_TARGET_DEVICES(func) \
func(MMC, mmc, 1) \
func(MMC, mmc, 2)
#include <config_distro_bootcmd.h>
/* Initial environment variables */
#define CFG_EXTRA_ENV_SETTINGS \
BOOTENV \
"scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"image=Image\0" \
"console=ttymxc1,115200 earlycon=ec_imx6q,0x30890000,115200\0" \
"fdt_addr_r=0x43000000\0" \
"boot_fdt=try\0" \
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
"initrd_addr=0x43800000\0" \
"bootm_size=0x10000000\0" \
"mmcpart=1\0" \
"mmcroot=/dev/mmcblk1p2 rootwait rw\0" \
/* Link Definitions */ /* Link Definitions */
#define CFG_SYS_INIT_RAM_ADDR 0x40000000 #define CFG_SYS_INIT_RAM_ADDR 0x40000000

View File

@@ -26,28 +26,6 @@
#define CFG_FEC_MXC_PHYADDR 0 #define CFG_FEC_MXC_PHYADDR 0
#endif #endif
#define BOOT_TARGET_DEVICES(func) \
func(MMC, mmc, 0) \
func(MMC, mmc, 1) \
func(DHCP, dhcp, na)
#include <config_distro_bootcmd.h>
/* Initial environment variables */
#define CFG_EXTRA_ENV_SETTINGS \
BOOTENV \
"scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"image=Image\0" \
"console=ttymxc0,115200\0" \
"fdt_addr_r=0x43000000\0" \
"boot_fdt=try\0" \
"fdtfile=imx8mq-evk.dtb\0" \
"initrd_addr=0x43800000\0" \
"bootm_size=0x10000000\0" \
"mmcpart=1\0" \
"mmcroot=/dev/mmcblk1p2 rootwait rw\0" \
/* Link Definitions */ /* Link Definitions */
#define CFG_SYS_INIT_RAM_ADDR 0x40000000 #define CFG_SYS_INIT_RAM_ADDR 0x40000000

View File

@@ -17,117 +17,12 @@
#define CFG_MALLOC_F_ADDR 0x204D0000 #define CFG_MALLOC_F_ADDR 0x204D0000
#endif #endif
#ifdef CONFIG_DISTRO_DEFAULTS
#define BOOT_TARGET_DEVICES(func) \
func(MMC, mmc, 0) \
func(MMC, mmc, 1) \
#include <config_distro_bootcmd.h>
#else
#define BOOTENV
#endif
#ifdef CONFIG_SYS_MMC_ENV_DEV #ifdef CONFIG_SYS_MMC_ENV_DEV
#define IMX93_EVK_MMC_ENV_DEV CONFIG_SYS_MMC_ENV_DEV #define IMX93_EVK_MMC_ENV_DEV CONFIG_SYS_MMC_ENV_DEV
#else #else
#define IMX93_EVK_MMC_ENV_DEV 0 #define IMX93_EVK_MMC_ENV_DEV 0
#endif #endif
/* Initial environment variables */
#define CFG_EXTRA_ENV_SETTINGS \
BOOTENV \
"scriptaddr=0x83500000\0" \
"kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
"image=Image\0" \
"splashimage=0x90000000\0" \
"console=ttyLP0,115200 earlycon\0" \
"fdt_addr_r=0x83000000\0" \
"fdt_addr=0x83000000\0" \
"cntr_addr=0x98000000\0" \
"cntr_file=os_cntr_signed.bin\0" \
"boot_fit=no\0" \
"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \
"bootm_size=0x10000000\0" \
"mmcdev=" __stringify(IMX93_EVK_MMC_ENV_DEV)"\0" \
"mmcpart=1\0" \
"mmcroot=/dev/mmcblk1p2 rootwait rw\0" \
"mmcautodetect=yes\0" \
"mmcargs=setenv bootargs ${jh_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 ${jh_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;"
/* Link Definitions */ /* Link Definitions */
#define CFG_SYS_INIT_RAM_ADDR 0x80000000 #define CFG_SYS_INIT_RAM_ADDR 0x80000000