zynq: add sdcard image support
Implement the generation of sdcard images with ext4 or squashfs + f2fs overlay, but only enable the latter automatically Additionally, add mkf2fs and e2fsprogs to default packages to manipulate ext4 and f2fs filesystems Finally, disable the automatic generation of initramfs and rootfs.tar.gz images, as they are no longer required (they can still be selected in menuconfig) Signed-off-by: Luis Araneda <luaraneda@gmail.com>
This commit is contained in:
parent
d6501467e7
commit
412763c812
3 changed files with 48 additions and 2 deletions
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
ARCH:=arm
|
ARCH:=arm
|
||||||
BOARD:=zynq
|
BOARD:=zynq
|
||||||
BOARDNAME:=Xilinx Zynq 7000 SoCs
|
BOARDNAME:=Xilinx Zynq 7000 SoCs
|
||||||
FEATURES:=fpu gpio rtc usb usbgadget ramdisk targz
|
FEATURES:=fpu gpio rtc usb usbgadget boot-part rootfs-part squashfs
|
||||||
CPU_TYPE:=cortex-a9
|
CPU_TYPE:=cortex-a9
|
||||||
CPU_SUBTYPE:=neon
|
CPU_SUBTYPE:=neon
|
||||||
MAINTAINER:=Jason Wu <jason.wu.misc@gmail.com>
|
MAINTAINER:=Jason Wu <jason.wu.misc@gmail.com>
|
||||||
|
@ -26,6 +26,6 @@ include $(INCLUDE_DIR)/target.mk
|
||||||
|
|
||||||
KERNELNAME:=Image dtbs
|
KERNELNAME:=Image dtbs
|
||||||
|
|
||||||
DEFAULT_PACKAGES += uboot-envtools
|
DEFAULT_PACKAGES += uboot-envtools mkf2fs e2fsprogs
|
||||||
|
|
||||||
$(eval $(call BuildTarget))
|
$(eval $(call BuildTarget))
|
||||||
|
|
|
@ -7,6 +7,24 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/image.mk
|
include $(INCLUDE_DIR)/image.mk
|
||||||
|
|
||||||
|
FAT32_BLOCK_SIZE=1024
|
||||||
|
FAT32_BLOCKS=$(shell echo $$(($(CONFIG_TARGET_KERNEL_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE))))
|
||||||
|
|
||||||
|
define Build/zynq-sdcard
|
||||||
|
rm -f $@.boot
|
||||||
|
mkfs.fat $@.boot -C $(FAT32_BLOCKS)
|
||||||
|
mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-boot.bin ::boot.bin
|
||||||
|
mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-u-boot.img ::u-boot.img
|
||||||
|
mcopy -i $@.boot $(STAGING_DIR_IMAGE)/$(DEVICE_NAME)-uEnv.txt ::uEnv.txt
|
||||||
|
mcopy -i $@.boot $(IMAGE_KERNEL) ::fit.itb
|
||||||
|
./gen_zynq_sdcard_img.sh $@ \
|
||||||
|
$@.boot \
|
||||||
|
$(IMAGE_ROOTFS) \
|
||||||
|
$(CONFIG_TARGET_KERNEL_PARTSIZE) \
|
||||||
|
$(CONFIG_TARGET_ROOTFS_PARTSIZE)
|
||||||
|
rm -f $@.boot
|
||||||
|
endef
|
||||||
|
|
||||||
#################################################
|
#################################################
|
||||||
# Default and templates
|
# Default and templates
|
||||||
#################################################
|
#################################################
|
||||||
|
@ -17,6 +35,8 @@ define Device/Default
|
||||||
KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
|
KERNEL_INITRAMFS_PREFIX := $$(IMG_PREFIX)-$(1)-initramfs
|
||||||
KERNEL_PREFIX := $$(IMAGE_PREFIX)
|
KERNEL_PREFIX := $$(IMAGE_PREFIX)
|
||||||
KERNEL_LOADADDR := 0x8000
|
KERNEL_LOADADDR := 0x8000
|
||||||
|
IMAGES := sdcard.img.gz
|
||||||
|
IMAGE/sdcard.img.gz := zynq-sdcard | gzip
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Device/FitImageGzip
|
define Device/FitImageGzip
|
||||||
|
|
26
target/linux/zynq/image/gen_zynq_sdcard_img.sh
Executable file
26
target/linux/zynq/image/gen_zynq_sdcard_img.sh
Executable file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
[ $# -eq 5 ] || {
|
||||||
|
echo "SYNTAX: $0 <file> <bootfs image> <rootfs image> <bootfs size> <rootfs size>"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
OUTPUT="$1"
|
||||||
|
BOOTFS="$2"
|
||||||
|
ROOTFS="$3"
|
||||||
|
BOOTFSSIZE="$4"
|
||||||
|
ROOTFSSIZE="$5"
|
||||||
|
|
||||||
|
head=4
|
||||||
|
sect=63
|
||||||
|
|
||||||
|
set $(ptgen -o $OUTPUT -h $head -s $sect -l 1024 -t c -p ${BOOTFSSIZE}M -t 83 -p ${ROOTFSSIZE}M)
|
||||||
|
|
||||||
|
BOOTOFFSET="$(($1 / 512))"
|
||||||
|
BOOTSIZE="$(($2 / 512))"
|
||||||
|
ROOTFSOFFSET="$(($3 / 512))"
|
||||||
|
ROOTFSSIZE="$(($4 / 512))"
|
||||||
|
|
||||||
|
dd bs=512 if="$BOOTFS" of="$OUTPUT" seek="$BOOTOFFSET" conv=notrunc
|
||||||
|
dd bs=512 if="$ROOTFS" of="$OUTPUT" seek="$ROOTFSOFFSET" conv=notrunc
|
Loading…
Reference in a new issue