diff --git a/packages/tools/rkbin/package.mk b/packages/tools/rkbin/package.mk index 386a0b8ed2..09e0ac0f82 100644 --- a/packages/tools/rkbin/package.mk +++ b/packages/tools/rkbin/package.mk @@ -10,3 +10,37 @@ PKG_SITE="https://github.com/rockchip-linux/rkbin" PKG_URL="https://github.com/rockchip-linux/rkbin/archive/${PKG_VERSION}.tar.gz" PKG_LONGDESC="rkbin: Rockchip Firmware and Tool Binaries" PKG_TOOLCHAIN="manual" +PKG_STAMP="$UBOOT_SYSTEM" + +make_target() { + PKG_BOOT_INI="RKBOOT/${DEVICE}MINIALL.ini" + if [ -f "${PKG_BOOT_INI}" ]; then + PKG_FILE=$(sed -nr "/^\[LOADER_OPTION\]/ { :l /^FlashData[ ]*=/ { s/[^=]*=[ ]*//; p; q;}; n; b l;}" "${PKG_BOOT_INI}") + if [ -f "${PKG_FILE}" ]; then + cp -av "${PKG_FILE}" ddr.bin + + # Override sdram frequency + if [ "${DEVICE}" = "RK3328" ]; then + sed -s 's/\x4d\x1\x4d\x1\x4d\x1\x4d\x1\x4d\x1\x4d\x1/\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3/g' -i ddr.bin + sed -s 's/\x90\x1\x90\x1\x90\x1\x90\x1\x90\x1\x90\x1/\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3/g' -i ddr.bin + fi + fi + fi + + PKG_TRUST_INI="RKTRUST/${DEVICE}TRUST.ini" + if [ -f "${PKG_TRUST_INI}" ]; then + PKG_FILE=$(sed -nr "/^\[BL31_OPTION\]/ { :l /^PATH[ ]*=/ { s/[^=]*=[ ]*//; p; q;}; n; b l;}" "${PKG_TRUST_INI}") + if [ -f "${PKG_FILE}" ]; then + cp -av "${PKG_FILE}" bl31.elf + fi + fi +} + +makeinstall_target() { + mkdir -p "${INSTALL}/.noinstall" + for PKG_FILE in ddr.bin bl31.elf; do + if [ -f "${PKG_FILE}" ]; then + cp -av "${PKG_FILE}" "${INSTALL}/.noinstall" + fi + done +} diff --git a/projects/Rockchip/bootloader/firmware b/projects/Rockchip/bootloader/firmware index 7c2c6072bf..6bcaf00010 100644 --- a/projects/Rockchip/bootloader/firmware +++ b/projects/Rockchip/bootloader/firmware @@ -7,6 +7,14 @@ else export UBOOT_TARGET="" fi +if [ -f "$(get_install_dir rkbin)/.noinstall/ddr.bin" ]; then + export ROCKCHIP_TPL="$(get_install_dir rkbin)/.noinstall/ddr.bin" +fi + +if [ -f "$(get_install_dir rkbin)/.noinstall/bl31.elf" ]; then + export BL31="$(get_install_dir rkbin)/.noinstall/bl31.elf" +fi + if [ -n "${ATF_PLATFORM}" ]; then if [ -f "$(get_install_dir atf)/usr/share/bootloader/bl31.elf" ]; then export BL31="$(get_install_dir atf)/usr/share/bootloader/bl31.elf" diff --git a/projects/Rockchip/bootloader/install b/projects/Rockchip/bootloader/install index 9e75208191..8ee8806f4b 100644 --- a/projects/Rockchip/bootloader/install +++ b/projects/Rockchip/bootloader/install @@ -22,17 +22,10 @@ if [ "${ROCKCHIP_LEGACY_BOOT}" = "1" ]; then exit 1 fi - PKG_DDR_BIN="${PKG_RKBIN}"/$(sed -n "/FlashData/s/FlashData=//p" "${PKG_BOOT_INI}") PKG_MINILOADER="${PKG_RKBIN}"/$(sed -n "/FlashBoot/s/FlashBoot=//p" "${PKG_BOOT_INI}") PKG_LOAD_ADDR=$(sed -n "/CONFIG_TEXT_BASE/s/#define CONFIG_TEXT_BASE //p" u-boot.cfg) - # Override sdram frequency - if [ "${DEVICE}" = "RK3328" ]; then - sed -s 's/\x4d\x1\x4d\x1\x4d\x1\x4d\x1\x4d\x1\x4d\x1/\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3/g' -i "${PKG_DDR_BIN}" - sed -s 's/\x90\x1\x90\x1\x90\x1\x90\x1\x90\x1\x90\x1/\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3\x20\x3/g' -i "${PKG_DDR_BIN}" - fi - - ${QEMU} ${PKG_RKBIN}/tools/mkimage -n "${PKG_SOC}" -T rksd -d "${PKG_DDR_BIN}:${PKG_MINILOADER}" idbloader.img.rk || exit 1 + tools/mkimage -n "${PKG_SOC}" -T rksd -d "${ROCKCHIP_TPL}:${PKG_MINILOADER}" idbloader.img.rk || exit 1 ${QEMU} ${PKG_RKBIN}/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img.rk "${PKG_LOAD_ADDR}" || exit 1 dd if=idbloader.img.rk of="${UBOOT_FIT_IMAGE}" seek=0 conv=fsync,notrunc > /dev/null 2>&1 || exit 1