Signed-off-by: Alexander Couzens <lyn...@fe80.eu> --- target/linux/omap/image/Config.in | 5 ++++ target/linux/omap/image/Makefile | 34 +++++++++++++++++++++++++- target/linux/omap/image/gen_omap_sdcard_img.sh | 33 +++++++++++++++++++++++++ target/linux/omap/image/uEnv.txt | 6 +++++ tools/Makefile | 2 +- 5 files changed, 78 insertions(+), 2 deletions(-) create mode 100644 target/linux/omap/image/Config.in create mode 100755 target/linux/omap/image/gen_omap_sdcard_img.sh create mode 100644 target/linux/omap/image/uEnv.txt
diff --git a/target/linux/omap/image/Config.in b/target/linux/omap/image/Config.in new file mode 100644 index 0000000..08b88eb --- /dev/null +++ b/target/linux/omap/image/Config.in @@ -0,0 +1,5 @@ +config OMAP_SD_BOOT_PARTSIZE + int "Boot (SD Card) filesystem partition size (in MB)" + depends on TARGET_omap + default 20 + diff --git a/target/linux/omap/image/Makefile b/target/linux/omap/image/Makefile index 3fa2848..10b07a7 100644 --- a/target/linux/omap/image/Makefile +++ b/target/linux/omap/image/Makefile @@ -6,12 +6,43 @@ # include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk +include $(INCLUDE_DIR)/host.mk + +FAT32_BLOCK_SIZE=1024 +FAT32_BLOCKS=$(shell echo $$(($(CONFIG_OMAP_SD_BOOT_PARTSIZE)*1024*1024/$(FAT32_BLOCK_SIZE)))) UBIFS_OPTS = -F -m 2048 -e 124KiB -c 4096 -U UBI_OPTS = -m 2048 -p 128KiB -s 512 -O 2048 +# $1 - name of bootloader directory under BIN_DIR +# $2 - output filename part +define Image/Build/SDCard + rm -f $(KDIR)/boot-$(2).img + mkdosfs $(KDIR)/boot-$(2).img -C $(FAT32_BLOCKS) + mcopy -i $(KDIR)/boot-$(2).img $(BIN_DIR)/uboot-omap-$(1)/MLO ::MLO + mcopy -i $(KDIR)/boot-$(2).img $(BIN_DIR)/uboot-omap-$(1)/u-boot.img ::u-boot.img + mcopy -i $(KDIR)/boot-$(2).img -s $(BIN_DIR)/dtbs/ ::dtbs + mcopy -i $(KDIR)/boot-$(2).img $(KDIR)/zImage ::zImage + mcopy -i $(KDIR)/boot-$(2).img $(KDIR)/uImage ::uImage + mcopy -i $(KDIR)/boot-$(2).img ./uEnv.txt ::uEnv.txt + chmod 755 ./gen_omap_sdcard_img.sh + ./gen_omap_sdcard_img.sh \ + $(BIN_DIR)/$(IMG_PREFIX)-$(2)-sdcard-vfat-$(1).img \ + $(KDIR)/boot-$(2).img \ + $(KDIR)/root.ext4 \ + $(CONFIG_OMAP_SD_BOOT_PARTSIZE) \ + $(CONFIG_TARGET_ROOTFS_PARTSIZE) +endef + define Image/BuildKernel + mkimage -A arm -O linux -T kernel -C none \ + -a 0x40008000 -e 0x40008000 \ + -n 'ARM OpenWrt Linux-$(LINUX_VERSION)' \ + -d $(KDIR)/zImage $(KDIR)/uImage + $(CP) $(KDIR)/zImage $(BIN_DIR)/$(IMG_PREFIX)-zImage + $(CP) $(KDIR)/uImage $(BIN_DIR)/$(IMG_PREFIX)-uImage + ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),) $(CP) $(KDIR)/zImage-initramfs $(BIN_DIR)/$(IMG_PREFIX)-zImage-initramfs endif @@ -26,7 +57,7 @@ define Image/BuildKernel $(CP) $(DTS_DIR)/omap3*.dtb $(TARGET_DIR)/boot/ $(CP) $(DTS_DIR)/omap4*.dtb $(TARGET_DIR)/boot/ endif - -mkdir $(BIN_DIR)/dtbs + -mkdir -p $(BIN_DIR)/dtbs -$(CP) $(DTS_DIR)/am335x*.dtb $(BIN_DIR)/dtbs/ -$(CP) $(DTS_DIR)/omap3*.dtb $(BIN_DIR)/dtbs/ -$(CP) $(DTS_DIR)/omap4*.dtb $(BIN_DIR)/dtbs/ @@ -34,6 +65,7 @@ endef define Image/Build $(call Image/Build/$(1),$(1)) + $(call Image/Build/SDCard,am335x_evm,beagleboneblack) endef define Image/Build/jffs2-64k diff --git a/target/linux/omap/image/gen_omap_sdcard_img.sh b/target/linux/omap/image/gen_omap_sdcard_img.sh new file mode 100755 index 0000000..c2f2aad --- /dev/null +++ b/target/linux/omap/image/gen_omap_sdcard_img.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +# +# Copyright (C) 2013 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +set -x +[ $# -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 diff --git a/target/linux/omap/image/uEnv.txt b/target/linux/omap/image/uEnv.txt new file mode 100644 index 0000000..9776ab5 --- /dev/null +++ b/target/linux/omap/image/uEnv.txt @@ -0,0 +1,6 @@ +bootdir=/ +fdtdir=/dtbs +uenvcmd=setenv bootpart ${mmcdev}:1 ; run loadfdt; run loadimage; run mmcargs; bootz ${loadaddr} - ${fdtaddr} +mmcargs=setenv bootargs console=${console} root=/dev/mmcblk0p2 rootdelay=10 + +loadfdt=load mmc ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile} diff --git a/tools/Makefile b/tools/Makefile index 187655e..85a7124 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -36,7 +36,7 @@ tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2 tools-$(CONFIG_powerpc) += upx tools-$(CONFIG_TARGET_x86) += qemu tools-$(CONFIG_TARGET_mxs) += elftosb sdimage -tools-$(CONFIG_TARGET_brcm2708)$(CONFIG_TARGET_sunxi)$(CONFIG_TARGET_mxs) += mtools dosfstools +tools-$(CONFIG_TARGET_brcm2708)$(CONFIG_TARGET_omap)$(CONFIG_TARGET_sunxi)$(CONFIG_TARGET_mxs) += mtools dosfstools tools-$(CONFIG_TARGET_ar71xx) += lzma-old squashfs tools-y += lzma squashfs4 tools-$(BUILD_B43_TOOLS) += b43-tools -- 2.8.0 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel