IMAGE_DEPENDS_sdcard = "parted-native dosfstools-native mtools-native \
virtual/kernel ${IMAGE_BOOTLOADER}"
-IMAGE_CMD_sdcard () {
- if [ -z "${SDCARD_ROOTFS}" ]; then
- bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined."
- exit 1
- fi
+SDCARD = "${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.sdcard"
- TMP=${WORKDIR}/tmp
- SDCARD=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.sdcard
-
- # Initialize a sparse file
- dd if=/dev/zero of=${SDCARD} bs=1 count=0 seek=$(expr 1000 \* 1000 \* ${SDCARD_SIZE})
+SDCARD_GENERATION_COMMAND_mxs = "generate_mxs_sdcard"
+SDCARD_GENERATION_COMMAND_mx5 = "generate_imx_sdcard"
+SDCARD_GENERATION_COMMAND_mx6 = "generate_imx_sdcard"
+generate_imx_sdcard () {
# Create partition table
parted -s ${SDCARD} mklabel msdos
parted -s ${SDCARD} mkpart primary 0 1M
dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=1M
dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=${BOOT_SPACE}
}
+
+generate_mxs_sdcard () {
+ # Create partition table
+ parted -s ${SDCARD} mklabel msdos
+ parted -s ${SDCARD} mkpart primary 1MiB 2MiB
+ parted -s ${SDCARD} mkpart primary 2MiB ${BOOT_SPACE}
+ parted -s ${SDCARD} mkpart primary ${BOOT_SPACE} 100%
+ parted ${SDCARD} print
+
+ # Change partition type for mxs processor family
+ bbnote "Setting partition type to 0x53 as required for mxs' SoC family."
+ echo -n S | dd of=${SDCARD} bs=1 count=1 seek=450 conv=notrunc
+
+ case "${IMAGE_BOOTLOADER}" in
+ u-boot)
+ dd if=${DEPLOY_DIR_IMAGE}/u-boot-${MACHINE}.${UBOOT_SUFFIX_SDCARD} of=${SDCARD} conv=notrunc seek=1 skip=${UBOOT_PADDING} bs=1MiB
+ ;;
+ *)
+ bberror "Unkown IMAGE_BOOTLOADER value"
+ exit 1
+ ;;
+ esac
+
+ BOOT_BLOCKS=$(LC_ALL=C parted -s ${SDCARD} unit b print \
+ | awk '/ 2 / { print substr($3, 1, length($3 -1)) / 512 }')
+ mkfs.vfat -n "${BOOTDD_VOLUME_ID}" -S 512 -C ${WORKDIR}/boot.img $BOOT_BLOCKS
+ mcopy -i ${WORKDIR}/boot.img -s ${DEPLOY_DIR_IMAGE}/uImage-${MACHINE}.bin ::/uImage
+
+ dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=2 bs=1MiB
+ dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=${BOOT_SPACE}
+}
+
+IMAGE_CMD_sdcard () {
+ if [ -z "${SDCARD_ROOTFS}" ]; then
+ bberror "SDCARD_ROOTFS is undefined. To use sdcard image from Freescale's BSP it needs to be defined."
+ exit 1
+ fi
+
+ # Initialize a sparse file
+ dd if=/dev/zero of=${SDCARD} bs=1 count=0 seek=$(expr 1000 \* 1000 \* ${SDCARD_SIZE})
+
+ ${SDCARD_GENERATION_COMMAND}
+}