kernel-fitImage: only include valid compatible line

Without this commit the configuration node includes the compatible
line 'compatible = [00];' if EXTERNAL_KERNEL_DEVICETREE is not
defined, i.e. if PREFERRED_PROVIDER_virtual/dtb is not used.
This prevents u-boot from using this configuration and it prints the
message "Could not find configuration node".

An additional check also ensures that the written compatible line
never contains an empty compatible.

The functionality to add the compatible line was added in commit
f4c82fb6da89 ("kernel-fitImage: add machine compatible to config
section").

(From OE-Core rev: f8f3a52b2f924789552e6a3f889162ff07e0887f)

Signed-off-by: Christian Taedcke <christian.taedcke@weidmueller.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Christian Taedcke
2024-03-06 08:43:00 -08:00
committed by Richard Purdie
parent ca829f14e0
commit 125771c16f

View File

@@ -421,6 +421,7 @@ fitimage_emit_section_config() {
bootscr_line=""
setup_line=""
default_line=""
compatible_line=""
dtb_image_sect=$(symlink_points_below $dtb_image "${EXTERNAL_KERNEL_DEVICETREE}")
if [ -z "$dtb_image_sect" ]; then
@@ -428,7 +429,12 @@ fitimage_emit_section_config() {
fi
dtb_path="${EXTERNAL_KERNEL_DEVICETREE}/${dtb_image_sect}"
compatible_line="compatible = \"$(fdtget "$dtb_path" / compatible | sed 's/ /", "/g')\";"
if [ -e "$dtb_path" ]; then
compat=$(fdtget -t s "$dtb_path" / compatible | sed 's/ /", "/g')
if [ -n "$compat" ]; then
compatible_line="compatible = \"$compat\";"
fi
fi
dtb_image=$(echo $dtb_image | tr '/' '_')
dtb_image_sect=$(echo "${dtb_image_sect}" | tr '/' '_')