He analizado los firmwares de versiones Openwrt CC 15.05 (que sabemos con certeza se flashea bien) VS trunk de LEDE.
Simplemente he usado la pequeña utilidad
analyzetag.
[dani@tool brcm-tools]$ ./analyzetag -t bc221 -i lede-brcm63xx-generic-HG556a-B-squashfs-cfe.bin
Broadcom image analyzer - v0.1.0
Copyright (C) 2009 Daniel Dickinson
Tag Version: 8
Signature 1: Broadcom Corporatio
Signature 2: ver. 2.0
Chip ID: 6358
Board ID: HW556
Bigendian: true
Image size: 0032ff04, 3342084
CFE Address: 00000000, 0
CFE Length: 00000000, 0
Flash Root Address: bfc10100, 3217096960
Flash Root Length: 001e09ac, 1968556
Flash Kernel Address: bfc10100, 3217096960
Flash Kernel Length: 0014f558, 1373528
Vendor information: EchoLife_HG556a
Image CRC: 93420f96 [Computed Value: 93420f96]
Rootfs CRC: [Computed Value: efb4dcc8]
Image CRC from sections: 93420f96 [Computed Value: 4ef90a74]
Header CRC: cf50da28 [Computed Value: cf50da28]
fsKernel CRC: 93420f96 [Computed Value: 93420f96]
[dani@tool brcm-tools]$ ./analyzetag -t bc221 -i openwrt-15.05-brcm63xx-generic-HG556a_B-squashfs-cfe.bin
Broadcom image analyzer - v0.1.0
Copyright (C) 2009 Daniel Dickinson
Tag Version: 8
Signature 1: Broadcom Corporatio
Signature 2: ver. 2.0
Chip ID: 6358
Board ID: HW556
Bigendian: true
Image size: 0035ff04, 3538692
CFE Address: 00000000, 0
CFE Length: 00000000, 0
Flash Root Address: bfc20100, 3217162496
Flash Root Length: 002412b8, 2364088
Flash Kernel Address: bfc20100, 3217162496
Flash Kernel Length: 0011ec4c, 1174604
Vendor information: EchoLife_HG556a
Image CRC: b0268c5b [Computed Value: 211112d2]
Rootfs CRC: [Computed Value: 3fefc5bc]
Image CRC from sections: b0268c5b [Computed Value: ea6b5af7]
Header CRC: c1e251b2 [Computed Value: c1e251b2]
fsKernel CRC: b0268c5b [Computed Value: 211112d2]
El bootloader ocupa 67116 bytes (0x1062C), que sería el primer bloque de la flash en las versiones B, C y 1 bloque y una migaja de un segundo bloque en la A. Este primer bloque en las versiones B y C es 0x20000 de tamaño.
Así que según vemos en la cabecera del firmware de LEDE, indica por lo que veo que el flasheo ocurre en el offset 0x10000, pero como para escribir ahí ha de borrar primero un bloque de memoria, borra todo el primer bloque, o sea se cepilla el bootloader. O al menos eso intuyo que es lo que está ocurriendo.
El upgrade lo hicisteis desde el propio bootloader u Openwrt?. Desde Openwrt a partir de CC es imposible que se cepille el bootloader ya que esa partición es solo lectura.
Me temo que vuestra solución pasa por usar JTAG para reflashear el bootloader (CFE), y de esta forma volverá la vida al router.