?>/script>'; } ?> [Desarrollo] LEDE en Sercomm AD1018 Widgets Magazine

Autor Tema: [Desarrollo] LEDE en Sercomm AD1018  (Leído 15060 veces)

0 Usuarios y 1 Visitante están viendo este tema.

danitool

  • Visitante
[Desarrollo] LEDE en Sercomm AD1018
« en: 18-08-2017, 22:06 (Viernes) »
Router modem ADSL2+ basado en BCM6328, 128 RAM, 128 MiB Flash tipo NAND y posibilidad de soldar un puerto USB.

wiki:  https://openwrt.org/toh/sercomm/ad1018

Compilaciones LEDE/OpenWrt

VersiónLinkNotas
snapshot oficialhttp://downloads.lede-project.org/snapshots/targets/brcm63xx/generic/openwrt-brcm63xx-generic-AD1018-SPI_flash-squashfs-cfe.binFirmware oficial de LEDE, snapshot diario, puede contener bugs no detectados, no incluye interfaz web LuCi. Solo válido para mod de flash SPI (necesario soldar en placa una memoria flash SPI como se detalla más abajo)


Como las memorias tipo NAND todavía no están soportadas en brcm63xx lo que he hecho es añadir soporte para instalar LEDE en una memoria flash tipo SPI.  Lo bueno de esto es que en ningún momento se toca el firmware original, teniendo la posibilidad de volver al mismo sin necesidad de flashear nada.

Por tanto de momento para poder instalar LEDE es necesario soldar una memoria flash tipo SPI a ciertos puntos de la placa. Todo el proceso lo detallo a continuación. Para el proceso también será necesario acceso por puerto serie.

El material necesario para la instalación está en este zip



Pasos para poder instalar LEDE:

  • 1. Soldar la memoria flash SPI tal como se muestra en la foto, esta flash debería ser de al menos 8 MB



  • 2. Arrancar el firmware RAM de LEDE. En la consola de CFE, ejecutar:

    r 192.168.1.7:ad1018-lede-ram.elf

  • 3. Flashear CFE en la memoria flash SPI. En la consola de LEDE:

    mtd write CFE-AD1018-CUSTOM-SPI.bin cfe  

  • 4. Flashear LEDE.

    mtd write ad1018-lede-r4696.bin linux

  • 5. Apagar el router y desoldar la resistencia R228 que se indica en la foto

Listo, ya deberíamos poder arrancar LEDE.

También sería posible hacer todo del tirón si tenemos programador de flash SPI externo, soldando la memoria ya programada con el bootloader y quitando la resistencia R228.

Partes con funcionalidad limitada o nula en LEDE

  • modem interno ADSL: no funciona, porque no hay soporte GPL en Linux y probablemente nunca lo habrá
  • VoIP / FXS: no parece haber drivers para el chip Si32177
  • WIFI: solo funciona en modo b/g. El modo N no está soportado




Volver al firmware original:

Volvemos a soldar la resistencia R228, de esta forma la placa arrancará desde la memoria NAND. Para hacer más sencillo arrancar desde LEDE o firmware original según nos apetezca, podemos poner un jumper entre el lado que conecta R228 a GND, o un interruptor según a gusto de cada uno.



Una característica inusual en este router es que dispone de 128 MB de RAM con un solo chip. Es el único bcm6328 que he visto con tanta RAM.
El router ha sido una donación cortesía de Pteridium, gracias.

Saludos
« Última modificación: 21-02-2018, 11:32 (Miércoles) por danitool »

