u-boot: boot.txt: move dualboot checks to the top

When DualBoot mechanism is enabled and an update is pending,
the boot script needs to change certain variables and save the
environment.
The regular boot script already changes a number of variables,
such as 'extra_bootargs' and 'overlays' by appending strings to
the already existing values. Saving the envionment may make these
grow endlessly with each iteration of the boot script.

For this reason, move the DualBoot check as the first thing in
the script, save the environment if needed, and then continue
with the normal flow, that changes variables before booting
but doesn't save them.

On certain scripts, this allows us to get rid of some instructions
for resetting the overlays variable.

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
This commit is contained in:
Hector Palacios 2021-09-09 12:46:33 +02:00
parent 27c13055eb
commit 05d21a1310
8 changed files with 355 additions and 331 deletions

View File

@ -2,28 +2,10 @@
# U-Boot bootscript for EMMC/SD images created by Yocto. # U-Boot bootscript for EMMC/SD images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_extra_bootargs ${extra_bootargs} # if an upgrade is available. This requires the script to change some variables
# and save them, while the rest of the script changes variables only temporarily
# # without saving them.
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file imx6qp-ccimx6qpsbc-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x01"; then
setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb
elif test "${module_variant}" = "0x02"; then
setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6qp-ccimx6qpsbc.dtb
else
setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb
fi
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -90,6 +72,31 @@ else
setenv mmcroot /dev/mmcblk${mmcbootdev}p2 setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
fi fi
# Back up environment variables
setenv ORIG_extra_bootargs ${extra_bootargs}
#
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file imx6qp-ccimx6qpsbc-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x01"; then
setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb
elif test "${module_variant}" = "0x02"; then
setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6qp-ccimx6qpsbc.dtb
else
setenv fdt_file imx6qp-ccimx6qpsbc-wb.dtb
fi
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux mmc ${mmcbootdev}:${mmcpart} dboot linux mmc ${mmcbootdev}:${mmcpart}

View File

@ -2,56 +2,10 @@
# U-Boot bootscript for EMMC/SD images created by Yocto. # U-Boot bootscript for EMMC/SD images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_extra_bootargs ${extra_bootargs} # if an upgrade is available. This requires the script to change some variables
# and save them, while the rest of the script changes variables only temporarily
# # without saving them.
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file ${soc_family}-ccimx6sbc-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x02"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x04"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x05"; then
setenv fdt_file imx6q-ccimx6sbc-w.dtb
elif test "${module_variant}" = "0x06"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x08"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x0a"; then
setenv fdt_file imx6dl-ccimx6sbc-w.dtb
elif test "${module_variant}" = "0x0b"; then
setenv fdt_file imx6dl-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x0c"; then
setenv fdt_file imx6dl-ccimx6sbc.dtb
elif test "${module_variant}" = "0x0e"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x0f"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x11"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x12"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x13"; then
setenv fdt_file imx6dl-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x14"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x15"; then
setenv fdt_file imx6dl-ccimx6sbc.dtb
elif test "${module_variant}" = "0x16"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
else
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
fi
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -118,6 +72,59 @@ else
setenv mmcroot /dev/mmcblk${mmcbootdev}p2 setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
fi fi
# Back up environment variables
setenv ORIG_extra_bootargs ${extra_bootargs}
#
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file ${soc_family}-ccimx6sbc-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x02"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x04"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x05"; then
setenv fdt_file imx6q-ccimx6sbc-w.dtb
elif test "${module_variant}" = "0x06"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x08"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x0a"; then
setenv fdt_file imx6dl-ccimx6sbc-w.dtb
elif test "${module_variant}" = "0x0b"; then
setenv fdt_file imx6dl-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x0c"; then
setenv fdt_file imx6dl-ccimx6sbc.dtb
elif test "${module_variant}" = "0x0e"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x0f"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x11"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x12"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x13"; then
setenv fdt_file imx6dl-ccimx6sbc-wb.dtb
elif test "${module_variant}" = "0x14"; then
setenv fdt_file imx6q-ccimx6sbc.dtb
elif test "${module_variant}" = "0x15"; then
setenv fdt_file imx6dl-ccimx6sbc.dtb
elif test "${module_variant}" = "0x16"; then
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
else
setenv fdt_file imx6q-ccimx6sbc-wb.dtb
fi
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux mmc ${mmcbootdev}:${mmcpart} dboot linux mmc ${mmcbootdev}:${mmcpart}

View File

