extensions: gxlimg: Add new function to repack FIP with u-boot.bin
This commit is contained in:
parent
8b0f9ad1ef
commit
6fcbc04929
@ -25,42 +25,7 @@ function post_family_config__use_repacked_fip() {
|
||||
}
|
||||
|
||||
function post_uboot_custom_postprocess__repack_vendor_fip_with_mainline_uboot() {
|
||||
display_alert "${BOARD}" "Repacking vendor FIP with mainline u-boot.bin" "info"
|
||||
|
||||
BLOBS_DIR="${SRC}/cache/sources/amlogic-fip-blobs/cainiao-cniot-core"
|
||||
EXTRACT_DIR="${BLOBS_DIR}/extract"
|
||||
|
||||
rm -rf "$EXTRACT_DIR"
|
||||
mkdir "$EXTRACT_DIR"
|
||||
run_host_command_logged gxlimg -e "${BLOBS_DIR}/DDR.USB" "$EXTRACT_DIR"
|
||||
|
||||
mv u-boot.bin raw-u-boot.bin
|
||||
rm -f "${EXTRACT_DIR}/bl33.enc"
|
||||
run_host_command_logged gxlimg \
|
||||
-t bl3x \
|
||||
-s raw-u-boot.bin \
|
||||
"${EXTRACT_DIR}/bl33.enc"
|
||||
run_host_command_logged gxlimg \
|
||||
-t fip \
|
||||
--bl2 "${EXTRACT_DIR}/bl2.sign" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/piei.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr3_1d.fw" \
|
||||
--bl30 "${EXTRACT_DIR}/bl30.enc" \
|
||||
--bl31 "${EXTRACT_DIR}/bl31.enc" \
|
||||
--bl33 "${EXTRACT_DIR}/bl33.enc" \
|
||||
--rev v3 u-boot.bin
|
||||
|
||||
if [ ! -s u-boot.bin ]; then
|
||||
display_alert "${BOARD}" "FIP repack produced empty u-boot.bin" "err"
|
||||
exit 1
|
||||
fi
|
||||
gxlimg_repack_fip_with_new_uboot "${SRC}/cache/sources/amlogic-fip-blobs/cainiao-cniot-core/DDR.USB" g12b
|
||||
}
|
||||
|
||||
function post_family_tweaks_bsp__cainiao-cniot-core() {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function fetch_sources_tools__gxlimg() {
|
||||
fetch_from_repo "https://github.com/retro98boy/gxlimg" "gxlimg" "commit:fde6a3dd0e13875a5b219389c0a6137616eaebdb"
|
||||
fetch_from_repo "${GITHUB_SOURCE}/retro98boy/gxlimg" "gxlimg" "commit:fde6a3dd0e13875a5b219389c0a6137616eaebdb"
|
||||
}
|
||||
|
||||
function build_host_tools__compile_gxlimg() {
|
||||
@ -16,3 +16,91 @@ function build_host_tools__compile_gxlimg() {
|
||||
git rev-parse @ 2> /dev/null > .commit_id
|
||||
fi
|
||||
}
|
||||
|
||||
# This function extracts bl2 and bl3x from the old FIP and repackages them with the new u-boot.bin into a FIP
|
||||
# $1 path to old FIP file
|
||||
# $2 SoC family
|
||||
function gxlimg_repack_fip_with_new_uboot() {
|
||||
display_alert "${BOARD}" "Repacking FIP with new u-boot.bin" "info"
|
||||
|
||||
if [[ ! -f "$1" ]]; then
|
||||
exit_with_error "FIP file $1 does not exist"
|
||||
fi
|
||||
if [[ ! -f u-boot.bin ]]; then
|
||||
exit_with_error "u-boot.bin not found under $(pwd)"
|
||||
fi
|
||||
|
||||
mv u-boot.bin raw-u-boot.bin
|
||||
EXTRACT_DIR=$(mktemp -d)
|
||||
trap 'rm -rf "$EXTRACT_DIR"' EXIT
|
||||
run_host_command_logged gxlimg -e "$1" "$EXTRACT_DIR"
|
||||
rm -f "${EXTRACT_DIR}/bl33.enc"
|
||||
|
||||
case $2 in
|
||||
gxl)
|
||||
run_host_command_logged gxlimg \
|
||||
-t bl3x \
|
||||
-c raw-u-boot.bin \
|
||||
"${EXTRACT_DIR}/bl33.enc"
|
||||
|
||||
run_host_command_logged gxlimg \
|
||||
-t fip \
|
||||
--bl2 "${EXTRACT_DIR}/bl2.sign" \
|
||||
--bl30 "${EXTRACT_DIR}/bl30.enc" \
|
||||
--bl301 "${EXTRACT_DIR}/bl301.enc" \
|
||||
--bl31 "${EXTRACT_DIR}/bl31.enc" \
|
||||
--bl33 "${EXTRACT_DIR}/bl33.enc" \
|
||||
u-boot.bin
|
||||
;;
|
||||
|
||||
g12a | g12b)
|
||||
run_host_command_logged gxlimg \
|
||||
-t bl3x \
|
||||
-s raw-u-boot.bin \
|
||||
"${EXTRACT_DIR}/bl33.enc"
|
||||
|
||||
if [ -e "${EXTRACT_DIR}/lpddr3_1d.fw" ]; then
|
||||
run_host_command_logged gxlimg \
|
||||
-t fip \
|
||||
--bl2 "${EXTRACT_DIR}/bl2.sign" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/piei.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr3_1d.fw" \
|
||||
--bl30 "${EXTRACT_DIR}/bl30.enc" \
|
||||
--bl31 "${EXTRACT_DIR}/bl31.enc" \
|
||||
--bl33 "${EXTRACT_DIR}/bl33.enc" \
|
||||
--rev v3 u-boot.bin
|
||||
else
|
||||
run_host_command_logged gxlimg \
|
||||
-t fip \
|
||||
--bl2 "${EXTRACT_DIR}/bl2.sign" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/ddr3_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/piei.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_1d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/lpddr4_2d.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/diag_lpddr4.fw" \
|
||||
--ddrfw "${EXTRACT_DIR}/aml_ddr.fw" \
|
||||
--bl30 "${EXTRACT_DIR}/bl30.enc" \
|
||||
--bl31 "${EXTRACT_DIR}/bl31.enc" \
|
||||
--bl33 "${EXTRACT_DIR}/bl33.enc" \
|
||||
--rev v3 u-boot.bin
|
||||
fi
|
||||
;;
|
||||
|
||||
*)
|
||||
exit_with_error "Unsupported SoC family: $2"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ ! -s u-boot.bin ]; then
|
||||
exit_with_error "FIP repack produced empty u-boot.bin"
|
||||
fi
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user