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

LEDE Commits lede-commits at lists.infradead.org
Thu Nov 24 03:53:30 PST 2016


nbd pushed a commit to source.git, branch master:
https://git.lede-project.org/49856a4bb5818146d9cf951cb65a0903d3b38fd4

commit 49856a4bb5818146d9cf951cb65a0903d3b38fd4
Author: Christian Lamparter <chunkeey at googlemail.com>
AuthorDate: Wed Nov 23 17:17:05 2016 +0100

    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 at gmail.com>
---
 target/linux/apm821xx/dts/wndr4700.dts |  1 -
 target/linux/apm821xx/image/Makefile   | 11 ++++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/target/linux/apm821xx/dts/wndr4700.dts b/target/linux/apm821xx/dts/wndr4700.dts
index e0fb4e3..d1a65f3 100644
--- a/target/linux/apm821xx/dts/wndr4700.dts
+++ b/target/linux/apm821xx/dts/wndr4700.dts
@@ -171,7 +171,6 @@
 			partition0,2 at 0x00180000 {
 				label = "device-tree";
 				reg = <0x00180000 0x00020000>;
-				read-only;
 			};
 
 			partition0,3 at 0x001a0000 {
diff --git a/target/linux/apm821xx/image/Makefile b/target/linux/apm821xx/image/Makefile
index 48eef64..0ee9cdc 100644
--- a/target/linux/apm821xx/image/Makefile
+++ b/target/linux/apm821xx/image/Makefile
@@ -22,6 +22,10 @@ define Build/dtb
 	$(call Image/BuildDTB,../dts/$(DEVICE_DTS).dts,$@.dtb,,--space $(DTB_SIZE))
 endef
 
+define Build/export-dtb
+	cp $(IMAGE_KERNEL).dtb $@
+endef
+
 ifeq ($(SUBTARGET),nand)
 
 define Image/cpiogz
@@ -186,13 +190,14 @@ define Device/WNDR4700
   BLOCKSIZE := 128k
   DTB_SIZE := 131008
   IMAGE_SIZE := 24960k
-  IMAGES := factory.img sysupgrade.tar
+  IMAGES := factory.img sysupgrade.tar kernel.dtb
   KERNEL_SIZE := 1920k
   KERNEL := dtb | kernel-bin | lzma | uImage lzma | pad-offset $$(BLOCKSIZE) 64 | append-fakerootfs
   KERNEL_INITRAMFS := kernel-bin | gzip | dtb | wndr4700-specialImage gzip
   IMAGE/factory.img := create-uImage-dtb | append-kernel | pad-to 2M | append-ubi | \
 		       netgear-dni | check-size $$$$(IMAGE_SIZE)
   IMAGE/sysupgrade.tar := sysupgrade-tar
+  IMAGE/kernel.dtb := export-dtb | uImage none
   NETGEAR_BOARD_ID := WNDR4700
   NETGEAR_HW_ID := 29763875+128+256
   UBINIZE_OPTS := -E 5
@@ -230,10 +235,6 @@ define Build/hdd-img
 	$(if $(CONFIG_TARGET_IMAGES_GZIP),gzip -9n -c $@ > $(BIN_DIR)/$(notdir $@).gz)
 endef
 
-define Build/export-dtb
-	cp $(IMAGE_KERNEL).dtb $@
-endef
-
 define Device/MyBookLiveDefault
   IMAGE_SIZE := 48m
   BLOCKSIZE := 1k



More information about the lede-commits mailing list