apm821xx: make it possible to update the dtb partition on the WNDR4700

Currently, the device-tree partition is marked as read-only.
Hence, userspace tools like mtd can't write into the partition.
This however will be necessary in case the DTB needs to be
updated.

This patch also adds the kernel.dtb image, so the compiled
DTB is exported as a file and available in the binary
directory along the firmware images.

Note: the u-boot does expects the dtb to be a uimage.

To update the dtb manually:
 1. copy the generated dtb to the router.
 2. mtd erase /dev/mtd2
 3. mtd write wndr4700.dtb /dev/mtd2

Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
This commit is contained in:
Christian Lamparter 2016-11-23 17:17:05 +01:00 committed by Felix Fietkau
parent 468735c3a2
commit 49856a4bb5
2 changed files with 6 additions and 6 deletions

View file

@ -171,7 +171,6 @@
partition0,2@0x00180000 { partition0,2@0x00180000 {
label = "device-tree"; label = "device-tree";
reg = <0x00180000 0x00020000>; reg = <0x00180000 0x00020000>;
read-only;
}; };
partition0,3@0x001a0000 { partition0,3@0x001a0000 {

View file

@ -22,6 +22,10 @@ define Build/dtb
$(call Image/BuildDTB,../dts/$(DEVICE_DTS).dts,$@.dtb,,--space $(DTB_SIZE)) $(call Image/BuildDTB,../dts/$(DEVICE_DTS).dts,$@.dtb,,--space $(DTB_SIZE))
endef endef
define Build/export-dtb
cp $(IMAGE_KERNEL).dtb $@
endef
ifeq ($(SUBTARGET),nand) ifeq ($(SUBTARGET),nand)
define Image/cpiogz define Image/cpiogz
@ -186,13 +190,14 @@ define Device/WNDR4700
BLOCKSIZE := 128k BLOCKSIZE := 128k
DTB_SIZE := 131008 DTB_SIZE := 131008
IMAGE_SIZE := 24960k IMAGE_SIZE := 24960k
IMAGES := factory.img sysupgrade.tar IMAGES := factory.img sysupgrade.tar kernel.dtb
KERNEL_SIZE := 1920k KERNEL_SIZE := 1920k
KERNEL := dtb | kernel-bin | lzma | uImage lzma | pad-offset $$(BLOCKSIZE) 64 | append-fakerootfs KERNEL := dtb | kernel-bin | lzma | uImage lzma | pad-offset $$(BLOCKSIZE) 64 | append-fakerootfs
KERNEL_INITRAMFS := kernel-bin | gzip | dtb | wndr4700-specialImage gzip KERNEL_INITRAMFS := kernel-bin | gzip | dtb | wndr4700-specialImage gzip
IMAGE/factory.img := create-uImage-dtb | append-kernel | pad-to 2M | append-ubi | \ IMAGE/factory.img := create-uImage-dtb | append-kernel | pad-to 2M | append-ubi | \
netgear-dni | check-size $$$$(IMAGE_SIZE) netgear-dni | check-size $$$$(IMAGE_SIZE)
IMAGE/sysupgrade.tar := sysupgrade-tar IMAGE/sysupgrade.tar := sysupgrade-tar
IMAGE/kernel.dtb := export-dtb | uImage none
NETGEAR_BOARD_ID := WNDR4700 NETGEAR_BOARD_ID := WNDR4700
NETGEAR_HW_ID := 29763875+128+256 NETGEAR_HW_ID := 29763875+128+256
UBINIZE_OPTS := -E 5 UBINIZE_OPTS := -E 5
@ -230,10 +235,6 @@ define Build/hdd-img
$(if $(CONFIG_TARGET_IMAGES_GZIP),gzip -9n -c $@ > $(BIN_DIR)/$(notdir $@).gz) $(if $(CONFIG_TARGET_IMAGES_GZIP),gzip -9n -c $@ > $(BIN_DIR)/$(notdir $@).gz)
endef endef
define Build/export-dtb
cp $(IMAGE_KERNEL).dtb $@
endef
define Device/MyBookLiveDefault define Device/MyBookLiveDefault
IMAGE_SIZE := 48m IMAGE_SIZE := 48m
BLOCKSIZE := 1k BLOCKSIZE := 1k