boot: don't set fdt_file on bootscript; just the overlays
With the device tree overlays mechanism in place, the bootscript doesn't need to set the fdt_file variable. Instead, it will use the value it has (which can be changed by the user) and it will simply update the 'overlays' variable with the device tree overlays that apply basing on the hardware capabilities found on the HWID, SOM version, and carrier board version. This allows a user to override the default fdt_file to point to his custom device tree, but still make use of the boot script for hardware-detected overlays. Without the need to set the base filename, the boot script is the same for any carrier board of the ccimx8x SOM, so this commit moves it to a common folder. Signed-off-by: Hector Palacios <hector.palacios@digi.com>
This commit is contained in:
parent
c2d20ce86c
commit
f58ccb7463
|
|
@ -8,36 +8,28 @@ if test ! -n "${soc_type}"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set device tree filename depending on the board ID (if defined)
|
# Determine overlays to apply depending on the hardware capabilities
|
||||||
|
# described by the HWID, SOM version, and carrier board version.
|
||||||
#
|
#
|
||||||
if test -n "${board_id}"; then
|
if test -n "${module_ram}"; then
|
||||||
setenv fdt_file cc${soc_type}-dvk-id${board_id}.dtb
|
setexpr som_hv ${hwid_2} \& 38
|
||||||
else
|
setexpr som_hv ${som_hv} / 8
|
||||||
#
|
|
||||||
# Set device tree filename depending on the hardware capabilities
|
|
||||||
#
|
|
||||||
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 ${hwid_2} \& 10000
|
||||||
setexpr module_has_wifi ${module_has_wifi} / 10000
|
setexpr module_has_wifi ${module_has_wifi} / 10000
|
||||||
setexpr module_has_bt ${hwid_2} \& 20000
|
setexpr module_has_bt ${hwid_2} \& 20000
|
||||||
setexpr module_has_bt ${module_has_bt} / 20000
|
setexpr module_has_bt ${module_has_bt} / 20000
|
||||||
|
|
||||||
setenv fdt_file cc${soc_type}-dvk.dtb
|
if test "${module_has_bt}" = "1"; then
|
||||||
|
setenv overlays cc${soc_type}_ov_bt.dtbo,${overlays}
|
||||||
|
fi
|
||||||
|
|
||||||
if test "${module_has_bt}" = "1"; then
|
if test "${module_has_wifi}" = "1"; then
|
||||||
setenv overlays cc${soc_type}_ov_bt.dtbo,${overlays}
|
setenv overlays cc${soc_type}_ov_wifi.dtbo,${overlays}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "${module_has_wifi}" = "1"; then
|
if test "${som_hv}" = "1"; then
|
||||||
setenv overlays cc${soc_type}_ov_wifi.dtbo,${overlays}
|
setenv overlays cc${soc_type}_ov_v1.dtbo,${overlays}
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${som_hv}" = "1"; then
|
|
||||||
setenv overlays cc${soc_type}_ov_v1.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
#
|
|
||||||
# U-Boot bootscript for EMMC/SD images created by Yocto.
|
|
||||||
#
|
|
||||||
|
|
||||||
# Set SOC type to "imx8qxp" if not already defined by U-Boot
|
|
||||||
if test ! -n "${soc_type}"; then
|
|
||||||
setenv soc_type "imx8qxp"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set the base device tree filename
|
|
||||||
#
|
|
||||||
setenv fdt_file ccimx8x-sbc-express.dtb
|
|
||||||
|
|
||||||
#
|
|
||||||
# Set predetermined overlays for specific board IDs
|
|
||||||
#
|
|
||||||
if test "${board_id}" = "129"; then
|
|
||||||
setenv overlays ccimx8x_ov_bt.dtbo,ccimx8x_ov_wifi.dtbo,${overlays}
|
|
||||||
else
|
|
||||||
#
|
|
||||||
# Set overlays depending on the hardware capabilities
|
|
||||||
#
|
|
||||||
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"; then
|
|
||||||
setenv overlays ccimx8x_ov_bt.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${module_has_wifi}" = "1"; then
|
|
||||||
setenv overlays ccimx8x_ov_wifi.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
#
|
|
||||||
# Set overlays depending on the hardware variant
|
|
||||||
#
|
|
||||||
if test "${module_variant}" = "0x01" ||
|
|
||||||
test "${module_variant}" = "0x02" ||
|
|
||||||
test "${module_variant}" = "0x04"; then
|
|
||||||
setenv overlays ccimx8x_ov_bt.dtbo,ccimx8x_ov_wifi.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Apply QXP overlay if the SOC type is "imx8qxp"
|
|
||||||
if test "${soc_type}" = "imx8qxp""; then
|
|
||||||
setenv overlays ccimx8x_ov_qxp.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Get the UUID of the configured boot partition.
|
|
||||||
part uuid mmc ${mmcbootdev}:${mmcpart} bootpart
|
|
||||||
# Check the boot source.
|
|
||||||
if test "${bootpart}" = "${part1_uuid}"; then
|
|
||||||
# We are booting from the eMMC using 'linux'.
|
|
||||||
true
|
|
||||||
elif test "${bootpart}" = "${part2_uuid}"; then
|
|
||||||
# We are booting from the eMMC using 'recovery'.
|
|
||||||
setenv boot_initrd true
|
|
||||||
setenv initrd_file uramdisk-recovery.img
|
|
||||||
else
|
|
||||||
# We are booting from the SD card.
|
|
||||||
setenv mmcroot /dev/mmcblk${mmcbootdev}p2
|
|
||||||
fi
|
|
||||||
dboot linux mmc ${mmcbootdev}:${mmcpart}
|
|
||||||
|
|
@ -8,40 +8,29 @@ if test ! -n "${soc_type}"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Set the base device tree filename
|
# Determine overlays to apply depending on the hardware capabilities
|
||||||
|
# described by the HWID, SOM version, and carrier board version.
|
||||||
#
|
#
|
||||||
setenv fdt_file ccimx8x-sbc-pro.dtb
|
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"; then
|
||||||
# Set predetermined overlays for specific board IDs
|
setenv overlays ccimx8x_ov_bt.dtbo,${overlays}
|
||||||
#
|
fi
|
||||||
if test "${board_id}" = "135"; then
|
|
||||||
setenv overlays ccimx8x_ov_bt.dtbo,ccimx8x_ov_wifi.dtbo,${overlays}
|
if test "${module_has_wifi}" = "1"; then
|
||||||
|
setenv overlays ccimx8x_ov_wifi.dtbo,${overlays}
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
#
|
#
|
||||||
# Set overlays depending on the hardware capabilities
|
# Set overlays depending on the hardware variant
|
||||||
#
|
#
|
||||||
if test -n "${module_ram}"; then
|
if test "${module_variant}" = "0x01" ||
|
||||||
setexpr module_has_wifi ${hwid_3} \& 1
|
test "${module_variant}" = "0x02" ||
|
||||||
setexpr module_has_bt ${hwid_3} \& 2
|
test "${module_variant}" = "0x04"; then
|
||||||
setexpr module_has_bt ${module_has_bt} / 2
|
setenv overlays ccimx8x_ov_bt.dtbo,ccimx8x_ov_wifi.dtbo,${overlays}
|
||||||
|
|
||||||
if test "${module_has_bt}" = "1"; then
|
|
||||||
setenv overlays ccimx8x_ov_bt.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${module_has_wifi}" = "1"; then
|
|
||||||
setenv overlays ccimx8x_ov_wifi.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
#
|
|
||||||
# Set overlays depending on the hardware variant
|
|
||||||
#
|
|
||||||
if test "${module_variant}" = "0x01" ||
|
|
||||||
test "${module_variant}" = "0x02" ||
|
|
||||||
test "${module_variant}" = "0x04"; then
|
|
||||||
setenv overlays ccimx8x_ov_bt.dtbo,ccimx8x_ov_wifi.dtbo,${overlays}
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
Loading…
Reference in New Issue