Añadido al primer post el firmware extraído de la NAND del router.
Para extraer el firmware he realizado un backup de la NAND desde la web que proporciona el firmware original backupflash.html.
Sin embargo, este backup contiene los datos OOB de la NAND, por lo que dichos datos han de ser eliminados para que el backup pueda ser correctamente flasheado.
Para ello he desarrollado una herramienta que elimina dichos datos:
https://github.com/openwrt-es/nandtoolsHe comparado dicho backup con el obtenido mediante el driver de la NAND para OpenWrt que Brian Norris y Kevin Cernekee han desarrollado, y al cual yo he añadido ciertas modificaciones para que fuera compatible con los BCM63268.
Más info:
https://github.com/openwrt-es/openwrt/commit/ec7552edcdedebd92f4fee4bf0d8aded272b7426Ahora que ya tenemos lectura/escritura/borrado en la NAND desde OpenWrt el problema es el sistema de carga del firmware que utiliza Broadcom:
Una única partición JFFS2 en la NAND que contiene el kernel como un fichero más, así como un secondstage bootloader (cferam) que es ejecutado por el bootloader principal (cferom), y que se encarga de ejecutar el kernel: cferom -> cferam -> kernel.
Como os podéis imaginar el código fuente de cferam es propietario, por lo que no está disponible.
Así que existen varias alternativas para poder ejecutar OpenWrt:
1) Incluir el binario original del cferam en una partición con sistema de ficheros JFFS2 que contenga además el kernel, y ubicar el sistema de ficheros por separado en otra partición (el sistema de ficheros podría ser ubifs).
2) Añadir soporte en uboot para el 63268 y hacer una partición que contenga el cferam y el uboot, de forma que dicha partición sólo será creada una única vez y será uboot quien se encargue de flashear OpenWrt en la NAND.
La 2 es la más lógica y cómoda a largo plazo, pero la 1 es la más sencilla.
Y hasta aquí los avances en los BCM63268, perdón por el testamento.
Un saludo,
Noltari.