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/ti/k3_dfu.env>
|
||||||
|
#include <env/phytec/k3_mmc.env>
|
||||||
|
|
||||||
fdtaddr=0x88000000
|
fdtaddr=0x88000000
|
||||||
loadaddr=0x82000000
|
loadaddr=0x82000000
|
||||||
@ -14,13 +15,3 @@ mmcroot=2
|
|||||||
mmcpart=1
|
mmcpart=1
|
||||||
console=ttyS2,115200n8
|
console=ttyS2,115200n8
|
||||||
earlycon=ns16550a,mmio32,0x02800000
|
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
|
fdtaddr=0x88000000
|
||||||
loadaddr=0x82000000
|
loadaddr=0x82000000
|
||||||
scriptaddr=0x80000000
|
scriptaddr=0x80000000
|
||||||
@ -12,13 +14,3 @@ mmcroot=2
|
|||||||
mmcpart=1
|
mmcpart=1
|
||||||
console=ttyS2,115200n8
|
console=ttyS2,115200n8
|
||||||
earlycon=ns16550a,mmio32,0x02800000
|
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/rauc.env>
|
||||||
|
#include <env/phytec/overlays.env>
|
||||||
|
|
||||||
bootcmd=
|
bootcmd=
|
||||||
if test ${dofastboot} = 1; then
|
if test ${dofastboot} = 1; then
|
||||||
@ -16,15 +17,17 @@ bootcmd=
|
|||||||
fi;
|
fi;
|
||||||
fi;
|
fi;
|
||||||
console=ttymxc0,115200
|
console=ttymxc0,115200
|
||||||
|
bootenv_addr_r=0x49100000
|
||||||
|
fdtoverlay_addr_r=0x49000000
|
||||||
dofastboot=0
|
dofastboot=0
|
||||||
emmc_dev=2
|
emmc_dev=2
|
||||||
fastboot_raw_partition_all=0 4194304
|
fastboot_raw_partition_all=0 4194304
|
||||||
fastboot_raw_partition_bootloader=64 8128
|
fastboot_raw_partition_bootloader=64 8128
|
||||||
fdt_addr=0x48000000
|
fdt_addr_r=0x48000000
|
||||||
fdt_file=CONFIG_DEFAULT_FDT_FILE
|
fdtfile=CONFIG_DEFAULT_FDT_FILE
|
||||||
image=Image
|
image=Image
|
||||||
ip_dyn=yes
|
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}
|
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
|
||||||
mmcargs=
|
mmcargs=
|
||||||
setenv bootargs console=${console}
|
setenv bootargs console=${console}
|
||||||
@ -32,9 +35,15 @@ mmcargs=
|
|||||||
mmcautodetect=yes
|
mmcautodetect=yes
|
||||||
mmcboot=
|
mmcboot=
|
||||||
echo Booting from mmc ...;
|
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;
|
run mmcargs;
|
||||||
if run loadfdt; then
|
if run loadfdt; then
|
||||||
booti ${loadaddr} - ${fdt_addr};
|
run mmc_apply_overlays;
|
||||||
|
booti ${loadaddr} - ${fdt_addr_r};
|
||||||
else
|
else
|
||||||
echo WARN: Cannot load the DT;
|
echo WARN: Cannot load the DT;
|
||||||
fi;
|
fi;
|
||||||
@ -51,10 +60,16 @@ netboot=
|
|||||||
else
|
else
|
||||||
setenv get_cmd tftp;
|
setenv get_cmd tftp;
|
||||||
fi;
|
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};
|
${get_cmd} ${loadaddr} ${image};
|
||||||
run netargs;
|
run netargs;
|
||||||
if ${get_cmd} ${fdt_addr} ${fdt_file}; then
|
if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
|
||||||
booti ${loadaddr} - ${fdt_addr};
|
run net_apply_overlays;
|
||||||
|
booti ${loadaddr} - ${fdt_addr_r};
|
||||||
else
|
else
|
||||||
echo WARN: Cannot load the DT;
|
echo WARN: Cannot load the DT;
|
||||||
fi;
|
fi;
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
|
/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
|
||||||
|
|
||||||
|
#include <env/phytec/overlays.env>
|
||||||
|
|
||||||
image=Image
|
image=Image
|
||||||
console=ttyLP0
|
console=ttyLP0
|
||||||
fdt_addr=0x83000000
|
fdt_addr_r=0x83000000
|
||||||
fdto_addr=0x830c0000
|
fdtoverlay_addr_r=0x830c0000
|
||||||
bootenv_addr=0x83500000
|
bootenv_addr_r=0x83500000
|
||||||
fdt_file=CONFIG_DEFAULT_FDT_FILE
|
fdtfile=CONFIG_DEFAULT_FDT_FILE
|
||||||
ip_dyn=yes
|
ip_dyn=yes
|
||||||
bootenv=bootenv.txt
|
|
||||||
mmc_load_bootenv=fatload mmc ${mmcdev}:${mmcpart} ${bootenv_addr} ${bootenv}
|
|
||||||
mmcdev=CONFIG_SYS_MMC_ENV_DEV
|
mmcdev=CONFIG_SYS_MMC_ENV_DEV
|
||||||
mmcpart=1
|
mmcpart=1
|
||||||
mmcroot=2
|
mmcroot=2
|
||||||
@ -16,43 +16,22 @@ mmcautodetect=yes
|
|||||||
mmcargs=setenv bootargs console=${console},${baudrate} earlycon
|
mmcargs=setenv bootargs console=${console},${baudrate} earlycon
|
||||||
root=/dev/mmcblk${mmcdev}p${mmcroot} ${raucargs} rootwait rw
|
root=/dev/mmcblk${mmcdev}p${mmcroot} ${raucargs} rootwait rw
|
||||||
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
|
loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}
|
||||||
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}
|
loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}
|
||||||
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;
|
|
||||||
mmcboot=
|
mmcboot=
|
||||||
echo Booting from mmc ...;
|
echo Booting from mmc ...;
|
||||||
if run mmc_load_bootenv; then
|
if run mmc_load_bootenv; then
|
||||||
env import -t ${bootenv_addr} ${filesize};
|
env import -t ${bootenv_addr_r} ${filesize};
|
||||||
fi;
|
fi;
|
||||||
run mmcargs;
|
run mmcargs;
|
||||||
if run loadfdt; then
|
if run loadfdt; then
|
||||||
run mmc_apply_overlays;
|
run mmc_apply_overlays;
|
||||||
booti ${loadaddr} - ${fdt_addr};
|
booti ${loadaddr} - ${fdt_addr_r};
|
||||||
else
|
else
|
||||||
echo WARN: Cannot load the DT;
|
echo WARN: Cannot load the DT;
|
||||||
fi;
|
fi;
|
||||||
nfsroot=/nfs
|
nfsroot=/nfs
|
||||||
netargs=setenv bootargs console=${console},${baudrate} earlycon
|
netargs=setenv bootargs console=${console},${baudrate} earlycon
|
||||||
root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
|
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=
|
netboot=
|
||||||
echo Booting from net ...;
|
echo Booting from net ...;
|
||||||
run netargs;
|
run netargs;
|
||||||
@ -62,12 +41,12 @@ netboot=
|
|||||||
setenv get_cmd tftp;
|
setenv get_cmd tftp;
|
||||||
fi;
|
fi;
|
||||||
if run net_load_bootenv; then
|
if run net_load_bootenv; then
|
||||||
env import -t ${bootenv_addr} ${filesize};
|
env import -t ${bootenv_addr_r} ${filesize};
|
||||||
fi;
|
fi;
|
||||||
${get_cmd} ${loadaddr} ${image};
|
${get_cmd} ${loadaddr} ${image};
|
||||||
if ${get_cmd} ${fdt_addr} ${fdt_file}; then
|
if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then
|
||||||
run net_apply_overlays;
|
run net_apply_overlays;
|
||||||
booti ${loadaddr} - ${fdt_addr};
|
booti ${loadaddr} - ${fdt_addr_r};
|
||||||
else
|
else
|
||||||
echo WARN: Cannot load the DT;
|
echo WARN: Cannot load the DT;
|
||||||
fi;
|
fi;
|
||||||
|
@ -13,6 +13,7 @@ CONFIG_DM_GPIO=y
|
|||||||
CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-phyboard-pollux-rdk"
|
CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-phyboard-pollux-rdk"
|
||||||
CONFIG_SPL_TEXT_BASE=0x920000
|
CONFIG_SPL_TEXT_BASE=0x920000
|
||||||
CONFIG_TARGET_PHYCORE_IMX8MP=y
|
CONFIG_TARGET_PHYCORE_IMX8MP=y
|
||||||
|
CONFIG_OF_LIBFDT_OVERLAY=y
|
||||||
CONFIG_SYS_MONITOR_LEN=524288
|
CONFIG_SYS_MONITOR_LEN=524288
|
||||||
CONFIG_SPL_MMC=y
|
CONFIG_SPL_MMC=y
|
||||||
CONFIG_SPL_SERIAL=y
|
CONFIG_SPL_SERIAL=y
|
||||||
@ -51,8 +52,6 @@ CONFIG_SPL_POWER=y
|
|||||||
CONFIG_SPL_WATCHDOG=y
|
CONFIG_SPL_WATCHDOG=y
|
||||||
CONFIG_HUSH_PARSER=y
|
CONFIG_HUSH_PARSER=y
|
||||||
CONFIG_SYS_PROMPT="u-boot=> "
|
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_CRC32 is not set
|
||||||
CONFIG_CMD_EEPROM=y
|
CONFIG_CMD_EEPROM=y
|
||||||
CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
|
CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
|
||||||
@ -76,6 +75,7 @@ CONFIG_CMD_EXT2=y
|
|||||||
CONFIG_CMD_EXT4=y
|
CONFIG_CMD_EXT4=y
|
||||||
CONFIG_CMD_EXT4_WRITE=y
|
CONFIG_CMD_EXT4_WRITE=y
|
||||||
CONFIG_CMD_FAT=y
|
CONFIG_CMD_FAT=y
|
||||||
|
CONFIG_CMD_FS_GENERIC=y
|
||||||
CONFIG_OF_CONTROL=y
|
CONFIG_OF_CONTROL=y
|
||||||
CONFIG_SPL_OF_CONTROL=y
|
CONFIG_SPL_OF_CONTROL=y
|
||||||
CONFIG_ENV_OVERWRITE=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