@ -2,40 +2,10 @@
# U-Boot bootscript for NAND images created by Yocto. # U-Boot bootscript for NAND images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_extra_bootargs ${extra_bootargs} # if an upgrade is available. This requires the script to change some variables
# and save them, while the rest of the script changes variables only temporarily
# # without saving them.
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file imx6ul-ccimx6ulsbc-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x02"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6ul-ccimx6ulsbc.dtb
elif test "${module_variant}" = "0x04"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x05"; then
setenv fdt_file imx6ul-ccimx6ulsbc.dtb
elif test "${module_variant}" = "0x06"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x07"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x08"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x09"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x0a"; then
setenv fdt_file imx6ul-ccimx6ulsbc.dtb
else
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
fi
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -81,6 +51,43 @@ else
true true
fi fi
fi fi
# Back up environment variables
setenv ORIG_extra_bootargs ${extra_bootargs}
#
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file imx6ul-ccimx6ulsbc-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x02"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6ul-ccimx6ulsbc.dtb
elif test "${module_variant}" = "0x04"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x05"; then
setenv fdt_file imx6ul-ccimx6ulsbc.dtb
elif test "${module_variant}" = "0x06"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x07"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x08"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x09"; then
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
elif test "${module_variant}" = "0x0a"; then
setenv fdt_file imx6ul-ccimx6ulsbc.dtb
else
setenv fdt_file imx6ul-ccimx6ulsbc-wb.dtb
fi
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux nand ${mtdbootpart} dboot linux nand ${mtdbootpart}

View File

@ -2,40 +2,10 @@
# U-Boot bootscript for NAND images created by Yocto. # U-Boot bootscript for NAND images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_extra_bootargs ${extra_bootargs} # if an upgrade is available. This requires the script to change some variables
# and save them, while the rest of the script changes variables only temporarily
# # without saving them.
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file imx6ul-ccimx6ulstarter-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x02"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6ul-ccimx6ulstarter.dtb
elif test "${module_variant}" = "0x04"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x05"; then
setenv fdt_file imx6ul-ccimx6ulstarter.dtb
elif test "${module_variant}" = "0x06"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x07"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x08"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x09"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x0a"; then
setenv fdt_file imx6ul-ccimx6ulstarter.dtb
else
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
fi
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -81,6 +51,43 @@ else
true true
fi fi
fi fi
# Back up environment variables
setenv ORIG_extra_bootargs ${extra_bootargs}
#
# Set device tree filename depending on the board ID (if defined)
#
if test -n "${board_id}"; then
setenv fdt_file imx6ul-ccimx6ulstarter-id${board_id}.dtb
else
#
# Set device tree filename depending on the hardware variant
#
if test "${module_variant}" = "0x02"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x03"; then
setenv fdt_file imx6ul-ccimx6ulstarter.dtb
elif test "${module_variant}" = "0x04"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x05"; then
setenv fdt_file imx6ul-ccimx6ulstarter.dtb
elif test "${module_variant}" = "0x06"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x07"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x08"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x09"; then
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
elif test "${module_variant}" = "0x0a"; then
setenv fdt_file imx6ul-ccimx6ulstarter.dtb
else
setenv fdt_file imx6ul-ccimx6ulstarter-wb.dtb
fi
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux nand ${mtdbootpart} dboot linux nand ${mtdbootpart}

View File

@ -2,44 +2,10 @@
# U-Boot bootscript for EMMC/SD images created by Yocto. # U-Boot bootscript for EMMC/SD images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_overlays ${overlays} # if an upgrade is available. This requires the script to change some variables
setenv ORIG_extra_bootargs ${extra_bootargs} # and save them, while the rest of the script changes variables only temporarily
# without saving them.
# Set SOC type to "imx8mm" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8mm"
fi
# Reset overlays when using dualboot mode, because we need to
# save the environment in case of an installation fall back.
if test "${dual_boot}" = "yes"; then
if test -n "${overlays}"; then
setenv overlays
fi
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr som_hv ${hwid_2} \& 38
setexpr som_hv ${som_hv} / 8
setexpr module_has_wifi ${hwid_2} \& 10000
setexpr module_has_wifi ${module_has_wifi} / 10000
setexpr module_has_bt ${hwid_2} \& 20000
setexpr module_has_bt ${module_has_bt} / 20000
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8m.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8m.dtbo,${overlays}
fi
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -106,6 +72,39 @@ else
setenv mmcroot /dev/mmcblk${mmcbootdev}p2 setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
fi fi
# Back up environment variables
setenv ORIG_overlays ${overlays}
setenv ORIG_extra_bootargs ${extra_bootargs}
# Set SOC type to "imx8mm" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8mm"
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr som_hv ${hwid_2} \& 38
setexpr som_hv ${som_hv} / 8
setexpr module_has_wifi ${hwid_2} \& 10000
setexpr module_has_wifi ${module_has_wifi} / 10000
setexpr module_has_bt ${hwid_2} \& 20000
setexpr module_has_bt ${module_has_bt} / 20000
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8m.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8m.dtbo,${overlays}
fi
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux mmc ${mmcbootdev}:${mmcpart} dboot linux mmc ${mmcbootdev}:${mmcpart}

