From 48c69e3022b2548d8e9deeef10d969a446c752ab Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 25 Mar 2015 17:57:44 +0000 Subject: [PATCH] bcm53xx: convert to new image building code Signed-off-by: Felix Fietkau SVN-Revision: 44996 --- target/linux/bcm53xx/image/Makefile | 111 ++++++++++++---------------- 1 file changed, 48 insertions(+), 63 deletions(-) diff --git a/target/linux/bcm53xx/image/Makefile b/target/linux/bcm53xx/image/Makefile index 5581283ddf..55a75ff7d3 100644 --- a/target/linux/bcm53xx/image/Makefile +++ b/target/linux/bcm53xx/image/Makefile @@ -8,6 +8,8 @@ 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) @@ -15,87 +17,70 @@ define Image/Prepare $(CP) ./ubinize.cfg $(KDIR) endef -define trx2ndpart/serial --a 1024 -f $(KDIR)/root.squashfs -a 0x10000 -A $(KDIR)/fs_mark +define Build/append-dtb + cat $(KDIR)/$(DT).dtb >> $@ endef -define trx2ndpart/nand-0x20000-0x800 --a 0x20000 -f $(KDIR)/root-block-0x20000-min-0x800.ubi -a 0x20000 -A $(KDIR)/fs_mark +define Build/lzma-d16 + $(STAGING_DIR_HOST)/bin/lzma e $@ -d16 $(1) $@.new + @mv $@.new $@ endef -# $(1): dts filename (also used for the firmware file). -# $(2): flash type (not used). -define Image/Build/initramfs/DTB - $(call Image/Build/DTB,zImage-initramfs,$(1)) - $(STAGING_DIR_HOST)/bin/trx -o $(KDIR)/$(IMG_PREFIX)-$(1)-initramfs.trx \ - -f $(KDIR)/zImage-initramfs-$(1).lzma +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 -# $(1): dts filename (also used for the firmware file). -# $(2): flash type. -define Image/Build/squashfs/DTB - $(call Image/Build/DTB,zImage,$(1)) - $(STAGING_DIR_HOST)/bin/trx -o $(KDIR)/$(IMG_PREFIX)-$(1)-squashfs.trx \ - -f $(KDIR)/zImage-$(1).lzma \ - $(call trx2ndpart/$(2)) +define Build/trx-nand + $(STAGING_DIR_HOST)/bin/trx \ + -o $@ \ + -f $(word 1,$^) \ + -a 0x20000 -f $(KDIR)/root-block-0x20000-min-0x800.ubi \ + -a 0x20000 -A $(KDIR)/fs_mark endef -# $(1): kernel (Linux) image file -# $(2): dts filename (also used for the firmware file). -define Image/Build/DTB - rm -f $(KDIR)/$(1)-$(2).lzma - rm -f $(KDIR)/$(1)-$(2).dts - cat $(KDIR)/$(1) $(DTS_DIR)/$(2).dtb > $(KDIR)/$(1)-$(2).dts; - $(STAGING_DIR_HOST)/bin/lzma e $(KDIR)/$(1)-$(2).dts $(KDIR)/$(1)-$(2).lzma -d16 +define Build/netgear-chk + $(STAGING_DIR_HOST)/bin/mkchkimg \ + -o $@.new -k $@ -b $(BOARD_ID) -r $(REGION) + mv $@.new $@ endef -# $(1): filesystem type (e.g. squashfs, initramfs). -# $(2): dts filename (also used for the firmware file). -# $(3): flash type. -# $(4): device specific magic. -define Image/Build/AsusTrx - $(call Image/Build/$(1)/DTB,$(2),$(3)) - # TODO: Put magic in TRX file - cp $(KDIR)/$(IMG_PREFIX)-$(2)-$(1).trx $(BIN_DIR)/ -endef +DEVICE_VARS += DT BOARD_ID REGION -# $(1): filesystem type (e.g. squashfs, initramfs). -# $(2): dts filename (also used for the firmware file). -# $(3): flash type. -define Image/Build/Trx - $(call Image/Build/$(1)/DTB,$(2),$(3)) - cp $(KDIR)/$(IMG_PREFIX)-$(2)-$(1).trx $(BIN_DIR)/ +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 + IMAGE_NAME = $$(IMAGE_PREFIX)-$$(1).$$(2) + IMAGES := trx + IMAGE/trx := trx-nand endef -# $(1): filesystem type (e.g. squashfs, initramfs). -# $(2): dts filename (also used for the firmware file). -# $(3): flash type. -# $(4): board_id (device specific magic). -# $(5): region. -define Image/Build/Chk - $(call Image/Build/$(1)/DTB,$(2),$(3)) - $(STAGING_DIR_HOST)/bin/mkchkimg -o $(BIN_DIR)/$(IMG_PREFIX)-$(2)-$(1).chk -k $(KDIR)/$(IMG_PREFIX)-$(2)-$(1).trx -b $(4) -r $(5) +define Device/netgear + IMAGES := chk + IMAGE/chk := trx-nand | netgear-chk + REGION := 1 endef -# $(1): filesystem type (e.g. squashfs, initramfs). -define Image/Build - ( cd $(KDIR); $(STAGING_DIR_HOST)/bin/ubinize -p 128KiB -m 2048 -o $(KDIR)/root-block-0x20000-min-0x800.ubi ubinize.cfg ) +define Device/netgear-r6250 + $(Device/netgear) + BOARD_ID := U12H245T00_NETGEAR +endef - $(call Image/Build/AsusTrx,$(1),bcm4708-asus-rt-ac68u,nand-0x20000-0x800,RT-AC68U) - $(call Image/Build/AsusTrx,$(1),bcm47081-asus-rt-n18u,nand-0x20000-0x800,RT-N18U) - $(call Image/Build/AsusTrx,$(1),bcm4709-asus-rt-ac87u,nand-0x20000-0x800,RT-AC87U) - - $(call Image/Build/Chk,$(1),bcm4708-netgear-r6250,nand-0x20000-0x800,U12H245T00_NETGEAR,1) - $(call Image/Build/Chk,$(1),bcm4708-netgear-r6300-v2,nand-0x20000-0x800,U12H240T00_NETGEAR,1) - $(call Image/Build/Chk,$(1),bcm4709-netgear-r8000,nand-0x20000-0x800,U12H315T00_NETGEAR,1) - - $(call Image/Build/Trx,$(1),bcm4708-buffalo-wzr-1750dhp,nand-0x20000-0x800) - $(call Image/Build/Trx,$(1),bcm47081-buffalo-wzr-600dhp2,nand-0x20000-0x800) - $(call Image/Build/Trx,$(1),bcm47081-buffalo-wzr-900dhp,nand-0x20000-0x800) +define Device/netgear-r6300-v2 + $(Device/netgear) + BOARD_ID := U12H240T00_NETGEAR endef -define Image/Build/Initramfs - $(call Image/Build,initramfs) +define Device/netgear-r8000 + $(Device/netgear) + BOARD_ID := U12H315T00_NETGEAR endef +TARGET_DEVICES += \ + asus-rt-ac68u asus-rt-n18u asus-rt-ac87u \ + netgear-r6250 netgear-r6300-v2 netgear-r8000 \ + buffalo-wzr-1750dhp buffalo-wzr-600dhp2 buffalo-wzr-900dhp + $(eval $(call BuildImage)) -- 2.25.1