u-boot u-boot 8MB nand map:: 0x00000000 - 0x00040000 u-boot (256KB == 262144) // +0x40000 0x00040000 - 0x00050000 u-boot-env (64KB == 65536) // +0x10000 0x00050000 - 0x00650000 rootfs (6144KB == 6291456) // +0x600000 0x00650000 - 0x007E0000 uImage (1600KB == 1638400) // +0x190000 0x007E0000 - 0x007F0000 cfg (64KB == 65536) // +0x10000 0x007F0000 - 0x00800000 ART (64KB == 65536) // +0x10000 Helper nand map for easy updates :) * 0x00050000 - 0x007E0000 firmware (7929856) // +0x790000 u-boot environment:: mtdids=nor0=ar7240-nor0 mtddevnum=0 mtddevname=u-boot mtdparts=mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),6m(rootfs),1600k(uImage),64k(cfg),64k(ART) u-boot mtdparts:: device nor0 , # parts = 6 #: name size offset mask_flags 0: u-boot 0x00040000 0x00000000 0 1: u-boot-env 0x00010000 0x00040000 0 2: rootfs 0x00600000 0x00050000 0 3: uImage 0x00190000 0x00650000 0 4: cfg 0x00010000 0x007e0000 0 5: ART 0x00010000 0x007f0000 0 active partition: nor0,0 - (u-boot) 0x00040000 @ 0x00000000 u-boot make mtdparts on NAND:: mtd default mtd del nor0,5 mtd del nor0,4 mtd del nor0,3 mtd del nor0,2 mtd add nor0 0x600000 rootfs mtd add nor0 0x190000 uImage mtd add nor0 0x10000 cfg mtd add nor0 0x10000 ART save 1. update kernel tftp 0x81000000 kernel.lzma.uImage era 0x9F650000 +0x190000 cp.b 0x81000000 0x9F650000 0x190000 2. update rootfs tftp 0x80100000 rootfs.ulzma era 0x9F050000 +0x600000 cp.b 0x80100000 0x9F050000 0x600000 3. update entire firmware image tftp 0x80100000 elwix_firmware.bin era 0x9F050000 +0x790000 cp.b 0x80100000 0x9F050000 0x790000 4. update entire firmware image + vendor specific config tftp 0x80100000 elwix_firmware_vendor.bin era 0x9F050000 +0x7A0000 cp.b 0x80100000 0x9F050000 0x7A0000