315 lines
20 KiB
Plaintext
315 lines
20 KiB
Plaintext
COMPATIBLE_MACHINE:append = "|stm32mp157c-dcm"
|
|
|
|
# Ensure fwconfig directory exists before FIP creation
|
|
do_deploy:prepend() {
|
|
bbplain "=== FIP DCM PREPARATION ==="
|
|
|
|
# Get the exact sysroot path that FIP uses
|
|
FIP_SYSROOT="${RECIPE_SYSROOT}"
|
|
FW_CONFIG_DIR="${FIP_SYSROOT}/arm-trusted-firmware/fwconfig"
|
|
|
|
bbplain "FIP_SYSROOT: ${FIP_SYSROOT}"
|
|
bbplain "FW_CONFIG_DIR: ${FW_CONFIG_DIR}"
|
|
|
|
# Create the fwconfig directory if it doesn't exist
|
|
if [ ! -d "${FW_CONFIG_DIR}" ]; then
|
|
bbplain "Creating missing fwconfig directory: ${FW_CONFIG_DIR}"
|
|
mkdir -p "${FW_CONFIG_DIR}"
|
|
else
|
|
bbplain "fwconfig directory already exists"
|
|
fi
|
|
|
|
# Check if fw-config files already exist
|
|
if [ ! -f "${FW_CONFIG_DIR}/fw-config.dtb" ]; then
|
|
bbplain "Creating fw-config DTB files for FIP..."
|
|
|
|
# Method 1: Try to copy from TF-A deploy directory
|
|
TFA_DEPLOY_DIR="${DEPLOY_DIR_IMAGE}"
|
|
if [ -f "${TFA_DEPLOY_DIR}/fw-config.dtb" ]; then
|
|
bbplain "Copying fw-config from TF-A deploy directory"
|
|
cp "${TFA_DEPLOY_DIR}/fw-config.dtb" "${FW_CONFIG_DIR}/"
|
|
else
|
|
bbplain "TF-A fw-config not found in deploy, creating minimal version"
|
|
|
|
# Create minimal binary DTB as fallback
|
|
printf '\xd0\x0d\xfe\xed\x00\x00\x00\x38\x00\x00\x00\x28\x00\x00\x00\x28\x00\x00\x00\x10\x00\x00\x00\x11\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x09\x00\x00\x00' > "${FW_CONFIG_DIR}/fw-config.dtb"
|
|
fi
|
|
|
|
# Create all the naming variants that found_file() function might look for
|
|
if [ -f "${FW_CONFIG_DIR}/fw-config.dtb" ]; then
|
|
cd "${FW_CONFIG_DIR}"
|
|
|
|
# Create all possible naming patterns that the found_file function searches for
|
|
cp fw-config.dtb fw_config.dtb
|
|
|
|
# DTB-STORAGE pattern
|
|
cp fw-config.dtb fw-config-stm32mp157c-dcm-sdcard.dtb
|
|
cp fw-config.dtb fw_config-stm32mp157c-dcm-sdcard.dtb
|
|
|
|
# DTB-CONFIG pattern
|
|
cp fw-config.dtb fw-config-stm32mp157c-dcm-optee-sdcard.dtb
|
|
cp fw-config.dtb fw_config-stm32mp157c-dcm-optee-sdcard.dtb
|
|
|
|
# DTB-SECONDARY_CONFIG pattern
|
|
cp fw-config.dtb fw-config-stm32mp157c-dcm-optee.dtb
|
|
cp fw-config.dtb fw_config-stm32mp157c-dcm-optee.dtb
|
|
|
|
# DTB pattern
|
|
cp fw-config.dtb fw-config-stm32mp157c-dcm.dtb
|
|
cp fw-config.dtb fw_config-stm32mp157c-dcm.dtb
|
|
|
|
# STORAGE pattern
|
|
cp fw-config.dtb fw-config-sdcard.dtb
|
|
cp fw-config.dtb fw_config-sdcard.dtb
|
|
|
|
# CONFIG pattern
|
|
cp fw-config.dtb fw-config-optee-sdcard.dtb
|
|
cp fw-config.dtb fw_config-optee-sdcard.dtb
|
|
|
|
# SECONDARY_CONFIG pattern
|
|
cp fw-config.dtb fw-config-optee.dtb
|
|
cp fw-config.dtb fw_config-optee.dtb
|
|
|
|
# SOC-STORAGE pattern
|
|
cp fw-config.dtb fw-config-stm32mp15-sdcard.dtb
|
|
cp fw-config.dtb fw_config-stm32mp15-sdcard.dtb
|
|
|
|
# SOC-CONFIG pattern
|
|
cp fw-config.dtb fw-config-stm32mp15-optee-sdcard.dtb
|
|
cp fw-config.dtb fw_config-stm32mp15-optee-sdcard.dtb
|
|
|
|
# SOC-SECONDARY_CONFIG pattern
|
|
cp fw-config.dtb fw-config-stm32mp15-optee.dtb
|
|
cp fw-config.dtb fw_config-stm32mp15-optee.dtb
|
|
|
|
# SOC pattern
|
|
cp fw-config.dtb fw-config-stm32mp15.dtb
|
|
cp fw-config.dtb fw_config-stm32mp15.dtb
|
|
|
|
# Legacy machine-specific patterns
|
|
cp fw-config.dtb fw-config-stm32mp157c-dcm.dtb
|
|
cp fw-config.dtb stm32mp157c-dcm-fw-config.dtb
|
|
cp fw-config.dtb stm32mp157c-dcm-fw-config-optee.dtb
|
|
|
|
# CRITICAL: Also create the exact file the FIP script is looking for
|
|
cp fw-config.dtb stm32mp157c-dcm-fw-config.dtb
|
|
|
|
cd -
|
|
|
|
bbplain "Created $(ls -1 ${FW_CONFIG_DIR}/*.dtb | wc -l) fw-config variants"
|
|
fi
|
|
else
|
|
bbplain "fw-config.dtb already exists in fwconfig directory"
|
|
fi
|
|
|
|
# Also ensure OP-TEE files have compatible naming
|
|
OPTEE_DIR="${FIP_SYSROOT}/optee"
|
|
if [ -d "${OPTEE_DIR}" ]; then
|
|
bbplain "Checking OP-TEE file naming compatibility..."
|
|
|
|
# Look for _v2 files and create compatible versions - FIXED Shell syntax
|
|
for file in "${OPTEE_DIR}"/tee-*_v2-*.bin; do
|
|
if [ -f "$file" ]; then
|
|
filename=$(basename "$file")
|
|
|
|
# Create standard naming variants (remove _v2 and long suffixes) - POSIX compatible
|
|
case "$filename" in
|
|
tee-header_v2-*)
|
|
standard_name=$(echo "$filename" | sed 's/_v2-stm32mp157c-dcm-stm32mp157c-dcm/-stm32mp157c-dcm-optee-sdcard/')
|
|
cp "$file" "${OPTEE_DIR}/$standard_name"
|
|
|
|
# Also create simpler variants
|
|
simple_name=$(echo "$filename" | sed 's/_v2-stm32mp157c-dcm-stm32mp157c-dcm//')
|
|
cp "$file" "${OPTEE_DIR}/$simple_name"
|
|
|
|
bbplain "Created OP-TEE header variants: $standard_name, $simple_name"
|
|
;;
|
|
tee-pager_v2-*)
|
|
standard_name=$(echo "$filename" | sed 's/_v2-stm32mp157c-dcm-stm32mp157c-dcm/-stm32mp157c-dcm-optee-sdcard/')
|
|
cp "$file" "${OPTEE_DIR}/$standard_name"
|
|
|
|
simple_name=$(echo "$filename" | sed 's/_v2-stm32mp157c-dcm-stm32mp157c-dcm//')
|
|
cp "$file" "${OPTEE_DIR}/$simple_name"
|
|
|
|
bbplain "Created OP-TEE pager variants: $standard_name, $simple_name"
|
|
;;
|
|
tee-pageable_v2-*)
|
|
standard_name=$(echo "$filename" | sed 's/_v2-stm32mp157c-dcm-stm32mp157c-dcm/-stm32mp157c-dcm-optee-sdcard/')
|
|
cp "$file" "${OPTEE_DIR}/$standard_name"
|
|
|
|
simple_name=$(echo "$filename" | sed 's/_v2-stm32mp157c-dcm-stm32mp157c-dcm//')
|
|
cp "$file" "${OPTEE_DIR}/$simple_name"
|
|
|
|
bbplain "Created OP-TEE pageable variants: $standard_name, $simple_name"
|
|
;;
|
|
esac
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# CRITICAL: Copy fw-config files to ALL possible search paths the FIP script might use
|
|
bbplain "=== COPYING FW-CONFIG TO ALL POSSIBLE SEARCH PATHS ==="
|
|
|
|
if [ -f "${FW_CONFIG_DIR}/fw-config.dtb" ]; then
|
|
# Copy to root arm-trusted-firmware directory (where FIP might expect it)
|
|
ATF_ROOT="${FIP_SYSROOT}/arm-trusted-firmware"
|
|
cp "${FW_CONFIG_DIR}/fw-config.dtb" "${ATF_ROOT}/" 2>/dev/null || true
|
|
cp "${FW_CONFIG_DIR}/fw_config-stm32mp157c-dcm-sdcard.dtb" "${ATF_ROOT}/" 2>/dev/null || true
|
|
cp "${FW_CONFIG_DIR}/fw_config.dtb" "${ATF_ROOT}/" 2>/dev/null || true
|
|
|
|
# CRITICAL: Create the EXACT file the FIP script is looking for
|
|
cp "${FW_CONFIG_DIR}/fw-config.dtb" "${ATF_ROOT}/stm32mp157c-dcm-fw-config.dtb" 2>/dev/null || true
|
|
cp "${FW_CONFIG_DIR}/fw-config.dtb" "${FW_CONFIG_DIR}/stm32mp157c-dcm-fw-config.dtb" 2>/dev/null || true
|
|
|
|
# Copy all variants to ATF root
|
|
for dtb_file in "${FW_CONFIG_DIR}"/*.dtb; do
|
|
if [ -f "$dtb_file" ]; then
|
|
filename=$(basename "$dtb_file")
|
|
cp "$dtb_file" "${ATF_ROOT}/$filename" 2>/dev/null || true
|
|
fi
|
|
done
|
|
|
|
# Copy to any other directories that might exist
|
|
for search_dir in "${FIP_SYSROOT}/arm-trusted-firmware"/*; do
|
|
if [ -d "$search_dir" ]; then
|
|
bbplain "Copying fw-config to: $search_dir"
|
|
cp "${FW_CONFIG_DIR}/fw-config.dtb" "$search_dir/" 2>/dev/null || true
|
|
cp "${FW_CONFIG_DIR}/fw_config-stm32mp157c-dcm-sdcard.dtb" "$search_dir/" 2>/dev/null || true
|
|
cp "${FW_CONFIG_DIR}/fw_config.dtb" "$search_dir/" 2>/dev/null || true
|
|
fi
|
|
done
|
|
|
|
# Also copy to the sysroot root (just in case)
|
|
cp "${FW_CONFIG_DIR}/fw-config.dtb" "${FIP_SYSROOT}/" 2>/dev/null || true
|
|
cp "${FW_CONFIG_DIR}/fw_config-stm32mp157c-dcm-sdcard.dtb" "${FIP_SYSROOT}/" 2>/dev/null || true
|
|
|
|
bbplain "fw-config files copied to all possible search locations"
|
|
fi
|
|
|
|
# CRITICAL: Create enhanced FIP script with runtime patching
|
|
bbplain "=== CREATING ENHANCED FIP SCRIPT ==="
|
|
|
|
FIP_SCRIPT="${RECIPE_SYSROOT_NATIVE}/usr/bin/create_st_fip_binary.sh"
|
|
if [ -f "$FIP_SCRIPT" ]; then
|
|
bbplain "Found FIP script at: $FIP_SCRIPT"
|
|
|
|
# Create a backup
|
|
cp "$FIP_SCRIPT" "${FIP_SCRIPT}.backup" 2>/dev/null || true
|
|
|
|
# Create enhanced found_file function in a separate file
|
|
echo '#!/bin/bash' > "${WORKDIR}/enhanced_found_file.sh"
|
|
echo '' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo 'function found_file(){' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' local path_search=$1' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' local file_prefix=$2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' local file_extension=$3' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM DEBUG: found_file called ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "path_search: $path_search" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "file_prefix: $file_prefix" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "file_extension: $file_extension" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # DCM: Enhanced search for ANY fw-config related prefix' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' if [[ "$file_prefix" == *"fw-config"* ]] || [[ "$file_prefix" == *"fw_config"* ]]; then' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM: Searching for fw-config variant: $file_prefix ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # Try exact match first' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix.$file_extension" ] && echo "$path_search/$file_prefix.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/../fwconfig/$file_prefix.$file_extension" ] && echo "$path_search/../fwconfig/$file_prefix.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/fwconfig/$file_prefix.$file_extension" ] && echo "$path_search/fwconfig/$file_prefix.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # Try our created fw-config files with generic names' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/fwconfig/fw-config.$file_extension" ] && echo "$path_search/fwconfig/fw-config.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/fwconfig/fw_config.$file_extension" ] && echo "$path_search/fwconfig/fw_config.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/../fwconfig/fw-config.$file_extension" ] && echo "$path_search/../fwconfig/fw-config.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/../fwconfig/fw_config.$file_extension" ] && echo "$path_search/../fwconfig/fw_config.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # Try in arm-trusted-firmware root directory' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/../fw-config.$file_extension" ] && echo "$path_search/../fw-config.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/../fw_config.$file_extension" ] && echo "$path_search/../fw_config.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/../$file_prefix.$file_extension" ] && echo "$path_search/../$file_prefix.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM: fw-config variant not found anywhere ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' fi' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # DCM: Enhanced search for OP-TEE files (_v2 variants)' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' if [[ "$file_prefix" == *"tee-"*"_v2"* ]]; then' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM: Searching for OP-TEE variant: $file_prefix ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # Convert _v2 to non-v2 names' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' base_name=$(echo "$file_prefix" | sed "s/_v2//")' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM: Trying base name: $base_name ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # Try our created OP-TEE files' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$base_name.$file_extension" ] && echo "$path_search/$base_name.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$base_name-stm32mp157c-dcm-optee-sdcard.$file_extension" ] && echo "$path_search/$base_name-stm32mp157c-dcm-optee-sdcard.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$base_name-stm32mp157c-dcm-optee.$file_extension" ] && echo "$path_search/$base_name-stm32mp157c-dcm-optee.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$base_name-stm32mp157c-dcm.$file_extension" ] && echo "$path_search/$base_name-stm32mp157c-dcm.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM: OP-TEE variant not found ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' fi' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # DCM: Enhanced search for U-Boot files' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' if [[ "$file_prefix" == *"u-boot"* ]]; then' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM: Searching for U-Boot variant: $file_prefix ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # Try common U-Boot naming patterns' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-stm32mp15-default.$file_extension" ] && echo "$path_search/$file_prefix-stm32mp15-default.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-stm32mp157c-dcm.$file_extension" ] && echo "$path_search/$file_prefix-stm32mp157c-dcm.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-stm32mp15.$file_extension" ] && echo "$path_search/$file_prefix-stm32mp15.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "=== DCM: U-Boot variant not found ===" >&2' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' fi' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' # Original search strategy' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_DTB-$SEARCH_STORAGE.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_DTB-$SEARCH_STORAGE.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_DTB-$SEARCH_CONFIG.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_DTB-$SEARCH_CONFIG.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_DTB.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_DTB.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_STORAGE.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_STORAGE.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_CONFIG.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_CONFIG.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_SOC_NAME-$SEARCH_STORAGE.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_SOC_NAME-$SEARCH_STORAGE.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_SOC_NAME-$SEARCH_CONFIG.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_SOC_NAME-$SEARCH_CONFIG.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' [ -e "$path_search/$file_prefix-$SEARCH_SOC_NAME.$file_extension" ] && echo "$path_search/$file_prefix-$SEARCH_SOC_NAME.$file_extension" && return' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' ' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo ' echo "NOTFOUND"' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo '}' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
echo '' >> "${WORKDIR}/enhanced_found_file.sh"
|
|
|
|
# Create new FIP script that sources our enhanced function first
|
|
echo '#!/bin/bash' > "${FIP_SCRIPT}.new"
|
|
echo '' >> "${FIP_SCRIPT}.new"
|
|
echo '# DCM Enhanced FIP Script' >> "${FIP_SCRIPT}.new"
|
|
echo 'echo "=== DCM FIP SCRIPT PATCH ACTIVE ===" >&2' >> "${FIP_SCRIPT}.new"
|
|
echo '' >> "${FIP_SCRIPT}.new"
|
|
|
|
# Add our enhanced found_file function
|
|
cat "${WORKDIR}/enhanced_found_file.sh" >> "${FIP_SCRIPT}.new"
|
|
|
|
# Add the original script content, excluding the original found_file function
|
|
awk '
|
|
BEGIN { in_function = 0; skip_shebang = 1 }
|
|
/^#!/ && skip_shebang { skip_shebang = 0; next }
|
|
/^function found_file/ { in_function = 1; next }
|
|
in_function && /^}$/ { in_function = 0; next }
|
|
!in_function { print }
|
|
' "${FIP_SCRIPT}.backup" >> "${FIP_SCRIPT}.new"
|
|
|
|
# Replace the original script
|
|
mv "${FIP_SCRIPT}.new" "$FIP_SCRIPT"
|
|
chmod +x "$FIP_SCRIPT"
|
|
bbplain "FIP script enhanced successfully"
|
|
else
|
|
bbwarn "FIP script not found at $FIP_SCRIPT"
|
|
fi
|
|
|
|
# Final verification
|
|
if [ -d "${FW_CONFIG_DIR}" ]; then
|
|
FILE_COUNT=$(ls -1 "${FW_CONFIG_DIR}"/*.dtb 2>/dev/null | wc -l)
|
|
bbplain "✓ FW_conf directory verified: ${FW_CONFIG_DIR} contains ${FILE_COUNT} DTB files"
|
|
else
|
|
bbfatal "✗ FW_conf directory still missing: ${FW_CONFIG_DIR}"
|
|
fi
|
|
|
|
bbplain "=== FIP DCM PREPARATION COMPLETED ==="
|
|
}
|