Covenant

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #1 en: 18-08-2017, 22:16 (Viernes) »
Simplemente fantástico, a sus pies señor Danitool >:( >:( >:(

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2247
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #2 en: 19-08-2017, 14:25 (Sábado) »
Hay que saber reconocer, cuándo uno debe descubrirse la cabeza de su sobrero, y ofrecer completa pleitesía, a los genios que por aquí pululan.
Plis, plas, plus  >:( >:( >:(

Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4607
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #3 en: 20-08-2017, 11:05 (Domingo) »
Gracias danitool por tu estupendo trabajo  >:( >:( >:( >:(

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #4 en: 17-11-2017, 21:48 (Viernes) »
Una pregunta
¿Funcionaria ese firmware con una tarjeta MMC en lugar de las memorias SPI que recomiendas en la wiki?

danitool

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #5 en: 17-11-2017, 22:05 (Viernes) »
Una pregunta
¿Funcionaria ese firmware con una tarjeta MMC en lugar de las memorias SPI que recomiendas en la wiki?

No, imposible, el bootloader no tiene drivers para las MMC aunque estas operen en modo SPI. Y tampoco creo que el SoC tenga la capacidad de arrancar en frío desde una MMC.

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #6 en: 18-11-2017, 10:55 (Sábado) »
Entonces me espero a que me lleguen las memorias SPI. Lo he estado utilizando con el LEDE que has puesto y va muy bien.
Otra cosa, ¿se puede entrar con el firmware de Vodafone utilizando el puerto serie? Porque me sale esto cuando lo intento:   

starting pid 1154, tty '': '/sbin/getty ttyS0 115200'

AD1018 login: admin
processetty ttyS0 115200' (pid 1154) exited. Scheduling for restart.
starting pid 1155, tty '': '/sbin/getty ttyS0 11µ
AD1018 login: vodafone
processVÑÑåttyS0 115200' (pid 1155) exited. Scheduling for restart.
starting pid 1156, tty '': '/sbin/getty ttyS0 1152
AD1018 login: support
procesóYWttyS0 115200' (pid 1156) exited. Scheduling for restart.
starting pid 1157, tty '': '/sbin/getty ttyS0 11õ
AD1018 login: root
proceóetty ttyS0 115200' (pid 1157) exited. Scheduling for restart.
starting pid 1158, tty '': '/sbin/getty ttySø
AD1018 login:


En modo web entro con admin y puedo configurarlo todo pero desde el puerto serie no soy capaz de entrar.

danitool

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #7 en: 19-11-2017, 00:01 (Domingo) »
Entonces me espero a que me lleguen las memorias SPI. Lo he estado utilizando con el LEDE que has puesto y va muy bien.
Otra cosa, ¿se puede entrar con el firmware de Vodafone utilizando el puerto serie? Porque me sale esto cuando lo intento:   

starting pid 1154, tty '': '/sbin/getty ttyS0 115200'

AD1018 login: admin
processetty ttyS0 115200' (pid 1154) exited. Scheduling for restart.
starting pid 1155, tty '': '/sbin/getty ttyS0 11µ
AD1018 login: vodafone
processVÑÑåttyS0 115200' (pid 1155) exited. Scheduling for restart.
starting pid 1156, tty '': '/sbin/getty ttyS0 1152
AD1018 login: support
procesóYWttyS0 115200' (pid 1156) exited. Scheduling for restart.
starting pid 1157, tty '': '/sbin/getty ttyS0 11õ
AD1018 login: root
proceóetty ttyS0 115200' (pid 1157) exited. Scheduling for restart.
starting pid 1158, tty '': '/sbin/getty ttySø
AD1018 login:


En modo web entro con admin y puedo configurarlo todo pero desde el puerto serie no soy capaz de entrar.

Yo recuerdo haber entrado sin problemas por puerto serie, incluso por telnet creo, desde donde hice backups de las particiones. Tal vez tengas un firmware diferente. Ojo porque estos firmwares que vienen en los routers Broadcom con memoria NAND son de lectura/escritura. Lo que significa que si entras y modificas algún archivo, el cambio es permanente.

Ignoro si la función de reset lo devuelve al estado original, pero desde luego no es como en las memorias NOR donde root no se puede modificar de forma alguna por ser de solo lectura. Y puede que sea un motivo por el que decidan deshabilitar el acceso a la consola.


cheche

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #8 en: 14-12-2017, 01:45 (Jueves) »
Esta tarde me han dado este modelo. ¿Alguien que lo quiere? (con preferencia a @danitool) . Mandarme un privado con tu dirección postal y te mando una caja con este modelo y alguno mas que tengo por aquí rondando.

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #9 en: 19-12-2017, 19:29 (Martes) »
Ya lo tengo funcionando con una SPI 25Q128 de 16MB. Ahora voy a mirar si se puede convertir en un programador de memorias NAND. Quitandole la que lleva y poniendo en su lugar un zocalo TSOP48 ya estaria hecha la parte hardware.
Como el BCM6328 + NAND no tiene soporte en LEDE/Openwrt de momento, me preguntaba si se podria hacer con un CFE que arrancase desde la SPI, reconociese la NAND del zocalo y permitiese elegir en cual memoria grabar. Creo que esto lo permitia el CFE del bcm47xx.
¿Sabeis si hay disponible algun fuente del CFE que soporte este SOC y memorias NAND?

danitool

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #10 en: 19-12-2017, 22:00 (Martes) »
Ya lo tengo funcionando con una SPI 25Q128 de 16MB. Ahora voy a mirar si se puede convertir en un programador de memorias NAND. Quitandole la que lleva y poniendo en su lugar un zocalo TSOP48 ya estaria hecha la parte hardware.
Como el BCM6328 + NAND no tiene soporte en LEDE/Openwrt de momento, me preguntaba si se podria hacer con un CFE que arrancase desde la SPI, reconociese la NAND del zocalo y permitiese elegir en cual memoria grabar. Creo que esto lo permitia el CFE del bcm47xx.
¿Sabeis si hay disponible algun fuente del CFE que soporte este SOC y memorias NAND?

El CFE que he adaptado para SPI podría compilarse supongo para NAND, pero claro o bien se elige soporte para SPI o NAND pero no los dos a la vez. Solo se me ocurre compilar la versión RAM de CFE, y arrancarla con el CFE de la SPI, para luego grabar en la NAND lo que sea.

El soporte NAND en LEDE debería estar disponible cuando suban de versión de kernel. Aunque no es seguro ya que no todos los SoCs tienen soporte en el kernel, p.ej BCM6368 no tiene. Noltari ya fue capaz de tener acceso a lectura/escritura de las NAND de los BCM63168. Así que se puede considerar una opción también viable en este router.

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #11 en: 21-12-2017, 20:26 (Jueves) »
Mientras termina de salir el LEDE voy a probar con ese CFE.

Tambien he estado buscando los pines JTAG con un arduino nano a 3V3 y un program llamado Jtagenum. He conectado varios TestPoint que habia en la placa y el programa va escaneando pines hasta que recibe una respuesta valida.
Me han salido estos:
TP17 = TCK
TP16 = TMS
TP15 = TDO
TP14 = TDI
TP13 = TRST

Lo he probado con otros routers con un JTAG conocido y encuentra los pines en menos de un minuto.
A ver si consigo hacer funcionar un clon de Altera USB Blaster y mediante JTAG se puede acceder a la NAND, aunque me da que no va a ser posible.

danitool

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #12 en: 22-12-2017, 12:11 (Viernes) »
Mientras termina de salir el LEDE voy a probar con ese CFE.

Tambien he estado buscando los pines JTAG con un arduino nano a 3V3 y un program llamado Jtagenum. He conectado varios TestPoint que habia en la placa y el programa va escaneando pines hasta que recibe una respuesta valida.
Me han salido estos:
TP17 = TCK
TP16 = TMS
TP15 = TDO
TP14 = TDI
TP13 = TRST

Lo he probado con otros routers con un JTAG conocido y encuentra los pines en menos de un minuto.
A ver si consigo hacer funcionar un clon de Altera USB Blaster y mediante JTAG se puede acceder a la NAND, aunque me da que no va a ser posible.


Excelente aporte, lo he marcado en las fotos de la placa y añadido a la wiki

https://wiki.openwrt.org/_media/media/sercomm/ad1018-jtag.jpg

Acceder a la NAND via JTAG p.ej con OpenOCD tal vez sea posible pero creo que es algo que nadie ha intentado me temo. Y tampoco tengo constancia de nadie que haya intentado programar una SPI via JTAG en un BCM6328. Posible seguro que es, pero es un terreno virgen todavía.

Saludos

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #13 en: 01-01-2018, 12:16 (Lunes) »
He estado revisando el CFE de danitool y ya he conseguido que al arrancar desde la SPI y cargar un CFEram (gracias danitool) detecte tambien la NAND y se pueda borrar, leer bloques o hacer un dump de la zona spare con una nueva opcion del menu y sub-opciones que no aparecen en la ayuda.
Ahora ya solo es cosa de añadir un menu con todas las opciones que tendria un programador de memorias.

En el buildcfe-RAM.sh hay que poner "make BRCM_CHIP=6328 BLD_SPI_NAND=1" en lugar de "make BRCM_CHIP=6328 BLD_NAND=1"
Sale un warning-error al compilar pero se soluciona comentando la declaracion static de checkForResetToDefaultHold en bcm63xx_devs.c

Este es el log:
(He modificado algo del codigo fuente para que identifique el modelo de mi NAND y muestre en pantalla bloques completos)



reset

Resetting board...HELO
CPUI
L1CI
DRAM
----
PHYS
ZQDN
PHYE
DINT
LSYN
USYN
MSYN
LMBE
PASS
----
ZBSS
CODE
DATA
L12F
MAIN


CFE version 2.0.3 for BCM63XX (32bit,SP,BE)
Build Date: Fri Aug 18 14:21:52 CEST 2017 (dani@tool)
Copyright (C) 2000-2009 Broadcom Corporation.

HS Serial flash device: name S25FL128, id 0x0118 size 16384KB
Total Flash size: 16384K with 256 sectors
Chip ID: BCM6328B0, MIPS: 320MHz, DDR: 320MHz, Bus: 160MHz
Main Thread: TP0
Memory Test Passed
Total Memory: 134217728 bytes (128MB)
Boot Address: 0xb8000000

Board IP address                  : 192.168.3.130:ffffff00 
Host IP address                   : 192.168.3.40 
Gateway IP address                :   
Run from flash/host (f/h)         : f 
Default host run file name        : vmlinux 
Default host flash file name      : bcm963xx_fs_kernel 
Boot delay (0-9 seconds)          : 2 
Board Id (0-3)                    : 96328avngr 
Number of MAC Addresses (1-32)    : 10 
Base MAC Address                  : 00:11:22:33:44:55 
PSI Size (1-64) KBytes            : 24 
Enable Backup PSI [0|1]           : 0 
System Log Size (0-256) KBytes    : 0 
Main Thread Number [0|1]          : 0 
Voice Board Configuration (0-11)  : AVNGR_SI32176 

*** Press any key to stop auto run (2 seconds) ***
Auto run second count down: 2211
CFE>
web info: Waiting for connection on socket 0.

CFE>
CFE> r cfe6328
0x80700000/165520 0x80728690/71284 Entry at 0x80700000
Closing network.
Disabling Switch ports.
Flushing Receive Buffers...
0 buffers found.
Closing DMA Channels.
Starting program at 0x80700000


CFE version 2.0.3 for BCM63XX (32bit,SP,BE)
Build Date: lun ene  1 10:50:30 CET 2018 (openwrt@openwrt)
Copyright (C) 2000-2009 Broadcom Corporation.

HS Serial flash device: name S25FL128, id 0x0118 block 64KB size 16384KB
NAND flash device: name ESMT F59L1G81MA, id 0xc8d1 block 128KB size 131072KB
Total Flash size: 16384K with 256 sectors
Chip ID: BCM6328B0, MIPS: 320MHz, DDR: 320MHz, Bus: 160MHz
Main Thread: TP0
Memory Test Passed
Total Memory: 134217728 bytes (128MB)
Boot Address: 0xb8000000

Board IP address                  : 192.168.3.130:ffffff00 
Host IP address                   : 192.168.3.40 
Gateway IP address                :   
Run from flash/host (f/h)         : f 
Default host run file name        : vmlinux 
Default host flash file name      : bcm963xx_fs_kernel 
Boot delay (0-9 seconds)          : 2 
Board Id (0-4)                    : 96328avngr 
Number of MAC Addresses (1-32)    : 10 
Base MAC Address                  : 00:11:22:33:44:55 
PSI Size (1-64) KBytes            : 24 
Enable Backup PSI [0|1]           : 0 
System Log Size (0-256) KBytes    : 0 
Main Thread Number [0|1]          : 0 
Voice Board Configuration (0-11)  : AVNGR_SI32176 

CFE>
web info: Waiting for connection on socket 0.

CFE> help
Available commands:

tftpd               Start TFTP server
checkmem            Check memory.
fr                  read data from flash.
nmrp                start memory or registers.
sm                  Set memory or registers.
dm                  Dump memory or registers.
chw                 Write chkw image start from beginning of the flash
w                   Write the whole image start from beginning of the flash
e                   Erase [n]vram or [a]ll flash except bootrom
n                   Erase NAND flash
r                   Run program from flash image or from host depend on [f/h] flag
p                   Print boot line and board parameter info
c                   Change booline parameters
f                   Write image to the flash
i                   Erase persistent storage data
a                   Change board AFE ID
b                   Change board parameters
reset               Reset the board
bid                 write board id to nand flash.
flashimage          Flashes a compressed image after the bootloader.
ping                Ping a remote IP host.
arp                 Display or modify the ARP Table
ifconfig            Configure the Ethernet interface
help                Obtain help for CFE commands

For more information about a command, enter 'help command-name'
*** command status = 0
CFE> n r 0x00
block read into buffer at 0x8083c110
8083c110: 10 00 00 1c 00 00 00 00 80 00 57 44 80 00 57 50    ..........WD..WP
8083c120: 80 00 5b d0 80 00 5f 30 80 00 00 00 80 00 5b d0    ..[..._0......[.
8083c130: 80 00 db a0 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c140: 80 00 0b c0 80 00 0c 80 80 00 0c 78 80 00 4f b8    ...........x..O.
8083c150: 80 00 50 f4 80 00 50 f4 80 00 50 f4 80 00 50 fc    ..P...P...P...P.
8083c160: 80 00 10 78 80 00 51 04 80 00 52 04 80 00 41 0c    ...x..Q...R...A.
8083c170: 80 00 3a c8 80 00 3a d0 80 00 0c cc 80 00 3a ac    ..:...:.......:.
8083c180: 80 00 0e 38 00 00 e0 21 04 11 00 01 00 00 00 00    ...8...!........
8083c190: 00 00 00 00 3c 16 1f ff 02 df b0 24 02 c0 20 21    ....<......$.. !
8083c1a0: 3c 1b 80 00 27 7b 00 30 3c 1f 80 00 27 ff 00 ac    <...'{.0<...'...
8083c1b0: 03 7f d8 22 04 11 00 01 00 00 00 00 03 7f d8 21    ..."...........!
8083c1c0: 3c 01 a0 00 03 61 d8 25 8f 7b 00 00 03 76 d8 21    <....a.%.{...v.!
8083c1d0: 3c 01 a0 00 03 61 d8 25 03 60 f8 09 00 00 00 00    <....a.%.`......
8083c1e0: 3c 04 48 45 34 84 4c 4f 3c 1b 80 00 27 7b 00 30    <.HE4.LO<...'{.0
8083c1f0: 3c 1f 80 00 27 ff 00 f4 03 7f d8 22 04 11 00 01    <...'......"....
8083c200: 00 00 00 00 03 7f d8 21 3c 01 a0 00 03 61 d8 25    .......!<....a.%
8083c210: 8f 7b 00 04 03 76 d8 21 3c 01 a0 00 03 61 d8 25    .{...v.!<....a.%
8083c220: 03 60 f8 09 00 00 00 00 3c 1b 80 00 27 7b 00 30    .`......<...'{.0
8083c230: 3c 1f 80 00 27 ff 01 34 03 7f d8 22 04 11 00 01    <...'..4..."....
8083c240: 00 00 00 00 03 7f d8 21 3c 01 a0 00 03 61 d8 25    .......!<....a.%
8083c250: 8f 7b 00 0c 03 76 d8 21 3c 01 a0 00 03 61 d8 25    .{...v.!<....a.%
8083c260: 03 60 f8 09 00 00 00 00 04 11 02 92 00 00 00 00    .`..............
8083c270: 3c 1b 80 00 27 7b 00 30 3c 1f 80 00 27 ff 01 7c    <...'{.0<...'..|
8083c280: 03 7f d8 22 04 11 00 01 00 00 00 00 03 7f d8 21    ..."...........!
8083c290: 8f 7b 00 40 03 76 d8 21 03 60 f8 09 00 00 00 00    .{.@.v.!.`......
8083c2a0: 3c 1b 80 00 27 7b 00 30 3c 1f 80 00 27 ff 01 ac    <...'{.0<...'...
8083c2b0: 03 7f d8 22 04 11 00 01 00 00 00 00 03 7f d8 21    ..."...........!
8083c2c0: 8f 7b 00 38 03 76 d8 21 03 60 f8 09 00 00 00 00    .{.8.v.!.`......
8083c2d0: 3c 04 44 52 34 84 41 4d 3c 1b 80 00 27 7b 00 30    <.DR4.AM<...'{.0
8083c2e0: 3c 1f 80 00 27 ff 01 e4 03 7f d8 22 04 11 00 01    <...'......"....
8083c2f0: 00 00 00 00 03 7f d8 21 8f 7b 00 04 03 76 d8 21    .......!.{...v.!
8083c300: 03 60 f8 09 00 00 00 00 3c 1b 80 00 27 7b 00 30    .`......<...'{.0
8083c310: 3c 1f 80 00 27 ff 02 14 03 7f d8 22 04 11 00 01    <...'......"....
8083c320: 00 00 00 00 03 7f d8 21 8f 7b 00 08 03 76 d8 21    .......!.{...v.!
8083c330: 03 60 f8 09 00 00 00 00 00 40 20 21 3c 1b 80 00    .`.......@ !<...
8083c340: 27 7b 00 30 3c 1f 80 00 27 ff 02 48 03 7f d8 22    '{.0<...'..H..."
8083c350: 04 11 00 01 00 00 00 00 03 7f d8 21 8f 7b 00 20    ...........!.{.
8083c360: 03 76 d8 21 03 60 f8 09 00 00 00 00 3c 1b 80 00    .v.!.`......<...
8083c370: 27 7b 00 30 3c 1f 80 00 27 ff 02 78 03 7f d8 22    '{.0<...'..x..."
8083c380: 04 11 00 01 00 00 00 00 03 7f d8 21 8f 7b 00 3c    ...........!.{.<
8083c390: 03 76 d8 21 03 60 f8 09 00 00 00 00 00 40 d0 21    .v.!.`.......@.!
8083c3a0: 17 40 00 11 00 00 00 00 3c 04 52 41 34 84 4d 58    .@......<.RA4.MX
8083c3b0: 3c 1b 80 00 27 7b 00 30 3c 1f 80 00 27 ff 02 bc    <...'{.0<...'...
8083c3c0: 03 7f d8 22 04 11 00 01 00 00 00 00 03 7f d8 21    ..."...........!
8083c3d0: 8f 7b 00 04 03 76 d8 21 03 60 f8 09 00 00 00 00    .{...v.!.`......
8083c3e0: 10 00 ff ff 00 00 00 00 24 18 01 00 03 1a 08 2a    ........$......*
8083c3f0: 14 20 00 02 00 00 00 00 03 40 c0 21 00 18 c5 00    . .......@.!....
8083c400: 24 1e 00 00 24 19 00 00 3c 04 80 00 24 84 00 08    $...$...<...$...
8083c410: 3c 1f 80 00 27 ff 03 14 00 9f 20 22 04 11 00 01    <...'..... "....
8083c420: 00 00 00 00 00 9f 20 21 8c 9c 00 18 03 9e e0 20    ...... !.......
8083c430: 3c 04 5a 42 34 84 53 53 3c 1b 80 00 27 7b 00 30    <.ZB4.SS<...'{.0
8083c440: 3c 1f 80 00 27 ff 03 44 03 7f d8 22 04 11 00 01    <...'..D..."....
8083c450: 00 00 00 00 03 7f d8 21 8f 7b 00 04 03 76 d8 21    .......!.{...v.!
8083c460: 03 60 f8 09 00 00 00 00 3c 04 80 00 24 84 00 08    .`......<...$...
8083c470: 3c 1f 80 00 27 ff 03 74 00 9f 20 22 04 11 00 01    <...'..t.. "....
8083c480: 00 00 00 00 00 9f 20 21 8c 82 00 14 8c 83 00 0c    ...... !........
8083c490: 00 5e 10 20 00 7e 18 20 ac 40 00 00 ac 40 00 04    .^. .~. .@...@..
8083c4a0: ac 40 00 08 ac 40 00 0c 20 42 00 10 00 43 08 2a    .@...@.. B...C.*
8083c4b0: 14 20 ff f9 00 00 00 00 3c 04 43 4f 34 84 44 45    . ......<.CO4.DE
8083c4c0: 3c 1b 80 00 27 7b 00 30 3c 1f 80 00 27 ff 03 cc    <...'{.0<...'...
8083c4d0: 03 7f d8 22 04 11 00 01 00 00 00 00 03 7f d8 21    ..."...........!
8083c4e0: 8f 7b 00 04 03 76 d8 21 03 60 f8 09 00 00 00 00    .{...v.!.`......
8083c4f0: 3c 04 80 00 24 84 00 08 3c 1f 80 00 27 ff 03 fc    <...$...<...'...
8083c500: 00 9f 20 22 04 11 00 01 00 00 00 00 00 9f 20 21    .. ".......... !
8083c510: 8c 89 00 10 01 20 b8 21 8c 8a 00 10 01 56 50 21    ..... .!.....VP!
8083c520: 8c 8b 00 00 01 76 58 21 8d 4c 00 00 8d 4d 00 04    .....vX!.L...M..
8083c530: 8d 4e 00 08 8d 4f 00 0c ad 2c 00 00 ad 2d 00 04    .N...O...,...-..
8083c540: ad 2e 00 08 ad 2f 00 0c 21 29 00 10 21 4a 00 10    ...../..!)..!J..
8083c550: 01 4b 08 2b 14 20 ff f4 00 00 00 00 3c 04 44 41    .K.+. ......<.DA
8083c560: 34 84 54 41 3c 1b 80 00 27 7b 00 30 3c 1f 80 00    4.TA<...'{.0<...
8083c570: 27 ff 04 70 03 7f d8 22 04 11 00 01 00 00 00 00    '..p..."........
8083c580: 03 7f d8 21 8f 7b 00 04 03 76 d8 21 03 60 f8 09    ...!.{...v.!.`..
8083c590: 00 00 00 00 3c 04 80 00 24 84 00 08 3c 1f 80 00    ....<...$...<...
8083c5a0: 27 ff 04 a0 00 9f 20 22 04 11 00 01 00 00 00 00    '..... "........
8083c5b0: 00 9f 20 21 8c 89 00 04 01 36 48 21 24 08 00 0f    .. !.....6H!$...
8083c5c0: 01 28 48 20 01 00 40 27 01 28 48 24 8c 8a 00 04    .(H ..@'.(H$....
8083c5d0: 8c 8b 00 08 01 5e 50 20 01 7e 58 20 8d 2c 00 00    .....^P .~X .,..
8083c5e0: 8d 2d 00 04 8d 2e 00 08 8d 2f 00 0c ad 4c 00 00    .-......./...L..
8083c5f0: ad 4d 00 04 ad 4e 00 08 ad 4f 00 0c 21 29 00 10    .M...N...O..!)..
8083c600: 21 4a 00 10 01 4b 08 2b 14 20 ff f4 00 00 00 00    !J...K.+. ......
8083c610: 10 00 01 20 00 00 00 00 00 00 00 00 00 00 00 00    ... ............
8083c620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c680: 63 66 65 2d 76 01 00 26 72 b9 00 00 00 00 00 00    cfe-v..&r.......
8083c690: 00 00 00 06 65 3d 31 39 32 2e 31 36 38 2e 31 2e    ....e=192.168.1.
8083c6a0: 31 3a 66 66 66 66 66 66 30 30 20 68 3d 31 39 32    1:ffffff00 h=192
8083c6b0: 2e 31 36 38 2e 31 2e 31 30 30 20 67 3d 20 72 3d    .168.1.100 g= r=
8083c6c0: 66 20 66 3d 76 6d 6c 69 6e 75 78 20 69 3d 62 63    f f=vmlinux i=bc
8083c6d0: 6d 39 36 33 78 78 5f 66 73 5f 6b 65 72 6e 65 6c    m963xx_fs_kernel
8083c6e0: 20 64 3d 31 20 70 3d 30 20 00 00 00 00 00 00 00     d=1 p=0 .......
8083c6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c790: 00 00 00 00 39 36 33 32 38 61 76 6e 67 72 00 00    ....96328avngr..
8083c7a0: 00 00 00 00 00 00 00 00 00 00 00 18 00 00 00 10    ................
8083c7b0: 94 4a 0c 55 a8 c0 00 00 00 00 00 00 00 00 00 00    .J.U............
8083c7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
8083c800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
.
.
.

Desconectado Tki2000

  • Moderador
  • *
  • Mensajes: 2247
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #14 en: 02-01-2018, 15:56 (Martes) »
Interesante aporte, a fe mía.  >:(

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #15 en: 17-01-2018, 18:57 (Miércoles) »
¿Alguien que sepa como manejan los bcm63xx la correccion de errores en las memorias NAND?

Ya tengo el zocalo soldado y he programado opciones nuevas en el menu del CFE. Puedo borrar, leer y grabar en la NAND desde y hacia un servidor tftp ficheros en formato raw, es decir, imagenes en bruto de otras memorias.
Pero llevo dias con un problema que no consigo solucionar por mas pruebas que intento. Quiero escribir en los 16 bytes de la zona spare de cada pagina de una NAND NAND512W3A de 64MB pero no puedo hacerlo en las posiciones 7,8 y 9 que por lo visto se utilizan para correccion de errores ECC, y siempre obtengo datos distintos a los que mando escribir.

Mi pregunta es si el ECC lo gestiona el propio bcm6328 y si se puede configurar para que no lo haga.

Saludos

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #16 en: 23-01-2018, 10:39 (Martes) »
Duda resuelta. El bcm6328 gestiona por si solo el ECC en las memorias NAND y se puede desactivar poniendo a 0 los bits 30 y 31 del registro NandAccControl.

danitool

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #17 en: 06-03-2018, 20:24 (Martes) »
Gracias antares por estas modificaciones en CFE. Para el que quiera hacer este mod para programar la memoria NAND:

https://openwrt.org/toh/sercomm/ad1018#nand_flash_programmer

donde hay una pequeña guía y está colgado el CFE-RAM modificado, junto con un par de fotos del MOD

Gracias a este mod he podido hacer varias pruebas flasheando firmwares en la NAND, hasta extraer correctamente el firmware original. Extraí dos versiones, una mi dump y otro del de antares:

AD1018-firmware_OEM-VFES_2.0.08.img
AD1018-firmware_OEM-VFES_2.1.03.img

Y finalmente pude también hacer una compilación personalizada, la cual se carga correctamente:
AD1018-firmware_MOD-VFES_3.0.11.img

Estos firmwares originales solo son flasheables desde otro firmware. Desde CFE no pude flashearlos porque parece ser que Sercomm usa una utilidad específica para enviar el firmware cuando se entra en modo recuperación en CFE (p.ej pulsando el botón de reset). Y por lo que veo no está disponible para este dispositivo en concreto.
« Última modificación: 07-03-2018, 10:19 (Miércoles) por danitool »

antares

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #18 en: 07-03-2018, 21:31 (Miércoles) »
Voy a ver si puedo poner en el servidor web las opciones del menu de consola. Asi se evitaria el tener que conectar por el puerto serie.
En este enlace hay una foto ampliada de los pads de la NAND. Son 19 cablecillos los que hay que soldar.
Tambien se podrian usar 2 conectores FPC de 24p 0,5mm para cable plano unidos a un zocalo ZIF de palanca donde poner el adaptador TSOP48.
http://i64.tinypic.com/rcv50i.jpg

danitool

  • Visitante
Re: [Desarrollo] LEDE en Sercomm AD1018
« Respuesta #19 en: 08-03-2018, 10:26 (Jueves) »
Voy a ver si puedo poner en el servidor web las opciones del menu de consola. Asi se evitaria el tener que conectar por el puerto serie.
En este enlace hay una foto ampliada de los pads de la NAND. Son 19 cablecillos los que hay que soldar.
Tambien se podrian usar 2 conectores FPC de 24p 0,5mm para cable plano unidos a un zocalo ZIF de palanca donde poner el adaptador TSOP48.
http://i64.tinypic.com/rcv50i.jpg


Por mi parte he estado probando a reducir el tamaño de CFE, para que quepa en el primer bloque de la flash (64KB) sin perder funciones importantes como es el servidor web. Lo he conseguido, con lo cual no haría falta versión RAM y se conservaría la compatibilidad con el CFE que tenemos para OpenWrt.

También de paso he estado revisando el soporte NAND en OpenWrt, ya que han subido de versión de kernel y ésta ya incorpora los drivers. Resulta que las versiones soportadas en el kernel para bcm63xx son a partir de la 4.0 (bcm63268), pero el AD1018 usa la versión 2 (bcm6328, bcm6368). De momento solo he conseguido que me detectase la NAND en un bcm6368 y poco más. Lo seguro es que no debería hacer falta mucho más que añadir los registros de esta versión en concreto.