View File

@ -2,53 +2,10 @@
# U-Boot bootscript for EMMC/SD images created by Yocto. # U-Boot bootscript for EMMC/SD images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_overlays ${overlays} # if an upgrade is available. This requires the script to change some variables
setenv ORIG_extra_bootargs ${extra_bootargs} # and save them, while the rest of the script changes variables only temporarily
# without saving them.
# Set SOC type to "imx8mn" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8mn"
fi
# Reset overlays when using dualboot mode, because we need to
# save the environment in case of an installation fall back.
if test "${dual_boot}" = "yes"; then
if test -n "${overlays}"; then
setenv overlays
fi
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr som_hv ${hwid_2} \& 38
setexpr som_hv ${som_hv} / 8
setexpr module_has_wifi ${hwid_2} \& 10000
setexpr module_has_wifi ${module_has_wifi} / 10000
setexpr module_has_bt ${hwid_2} \& 20000
setexpr module_has_bt ${module_has_bt} / 20000
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8m.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8m.dtbo,${overlays}
fi
if test "${som_hv}" = "1"; then
setenv overlays _ov_som_v1_ccimx8mn.dtbo,${overlays}
fi
fi
# Apply DVK v1-v2 overlay if the board version is < 3
if test "${board_version}" -lt "3"; then
setenv overlays _ov_board_v1-v2_ccimx8mn-dvk.dtbo,${overlays}
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -68,7 +25,7 @@ if test "${dualboot}" = "yes"; then
else else
part number mmc ${mmcbootdev} linux_a pi part number mmc ${mmcbootdev} linux_a pi
setenv mmcpart ${pi} setenv mmcpart ${pi}
# Save the partition index on variable rootfs_b_index # Save the partition index on variable rootfs_a_index
part number mmc ${mmcbootdev} rootfs_a rootfs_a_index part number mmc ${mmcbootdev} rootfs_a rootfs_a_index
# Save the rootfs_a UUID into mmcroot_a # Save the rootfs_a UUID into mmcroot_a
part uuid mmc ${mmcbootdev}:${rootfs_a_index} mmcroot_a part uuid mmc ${mmcbootdev}:${rootfs_a_index} mmcroot_a
@ -115,6 +72,48 @@ else
setenv mmcroot /dev/mmcblk${mmcbootdev}p2 setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
fi fi
# Back up environment variables
setenv ORIG_overlays ${overlays}
setenv ORIG_extra_bootargs ${extra_bootargs}
# Set SOC type to "imx8mn" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8mn"
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr som_hv ${hwid_2} \& 38
setexpr som_hv ${som_hv} / 8
setexpr module_has_wifi ${hwid_2} \& 10000
setexpr module_has_wifi ${module_has_wifi} / 10000
setexpr module_has_bt ${hwid_2} \& 20000
setexpr module_has_bt ${module_has_bt} / 20000
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8m.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8m.dtbo,${overlays}
fi
if test "${som_hv}" = "1"; then
setenv overlays _ov_som_v1_ccimx8mn.dtbo,${overlays}
fi
fi
# Apply DVK v1-v2 overlay if the board version is < 3
if test "${board_version}" -lt "3"; then
setenv overlays _ov_board_v1-v2_ccimx8mn-dvk.dtbo,${overlays}
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux mmc ${mmcbootdev}:${mmcpart} dboot linux mmc ${mmcbootdev}:${mmcpart}

View File

