diff options
Diffstat (limited to 'target/linux/bcm53xx/image')
-rw-r--r-- | target/linux/bcm53xx/image/Makefile | 149 | ||||
-rw-r--r-- | target/linux/bcm53xx/image/ubinize.cfg | 24 |
2 files changed, 173 insertions, 0 deletions
diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile new file mode 100644 index 0000000..c9987dd --- /dev/null +++ b/target/linux/bcm53xx/image/Makefile @@ -0,0 +1,149 @@ +# +# Copyright (C) 2013 OpenWrt.org +# +# 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 + +define Image/Prepare + $(CP) $(DTS_DIR)/*.dtb $(KDIR)/ + + rm -f $(KDIR)/fs_mark + echo -ne '\xde\xad\xc0\xde' > $(KDIR)/fs_mark + $(call prepare_generic_squashfs,$(KDIR)/fs_mark) + + # For UBI we want only one extra block + rm -f $(KDIR)/ubi_mark + echo -ne '\xde\xad\xc0\xde' > $(KDIR)/ubi_mark + + $(CP) ./ubinize.cfg $(KDIR) +endef + +define Build/append-dtb + cat $(KDIR)/$(DT).dtb >> $@ +endef + +define Build/lzma-d16 + $(STAGING_DIR_HOST)/bin/lzma e $@ -d16 $(1) $@.new + @mv $@.new $@ +endef + +define Build/mkfs/squashfs + ( cd $(KDIR); $(STAGING_DIR_HOST)/bin/ubinize -p 128KiB -m 2048 -o $(KDIR)/root-block-0x20000-min-0x800.ubi ubinize.cfg ) +endef + +define Build/trx-serial + $(STAGING_DIR_HOST)/bin/trx \ + -o $@ \ + -f $(word 1,$^) -a 1024 \ + -f $(KDIR)/root.squashfs -a 0x10000 -A $(KDIR)/fs_mark +endef + +define Build/trx-nand + # kernel: always use 4 MiB (-28 B or TRX header) to allow upgrades even + # if it grows up between releases + # root: UBI with one extra block containing UBI mark to trigger erasing + # rest of partition + $(STAGING_DIR_HOST)/bin/trx \ + -o $@ \ + -m 33554432 \ + -f $(word 1,$^) -a 0x20000 -b 0x400000 \ + -f $(KDIR)/root-block-0x20000-min-0x800.ubi \ + -A $(KDIR)/ubi_mark -a 0x20000 +endef + +define Build/asus-trx + $(STAGING_DIR_HOST)/bin/asustrx \ + -p $(PRODUCTID) -i $@ -o $@.new + mv $@.new $@ +endef + +DEVICE_VARS += DT PRODUCTID NETGEAR_BOARD_ID NETGEAR_REGION + +define Device/Default + # .dtb files are prefixed by SoC type, e.g. bcm4708- which is not included in device/image names + # extract the full dtb name based on the device info + DT := $(patsubst %.dtb,%,$(notdir $(wildcard $(if $(IB),$(KDIR),$(DTS_DIR))/*-$(1).dtb))) + KERNEL := kernel-bin | append-dtb | lzma-d16 + FILESYSTEMS := squashfs + KERNEL_NAME := zImage + IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2) + IMAGES := trx + IMAGE/trx := trx-nand +endef + +define Device/asus + IMAGES := trx + IMAGE/trx := trx-nand | asus-trx +endef + +define AsusDevice + define Device/asus-$(1) + $$(Device/asus) + PRODUCTID := $(2) + endef + TARGET_DEVICES += asus-$(1) +endef + +define Device/linksys + IMAGES := trx + IMAGE/trx := trx-nand +endef + +define LinksysDevice + define Device/linksys-$(1) + $$(Device/linksys) + endef + TARGET_DEVICES += linksys-$(1) +endef + +define Device/netgear + IMAGES := chk + IMAGE/chk := trx-nand | netgear-chk + NETGEAR_REGION := 1 +endef + +define NetgearDevice + define Device/netgear-$(1) + $$(Device/netgear) + NETGEAR_BOARD_ID := $(2) + endef + TARGET_DEVICES += netgear-$(1) +endef + +define Device/netgear-r6250 + $(Device/netgear) + NETGEAR_BOARD_ID := U12H245T00_NETGEAR +endef + +define Device/netgear-r6300-v2 + $(Device/netgear) + NETGEAR_BOARD_ID := U12H240T00_NETGEAR +endef + +define Device/netgear-r8000 + $(Device/netgear) + NETGEAR_BOARD_ID := U12H315T00_NETGEAR +endef + +define Device/smartrg-sr400ac + IMAGES := trx + IMAGE/trx := trx-serial +endef + +TARGET_DEVICES += \ + buffalo-wzr-1750dhp buffalo-wzr-600dhp2 buffalo-wzr-900dhp \ + buffalo-wxr-1900dhp \ + netgear-r6250 netgear-r6300-v2 netgear-r8000 \ + smartrg-sr400ac + +$(eval $(call AsusDevice,rt-ac56u,RT-AC56U)) +$(eval $(call AsusDevice,rt-ac68u,RT-AC68U)) +$(eval $(call AsusDevice,rt-ac87u,RT-AC87U)) +$(eval $(call AsusDevice,rt-n18u,RT-N18U)) +$(eval $(call LinksysDevice,ea6300-v1)) +$(eval $(call NetgearDevice,r7000,U12H270T00_NETGEAR)) + +$(eval $(call BuildImage)) diff --git a/target/linux/bcm53xx/image/ubinize.cfg b/target/linux/bcm53xx/image/ubinize.cfg new file mode 100644 index 0000000..a4f2f09 --- /dev/null +++ b/target/linux/bcm53xx/image/ubinize.cfg @@ -0,0 +1,24 @@ +[rootfs] +# Volume mode (other option is static) +mode=ubi +# Source image +image=root.squashfs +# Volume ID in UBI image +vol_id=0 +# Allow for dynamic resize +vol_type=dynamic +# Volume name +vol_name=rootfs + +[rootfs_data] +# Volume mode (other option is static) +mode=ubi +# Volume ID in UBI image +vol_id=1 +# Allow for dynamic resize +vol_type=dynamic +# Volume name +vol_name=rootfs_data +# Autoresize volume at first mount +vol_flags=autoresize +vol_size=1MiB |