ipq806x: Initial TP-Link and ASUS OnHub support
[openwrt/openwrt.git] / target / linux / ipq806x / image / chromium.mk
diff --git a/target/linux/ipq806x/image/chromium.mk b/target/linux/ipq806x/image/chromium.mk
new file mode 100644 (file)
index 0000000..16af6b9
--- /dev/null
@@ -0,0 +1,58 @@
+define Build/cros-gpt
+       cp $@ $@.tmp 2>/dev/null || true
+       ptgen -o $@.tmp -g \
+               -T cros_kernel  -N kernel -p $(CONFIG_TARGET_KERNEL_PARTSIZE)m \
+                               -N rootfs -p $(CONFIG_TARGET_ROOTFS_PARTSIZE)m \
+                               -N rootfs_data -p \
+                               $$((3687-$(CONFIG_TARGET_ROOTFS_PARTSIZE)-\
+                                        $(CONFIG_TARGET_KERNEL_PARTSIZE)))m
+       cat $@.tmp >> $@
+       rm $@.tmp
+endef
+
+define Build/append-kernel-part
+       dd if=$(IMAGE_KERNEL) bs=$(CONFIG_TARGET_KERNEL_PARTSIZE)M conv=sync >> $@
+endef
+
+# NB: Chrome OS bootloaders replace the '%U' in command lines with the UUID of
+# the kernel partition it chooses to boot from. This gives a flexible way to
+# consistently build and sign kernels that always use the subsequent
+# (PARTNROFF=1) partition as their rootfs.
+define Build/cros-vboot
+       $(STAGING_DIR_HOST)/bin/cros-vbutil \
+               -k $@ -c "root=PARTUUID=%U/PARTNROFF=1" -o $@.new
+       @mv $@.new $@
+endef
+
+define Device/OnhubImage
+       KERNEL_LOADADDR = 0x44208000
+       SOC := qcom-ipq8064
+       KERNEL_SUFFIX := -fit-zImage.itb.vboot
+       KERNEL_NAME := zImage
+       KERNEL = kernel-bin | fit none $$(KDIR)/image-$$(DEVICE_DTS).dtb | cros-vboot
+       IMAGES := factory.bin sysupgrade.bin
+       IMAGE/factory.bin := cros-gpt | append-kernel-part | append-rootfs
+       IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+       DEVICE_PACKAGES := ath10k-firmware-qca988x-ct e2fsprogs kmod-fs-ext4 losetup \
+                          partx-utils mkf2fs kmod-fs-f2fs \
+                          ucode kmod-google-firmware kmod-tpm-i2c-infineon \
+                          kmod-sound-soc-ipq8064-storm kmod-usb-storage
+endef
+
+define Device/asus_onhub
+       $(call Device/OnhubImage)
+       DEVICE_VENDOR := ASUS
+       DEVICE_MODEL := OnHub SRT-AC1900
+       DEVICE_DTS := $$(SOC)-asus-onhub
+       BOARD_NAME := asus-onhub
+endef
+TARGET_DEVICES += asus_onhub
+
+define Device/tplink_onhub
+       $(call Device/OnhubImage)
+       DEVICE_VENDOR := TP-Link
+       DEVICE_MODEL := OnHub AC1900 Cloud Router
+       DEVICE_DTS := $$(SOC)-tplink-onhub
+       BOARD_NAME := tplink-onhub
+endef
+TARGET_DEVICES += tplink_onhub