@ -2,56 +2,10 @@
# U-Boot bootscript for EMMC/SD images created by Yocto. # U-Boot bootscript for EMMC/SD images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_overlays ${overlays} # if an upgrade is available. This requires the script to change some variables
setenv ORIG_extra_bootargs ${extra_bootargs} # and save them, while the rest of the script changes variables only temporarily
# without saving them.
# Set SOC type to "imx8qxp" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8qxp"
fi
# Reset overlays when using dualboot mode, because we need to
# save the environment in case of an installation fall back.
if test "${dual_boot}" = "yes"; then
if test -n "${overlays}"; then
setenv overlays
fi
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr module_has_wifi ${hwid_3} \& 1
setexpr module_has_bt ${hwid_3} \& 2
setexpr module_has_bt ${module_has_bt} / 2
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
else
#
# Set overlays depending on the hardware variant
#
if test "${module_variant}" = "0x01"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x02"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x04"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
fi
# Apply QXP overlay if the SOC type is "imx8qxp"
if test "${soc_type}" = "imx8qxp"; then
setenv overlays _ov_som_quad_ccimx8x.dtbo,${overlays}
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -118,6 +72,51 @@ else
setenv mmcroot /dev/mmcblk${mmcbootdev}p2 setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
fi fi
# Back up environment variables
setenv ORIG_overlays ${overlays}
setenv ORIG_extra_bootargs ${extra_bootargs}
# Set SOC type to "imx8qxp" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8qxp"
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr module_has_wifi ${hwid_3} \& 1
setexpr module_has_bt ${hwid_3} \& 2
setexpr module_has_bt ${module_has_bt} / 2
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
else
#
# Set overlays depending on the hardware variant
#
if test "${module_variant}" = "0x01"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x02"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x04"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
fi
# Apply QXP overlay if the SOC type is "imx8qxp"
if test "${soc_type}" = "imx8qxp"; then
setenv overlays _ov_som_quad_ccimx8x.dtbo,${overlays}
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux mmc ${mmcbootdev}:${mmcpart} dboot linux mmc ${mmcbootdev}:${mmcpart}

View File

@ -2,61 +2,10 @@
# U-Boot bootscript for EMMC/SD images created by Yocto. # U-Boot bootscript for EMMC/SD images created by Yocto.
# #
# Back up environment variables # As the first step in the boot script, check if we are using DualBoot and
setenv ORIG_overlays ${overlays} # if an upgrade is available. This requires the script to change some variables
setenv ORIG_extra_bootargs ${extra_bootargs} # and save them, while the rest of the script changes variables only temporarily
# without saving them.
# Set SOC type to "imx8qxp" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8qxp"
fi
# Reset overlays when using dualboot mode, because we need to
# save the environment in case of an installation fall back.
if test "${dual_boot}" = "yes"; then
if test -n "${overlays}"; then
setenv overlays
fi
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr module_has_wifi ${hwid_3} \& 1
setexpr module_has_bt ${hwid_3} \& 2
setexpr module_has_bt ${module_has_bt} / 2
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
else
#
# Set overlays depending on the hardware variant
#
if test "${module_variant}" = "0x01"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x02"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x04"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
fi
# Apply QXP overlay if the SOC type is "imx8qxp"
if test "${soc_type}" = "imx8qxp"; then
setenv overlays _ov_som_quad_ccimx8x.dtbo,${overlays}
fi
# Apply SBCv3 overlay if the board_version is 3 or lesser
if test "${board_version}" -le "3"; then
setenv overlays _ov_board_v1-v3_ccimx8x-sbc-pro.dtbo,${overlays}
fi
# Dual boot update verification # Dual boot update verification
if test "${dualboot}" = "yes"; then if test "${dualboot}" = "yes"; then
@ -123,6 +72,56 @@ else
setenv mmcroot /dev/mmcblk${mmcbootdev}p2 setenv mmcroot /dev/mmcblk${mmcbootdev}p2
fi fi
fi fi
# Back up environment variables
setenv ORIG_overlays ${overlays}
setenv ORIG_extra_bootargs ${extra_bootargs}
# Set SOC type to "imx8qxp" if not already defined by U-Boot
if test ! -n "${soc_type}"; then
setenv soc_type "imx8qxp"
fi
#
# Determine overlays to apply depending on the hardware capabilities
# described by the HWID, SOM version, and carrier board version.
#
if test -n "${module_ram}"; then
setexpr module_has_wifi ${hwid_3} \& 1
setexpr module_has_bt ${hwid_3} \& 2
setexpr module_has_bt ${module_has_bt} / 2
if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,${overlays}
fi
if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then
setenv overlays _ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
else
#
# Set overlays depending on the hardware variant
#
if test "${module_variant}" = "0x01"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x02"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
elif test "${module_variant}" = "0x04"; then
setenv overlays _ov_som_bt_ccimx8x.dtbo,_ov_som_wifi_ccimx8x.dtbo,${overlays}
fi
fi
# Apply QXP overlay if the SOC type is "imx8qxp"
if test "${soc_type}" = "imx8qxp"; then
setenv overlays _ov_som_quad_ccimx8x.dtbo,${overlays}
fi
# Apply SBCv3 overlay if the board_version is 3 or lesser
if test "${board_version}" -le "3"; then
setenv overlays _ov_board_v1-v3_ccimx8x-sbc-pro.dtbo,${overlays}
fi
setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs} setenv extra_bootargs fbcon=logo-pos:center ${extra_bootargs}
dboot linux mmc ${mmcbootdev}:${mmcpart} dboot linux mmc ${mmcbootdev}:${mmcpart}