Files
BPI-M2C/source_sync_rls_25c/layers/meta-unisoc/recipes-bsp/chipram/chipram.bb
T
2026-09-22 09:38:26 +08:00

149 lines
5.1 KiB
BlitzBasic
Executable File

SUMMARY = "Initial chipram"
LICENSE = "GPLv2"
PV = "0.1"
PR = "r0"
LIC_FILES_CHKSUM = "file://COPYING;md5=d41d8cd98f00b204e9800998ecf8427e"
inherit sign_unisoc_binary deploy
#UNISOC_SIGN_ENABLE ?= "no"
UNISOC_SIGN_ENABLE ?= "yes"
DEPENDS += "unisoc-sign-native"
CHIPRAM_MACHINE ?=""
PACKAGE_ARCH = "${MACHINE_ARCH}"
CHIPRAM_DEBUG ?="${@bb.utils.contains('USERDEBUG', 'userdebug', '-DCONFIG_DEBUG', '', d)}"
export CHIPRAM_DEBUG_FLAG="${CHIPRAM_DEBUG}"
CHIPRAM_PATCH_FILEPATH ?=""
FILESEXTRAPATHS:prepend := "${CHIPRAM_PATCH_FILEPATH}:"
CHIPRAM_MACHINE_PATCH ?=""
SRC_URI = " \
${CHIPRAM_MACHINE_PATCH} \
"
STORAGE_TYPE ?= "none"
DEPENDS += "${@bb.utils.contains('STORAGE_TYPE', 'nand', 'mcp-gen-native', '', d)}"
export CHIPRAM_SECURE_BOOT_FLAG="${CHIPRAM_SECSET}"
do_compile () {
if [ ${STORAGE_TYPE} = "nand" ]; then
#add include file of nand paramters before compiling
perl ${STAGING_BINDIR_NATIVE}/nandgen.pl \
-h ${EXTERNALSRC}/include/sprd_nand_param.h \
-x ${STAGING_BINDIR_NATIVE}/mcp.xls
fi
if [ ${AB_PARTITIONS} = "true" ]; then
export CONFIG_AB_PARTITIONS=true
fi
if [ ${MULTI_LUNS} = "true" ]; then
export CONFIG_UFS_MULTI_LUNS=true
fi
if [ -n "${CHIPRAM_MACHINE}" ] ;then
if [ -z "${CHIPRAM_CROSS_COMPILE_DIR}" ] ;then
export CROSS_COMPILE=${TARGET_PREFIX}
if [ ${CHIPRAM_SUPPORT_BOTH_EMMC_UFS} = "yes" ] || [ ${CHIPRAM_SUPPORT_BOTH_EMMC_NAND} = "yes" ]; then
#########build spl-emmc.bin###########################
export CONFIG_EMMC_SPL=true
oe_runmake -C ${S} O=${B} distclean
oe_runmake -C ${S} O=${B}/emmc ${CHIPRAM_MACHINE}
oe_runmake -C ${S} O=${B}/emmc
if [ ${CHIPRAM_SUPPORT_BOTH_EMMC_UFS} = "yes" ]; then
#########build spl-ufs.bin###########################
export CONFIG_UFS_SPL=true
oe_runmake -C ${S} O=${B}/ufs ${CHIPRAM_MACHINE}
oe_runmake -C ${S} O=${B}/ufs
fi
if [ ${SUPPORT_EMMC_UFS_SDBOOT} = "yes" ]; then
#########build spl-sd.bin###########################
export CONFIG_SD_SPL=true
oe_runmake -C ${S} O=${B}/sd ${CHIPRAM_MACHINE}
oe_runmake -C ${S} O=${B}/sd
fi
if [ ${CHIPRAM_SUPPORT_BOTH_EMMC_NAND} = "yes" ]; then
#########build spl-nand.bin###########################
install -m 0644 ${S}/../../devtools/mcp_gen/mcp.xls ${STAGING_BINDIR_NATIVE}/
install -m 0755 ${S}/../../devtools/mcp_gen/*.pl ${STAGING_BINDIR_NATIVE}/
install -m 0755 ${S}/../../devtools/mcp_gen/*.sh ${STAGING_BINDIR_NATIVE}/
cp -av ${S}/../../devtools/mcp_gen/Spreadsheet ${STAGING_BINDIR_NATIVE}/Spreadsheet
#add include file of nand paramters before compiling
perl ${STAGING_BINDIR_NATIVE}/nandgen.pl \
-h ${EXTERNALSRC}/include/sprd_nand_param.h \
-x ${STAGING_BINDIR_NATIVE}/mcp.xls
export CONFIG_NANDC_SPL=true
oe_runmake -C ${S} O=${B}/nand ${CHIPRAM_MACHINE}
oe_runmake -C ${S} O=${B}/nand
fi
else
if [ ${STORAGE_TYPE} = "nand" ]; then
export CONFIG_NANDC_SPL=true
elif [ ${STORAGE_TYPE} = "emmc" ]; then
export CONFIG_EMMC_SPL=true
fi
oe_runmake -C ${S} O=${B} distclean
oe_runmake -C ${S} O=${B} ${CHIPRAM_MACHINE}
oe_runmake -C ${S} O=${B}
fi
else
mkdir -p ${CHIPRAM_CROSS_COMPILE_DIR}/unisoc-tool
${CHIPRAM_CROSS_COMPILE_DIR}/${CHIPRAM_CROSS_COMPILE_NAME} -d ${CHIPRAM_CROSS_COMPILE_DIR}/unisoc-tool -y
export CROSS_COMPILE="${CHIPRAM_CROSS_COMPILE_DIR}/unisoc-tool/sysroots/x86_64-unisocsdk-linux/usr/bin/aarch64-unisoc-linux/aarch64-unisoc-linux-"
oe_runmake -C ${S} O=${B} distclean
oe_runmake -C ${S} O=${B} ${CHIPRAM_MACHINE}
oe_runmake -C ${S} O=${B}
rm -rf ${CHIPRAM_CROSS_COMPILE_DIR}/unisoc-tool
fi
fi
}
do_deploy(){
if [ -n "${CHIPRAM_MACHINE}" ] ;then
if [ ${CHIPRAM_SUPPORT_BOTH_EMMC_UFS} = "yes" ] || [ ${CHIPRAM_SUPPORT_BOTH_EMMC_NAND} = "yes" ]; then
install -d ${DEPLOYDIR}/
install -m 0644 ${B}/emmc/nand_fdl/fdl1.bin ${DEPLOYDIR}/
sign_unisoc_bin "${DEPLOYDIR}/fdl1.bin"
install -m 0644 ${B}/emmc/nand_spl/u-boot-spl-16k.bin ${DEPLOYDIR}/u-boot-spl-16k.bin
sign_unisoc_bin "${DEPLOYDIR}/u-boot-spl-16k.bin"
install -m 0644 ${B}/emmc/nand_spl/u-boot-spl-16k.bin ${DEPLOYDIR}/u-boot-spl-16k-emmc.bin
sign_unisoc_bin "${DEPLOYDIR}/u-boot-spl-16k-emmc.bin"
if [ ${SUPPORT_EMMC_UFS_SDBOOT} = "yes" ];then
install -m 0644 ${B}/sd/nand_spl/u-boot-spl-16k.bin ${DEPLOYDIR}/u-boot-spl-16k.bin
sign_unisoc_bin "${DEPLOYDIR}/u-boot-spl-16k.bin"
fi
if [ ${CHIPRAM_SUPPORT_BOTH_EMMC_UFS} = "yes" ];then
install -m 0644 ${B}/ufs/nand_spl/u-boot-spl-16k.bin ${DEPLOYDIR}/u-boot-spl-16k-ufs.bin
sign_unisoc_bin "${DEPLOYDIR}/u-boot-spl-16k-ufs.bin"
fi
if [ ${CHIPRAM_SUPPORT_BOTH_EMMC_NAND} = "yes" ];then
install -m 0644 ${B}/nand/nand_spl/u-boot-spl-16k.bin ${DEPLOYDIR}/u-boot-spl-16k-nand.bin
sign_unisoc_bin "${DEPLOYDIR}/u-boot-spl-16k-nand.bin"
fi
else
install -d ${DEPLOYDIR}/
install -m 0644 ${B}nand_fdl/fdl1.bin ${DEPLOYDIR}/
sign_unisoc_bin "${DEPLOYDIR}/fdl1.bin"
install -m 0644 ${B}nand_spl/u-boot-spl-16k.bin ${DEPLOYDIR}/
sign_unisoc_bin "${DEPLOYDIR}/u-boot-spl-16k.bin"
fi
fi
}
addtask deploy before do_build after do_compile