target: Add rockchip target
[librecmc/librecmc.git] / target / linux / rockchip / image / Makefile
diff --git a/target/linux/rockchip/image/Makefile b/target/linux/rockchip/image/Makefile
new file mode 100755 (executable)
index 0000000..3c17e96
--- /dev/null
@@ -0,0 +1,61 @@
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+include $(INCLUDE_DIR)/image.mk
+
+DEVICE_VARS += UBOOT_DEVICE_NAME
+
+define Build/Compile
+       $(CP) $(LINUX_DIR)/COPYING $(KDIR)/COPYING.linux
+endef
+
+### Image scripts ###
+define Build/boot-common
+       # This creates a new folder copies the dtb (as rockchip.dtb) 
+       # and the kernel image (as kernel.img)
+       rm -fR $@.boot
+       mkdir -p $@.boot
+
+       $(CP) $(DTS_DIR)/$(DEVICE_DTS).dtb $@.boot/rockchip.dtb
+       $(CP) $(IMAGE_KERNEL) $@.boot/kernel.img
+endef
+
+define Build/boot-script
+       # Make an U-boot image and copy it to the boot partition
+       mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d $(if $(1),$(1),mmc).bootscript $@.boot/boot.scr
+endef
+
+define Build/pine64-img
+       # Creates the final SD/eMMC images, 
+       # combining boot partition, root partition as well as the u-boot bootloader
+
+       # Generate a new partition table in $@ with 32 MiB of 
+       # alignment padding for the idbloader and u-boot to fit:
+       # http://opensource.rock-chips.com/wiki_Boot_option#Boot_flow
+       #
+       # U-Boot SPL expects the U-Boot ITB to be located at sector 0x4000 (8 MiB) on the MMC storage
+       $(SCRIPT_DIR)/gen_image_generic.sh \
+               $@ \
+               $(CONFIG_TARGET_KERNEL_PARTSIZE) $@.boot \
+               $(CONFIG_TARGET_ROOTFS_PARTSIZE) $(IMAGE_ROOTFS) \
+               32768
+
+       # Copy the idbloader and the u-boot image to the image at sector 0x40 and 0x4000
+       dd if="$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-idbloader.img of="$@" seek=64 conv=notrunc
+       dd if="$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot.itb of="$@" seek=16384 conv=notrunc
+endef
+
+### Devices ###
+define Device/Default
+  PROFILES := Default
+  KERNEL := kernel-bin
+  IMAGES := sysupgrade.img.gz
+  SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
+  DEVICE_DTS = rockchip/$$(SOC)-$(lastword $(subst _, ,$(1)))
+endef
+
+include $(SUBTARGET).mk
+
+$(eval $(call BuildImage))