imx9-bootloader-prepare.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/usr/bin/env bash
  2. main ()
  3. {
  4. SPL_LOAD_ADDR=0x2049A000
  5. ATF_LOAD_ADDR=0x204E0000
  6. if grep -Eq "^BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX91=y$" "${BR2_CONFIG}"; then
  7. SPL_LOAD_ADDR=0x204A0000
  8. ATF_LOAD_ADDR=0x204C0000
  9. fi
  10. dd if="${BINARIES_DIR}/u-boot-spl.bin" of="${BINARIES_DIR}/u-boot-spl-padded.bin" bs=4 conv=sync
  11. cat "${BINARIES_DIR}/u-boot-spl-padded.bin" "${BINARIES_DIR}/ddr_fw.bin" > "${BINARIES_DIR}/u-boot-spl-ddr.bin"
  12. "${HOST_DIR}/bin/mkimage_imx8" -commit > "${BINARIES_DIR}/mkimg.commit"
  13. cat "${BINARIES_DIR}/u-boot.bin" "${BINARIES_DIR}/mkimg.commit" > "${BINARIES_DIR}/u-boot-hash.bin"
  14. rm -f "${BINARIES_DIR}/mkimg.commit"
  15. if grep -Eq "^BR2_TARGET_OPTEE_OS=y$" "${BR2_CONFIG}"; then
  16. "${HOST_DIR}/bin/mkimage_imx8" -soc IMX9 -c \
  17. -ap "${BINARIES_DIR}/bl31.bin" a55 ${ATF_LOAD_ADDR} \
  18. -ap "${BINARIES_DIR}/u-boot-hash.bin" a55 0x80200000 \
  19. -ap "${BINARIES_DIR}/tee.bin" a55 0x96000000 \
  20. -out "${BINARIES_DIR}/u-boot-atf-container.img"
  21. else
  22. "${HOST_DIR}/bin/mkimage_imx8" -soc IMX9 -c \
  23. -ap "${BINARIES_DIR}/bl31.bin" a55 ${ATF_LOAD_ADDR} \
  24. -ap "${BINARIES_DIR}/u-boot-hash.bin" a55 0x80200000 \
  25. -out "${BINARIES_DIR}/u-boot-atf-container.img"
  26. fi
  27. "${HOST_DIR}/bin/mkimage_imx8" -soc IMX9 -append "${BINARIES_DIR}/ahab-container.img" -c \
  28. -ap "${BINARIES_DIR}/u-boot-spl-ddr.bin" a55 ${SPL_LOAD_ADDR} \
  29. -out "${BINARIES_DIR}/imx9-boot-sd.bin"
  30. flashbin_size="$(wc -c "${BINARIES_DIR}/imx9-boot-sd.bin" | awk '{print $1}')"
  31. pad_cnt=$(($((flashbin_size + 0x400 - 1)) / 0x400))
  32. dd if="${BINARIES_DIR}/u-boot-atf-container.img" of="${BINARIES_DIR}/imx9-boot-sd.bin" bs=1K seek=${pad_cnt}
  33. exit $?
  34. }
  35. main "$@"