mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-09-19 12:51:23 +02:00
Merge patch series "Generalize PHYTEC Overlay Handling"
Daniel Schultz <d.schultz@phytec.de> says: The overlays are specified in the bootenv.txt file that is loaded into the environment. Then these overlays get loaded and applied via a script. These scripts for loading and applying devicetree overlays are identical for many phytec boards. Create a common overlays.env that can be included. Add support for devicetree overlays to phycore-imx8mp and include the overlays.env for phycore-imx93. Rename existing environment variables according to bootstd doc. Move MMC boot logic into a common k3_mmc.env file and include the new overlays.env file as well.
This commit is contained in:
commit
cfaa58b8b7
@ -1,4 +1,5 @@
|
||||
#include <env/ti/k3_dfu.env>
|
||||
#include <env/phytec/k3_mmc.env>
|
||||
|
||||
fdtaddr=0x88000000
|
||||
loadaddr=0x82000000
|
||||
@ -14,13 +15,3 @@ mmcroot=2
|
||||
mmcpart=1
|
||||
console=ttyS2,115200n8
|
||||
earlycon=ns16550a,mmio32,0x02800000
|
||||
mmcargs=setenv bootargs console=${console} earlycon=${earlycon}
|
||||
root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw
|
||||
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} Image
|
||||
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${fdtfile}
|
||||
mmcboot=run mmcargs;
|
||||
mmc dev ${mmcdev};
|
||||
mmc rescan;
|
||||
run loadimage;
|
||||
run loadfdt;
|
||||
booti ${loadaddr} - ${fdtaddr}
|
||||
|
@ -1,3 +1,5 @@
|
||||
#include <env/phytec/k3_mmc.env>
|
||||
|
||||
fdtaddr=0x88000000
|
||||
loadaddr=0x82000000
|
||||
scriptaddr=0x80000000
|
||||
@ -12,13 +14,3 @@ mmcroot=2
|
||||
mmcpart=1
|
||||
console=ttyS2,115200n8
|
||||
earlycon=ns16550a,mmio32,0x02800000
|
||||
mmcargs=setenv bootargs console=${console} earlycon=${earlycon}
|
||||
root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw
|
||||
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} Image
|
||||
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} ${fdtfile}
|
||||
mmcboot=run mmcargs;
|
||||
mmc dev ${mmcdev};
|
||||
mmc rescan;
|
||||
run loadimage;
|
||||
run loadfdt;
|
||||
booti ${loadaddr} - ${fdtaddr}
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include <env/phytec/rauc.env>
|
||||
#include <env/phytec/overlays.env>
|
||||
|
||||
bootcmd=
|
||||
if test ${dofastboot} = 1; then
|
||||
@ -16,15 +17,17 @@ bootcmd=
|
||||
fi;
|
||||
fi;
|
||||
console=ttymxc0,115200
|
||||
bootenv_addr_r=0x49100000
|
||||
fdtoverlay_addr_r=0x49000000
|
||||
dofastboot=0
|
||||
emmc_dev=2
|
||||
fastboot_raw_partition_all=0 4194304
|
||||
fastboot_raw_partition_bootloader=64 8128
|
||||
fdt_addr=0x48000000
|
||||
fdt_file=CONFIG_DEFAULT_FDT_FILE
|
||||
fdt_addr_r=0x48000000
|
||||
fdtfile=CONFIG_DEFAULT_FDT_FILE
|
||||
image=Image
|
||||
ip_dyn=yes
|
||||
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
|
||||
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
|
||||
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
|
||||
mmcargs=
|
||||
setenv bootargs console=${console}
|
||||
@ -32,9 +35,15 @@ mmcargs=
|
||||
mmcautodetect=yes
|
||||
mmcboot=
|
||||
echo Booting from mmc ...;
|
||||
if test ${no_bootenv} = 0; then
|
||||
if run mmc_load_bootenv; then
|
||||
env import -t ${bootenv_addr_r} ${filesize};
|
||||
fi;
|
||||
fi;
|
||||
run mmcargs;
|
||||
if run loadfdt; then
|
||||
booti ${loadaddr} - ${fdt_addr};
|
||||
run mmc_apply_overlays;
|
||||
booti ${loadaddr} - ${fdt_addr_r};
|
||||
else
|
||||
echo WARN: Cannot load the DT;
|
||||
fi;
|
||||
@ -51,10 +60,16 @@ netboot=
|
||||
else
|
||||
setenv get_cmd tftp;
|
||||
fi;
|
||||
if test ${no_bootenv} = 0; then
|
||||
if run net_load_bootenv; then
|
||||
env import -t ${bootenv_addr_r} ${filesize};
|
||||
fi;
|
||||
fi;
|
||||
${get_cmd} ${loadaddr} ${image};
|
||||
run netargs;
|
||||
if ${get_cmd} ${fdt_addr} ${fdt_file}; then
|
||||
booti ${loadaddr} - ${fdt_addr};
|
||||
if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
|
||||
run net_apply_overlays;
|
||||
booti ${loadaddr} - ${fdt_addr_r};
|
||||
else
|
||||
echo WARN: Cannot load the DT;
|
||||
fi;
|
||||
|
@ -1,14 +1,14 @@
|
||||
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
|
||||
|
||||
#include <env/phytec/overlays.env>
|
||||
|
||||
image=Image
|
||||
console=ttyLP0
|
||||
fdt_addr=0x83000000
|
||||
fdto_addr=0x830c0000
|
||||
bootenv_addr=0x83500000
|
||||
fdt_file=CONFIG_DEFAULT_FDT_FILE
|
||||
fdt_addr_r=0x83000000
|
||||
fdtoverlay_addr_r=0x830c0000
|
||||
bootenv_addr_r=0x83500000
|
||||
fdtfile=CONFIG_DEFAULT_FDT_FILE
|
||||
ip_dyn=yes
|
||||
bootenv=bootenv.txt
|
||||
mmc_load_bootenv=fatload mmc ${mmcdev}:${mmcpart} ${bootenv_addr} ${bootenv}
|
||||
mmcdev=CONFIG_SYS_MMC_ENV_DEV
|
||||
mmcpart=1
|
||||
mmcroot=2
|
||||
@ -16,43 +16,22 @@ mmcautodetect=yes
|
||||
mmcargs=setenv bootargs console=${console},${baudrate} earlycon
|
||||
root=/dev/mmcblk${mmcdev}p${mmcroot} ${raucargs} rootwait rw
|
||||
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
|
||||
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
|
||||
mmc_load_overlay=fatload mmc ${mmcdev}:${mmcpart} ${fdto_addr} ${overlay}
|
||||
mmc_apply_overlays=
|
||||
fdt address ${fdt_addr};
|
||||
for overlay in ${overlays};
|
||||
do;
|
||||
if run mmc_load_overlay; then
|
||||
fdt resize ${filesize};
|
||||
fdt apply ${fdto_addr};
|
||||
fi;
|
||||
done;
|
||||
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
|
||||
mmcboot=
|
||||
echo Booting from mmc ...;
|
||||
if run mmc_load_bootenv; then
|
||||
env import -t ${bootenv_addr} ${filesize};
|
||||
env import -t ${bootenv_addr_r} ${filesize};
|
||||
fi;
|
||||
run mmcargs;
|
||||
if run loadfdt; then
|
||||
run mmc_apply_overlays;
|
||||
booti ${loadaddr} - ${fdt_addr};
|
||||
booti ${loadaddr} - ${fdt_addr_r};
|
||||
else
|
||||
echo WARN: Cannot load the DT;
|
||||
fi;
|
||||
nfsroot=/nfs
|
||||
netargs=setenv bootargs console=${console},${baudrate} earlycon
|
||||
root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
|
||||
net_load_bootenv=${get_cmd} ${bootenv_addr} ${bootenv}
|
||||
net_load_overlay=${get_cmd} ${fdto_addr} ${overlay}
|
||||
net_apply_overlays=
|
||||
fdt address ${fdt_addr};
|
||||
for overlay in ${overlays};
|
||||
do;
|
||||
if run net_load_overlay; then
|
||||
fdt resize ${filesize};
|
||||
fdt apply ${fdto_addr};
|
||||
fi;
|
||||
done;
|
||||
netboot=
|
||||
echo Booting from net ...;
|
||||
run netargs;
|
||||
@ -62,12 +41,12 @@ netboot=
|
||||
setenv get_cmd tftp;
|
||||
fi;
|
||||
if run net_load_bootenv; then
|
||||
env import -t ${bootenv_addr} ${filesize};
|
||||
env import -t ${bootenv_addr_r} ${filesize};
|
||||
fi;
|
||||
${get_cmd} ${loadaddr} ${image};
|
||||
if ${get_cmd} ${fdt_addr} ${fdt_file}; then
|
||||
if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
|
||||
run net_apply_overlays;
|
||||
booti ${loadaddr} - ${fdt_addr};
|
||||
booti ${loadaddr} - ${fdt_addr_r};
|
||||
else
|
||||
echo WARN: Cannot load the DT;
|
||||
fi;
|
||||
|
@ -13,6 +13,7 @@ CONFIG_DM_GPIO=y
|
||||
CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-phyboard-pollux-rdk"
|
||||
CONFIG_SPL_TEXT_BASE=0x920000
|
||||
CONFIG_TARGET_PHYCORE_IMX8MP=y
|
||||
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||
CONFIG_SYS_MONITOR_LEN=524288
|
||||
CONFIG_SPL_MMC=y
|
||||
CONFIG_SPL_SERIAL=y
|
||||
@ -51,8 +52,6 @@ CONFIG_SPL_POWER=y
|
||||
CONFIG_SPL_WATCHDOG=y
|
||||
CONFIG_HUSH_PARSER=y
|
||||
CONFIG_SYS_PROMPT="u-boot=> "
|
||||
# CONFIG_CMD_EXPORTENV is not set
|
||||
# CONFIG_CMD_IMPORTENV is not set
|
||||
# CONFIG_CMD_CRC32 is not set
|
||||
CONFIG_CMD_EEPROM=y
|
||||
CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
|
||||
@ -76,6 +75,7 @@ CONFIG_CMD_EXT2=y
|
||||
CONFIG_CMD_EXT4=y
|
||||
CONFIG_CMD_EXT4_WRITE=y
|
||||
CONFIG_CMD_FAT=y
|
||||
CONFIG_CMD_FS_GENERIC=y
|
||||
CONFIG_OF_CONTROL=y
|
||||
CONFIG_SPL_OF_CONTROL=y
|
||||
CONFIG_ENV_OVERWRITE=y
|
||||
|
21
include/env/phytec/k3_mmc.env
vendored
Normal file
21
include/env/phytec/k3_mmc.env
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
/*
|
||||
* Copyright (C) 2024 PHYTEC Messtechnik GmbH
|
||||
* Author: Daniel Schultz <d.schultz@phytec.de>
|
||||
*/
|
||||
|
||||
/* Logic for TI K3 based SoCs to boot from a MMC device. */
|
||||
|
||||
#include <env/phytec/overlays.env>
|
||||
|
||||
mmcargs=setenv bootargs console=${console} earlycon=${earlycon}
|
||||
root=/dev/mmcblk${mmcdev}p${mmcroot} rootwait rw
|
||||
loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} Image
|
||||
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
|
||||
mmcboot=run mmcargs;
|
||||
mmc dev ${mmcdev};
|
||||
mmc rescan;
|
||||
run loadimage;
|
||||
run loadfdt;
|
||||
run mmc_apply_overlays;
|
||||
booti ${loadaddr} - ${fdt_addr_r}
|
38
include/env/phytec/overlays.env
vendored
Normal file
38
include/env/phytec/overlays.env
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (C) 2024 PHYTEC Messtechnik GmbH
|
||||
* Author: Benjamin Hahn <b.hahn@phytec.de>
|
||||
*/
|
||||
|
||||
/* Logic to load and apply overlays. Load overlays from bootenv.txt into
|
||||
* environment and apply those overlays.
|
||||
* The variables bootenv_addr_r and fdtoverlay_addr_r are board specific.
|
||||
* get_cmd can be either tftp or dhcp. */
|
||||
|
||||
bootenv=bootenv.txt
|
||||
mmc_load_bootenv=load mmc ${mmcdev}:${mmcpart} ${bootenv_addr_r} ${bootenv}
|
||||
mmc_load_overlay=load mmc ${mmcdev}:${mmcpart} ${fdtoverlay_addr_r} ${overlay}
|
||||
mmc_apply_overlays=
|
||||
fdt address ${fdt_addr_r};
|
||||
if test ${no_overlays} = 0; then
|
||||
for overlay in ${overlays};
|
||||
do;
|
||||
if run mmc_load_overlay; then
|
||||
fdt resize ${filesize};
|
||||
fdt apply ${fdtoverlay_addr_r};
|
||||
fi;
|
||||
done;
|
||||
fi;
|
||||
net_load_bootenv=${get_cmd} ${bootenv_addr_r} ${bootenv}
|
||||
net_load_overlay=${get_cmd} ${fdtoverlay_addr_r} ${overlay}
|
||||
net_apply_overlays=
|
||||
fdt address ${fdt_addr_r};
|
||||
if test ${no_overlays} = 0; then
|
||||
for overlay in ${overlays};
|
||||
do;
|
||||
if run net_load_overlay; then
|
||||
fdt resize ${filesize};
|
||||
fdt apply ${fdtoverlay_addr_r};
|
||||
fi;
|
||||
done;
|
||||
fi;
|
Loading…
x
Reference in New Issue
Block a user