Ver Mensaje Individual
Antiguo 04/04/2006, 18:57   #278
ferix
Usuario Activo
 
Fecha de ingreso: 12/jul/2005
Mensajes: 82
ferix está en el buen camino
acerca del firmware...

Bueno, como ya comenté en otra ocasión, el deco tiene un bootloader de dos etapas.
El primero, el BOONG, se encarga de configurar el procesador del deco y los elementos básicos como la flash, la memoria dram, la ocm (on chip memmory), el puerto serie, y poco más.
Esta parte del boot la tengo totalmente desensamblada (y comentada) y es igual para todos los decos. La configuración la coge de unas tablas y varia solamente en 16 bytes de un deco con 2 flash a uno con 1 sola.
Luego está el boot de la segunda etapa, que es el que se encarga de arrancar el programa del deco, que por lo que he visto, debe de ser alguna especie de s.o. propio de sagem.
En la flash hay tambien un sistema de archivos (fs) donde presumo se haya el programa y los 'drivers', pero esto ya es una suposición.
Por cierto, cuando sobreescribes la flash, sobreescribes tambien el boot, con lo cual, da igual que BOONG tenga el deco.
Lo más importante es que coincida el hardware ID, ya que el s.o. está configurado en función de esa información.

Por cierto, podeis cargaros del todo la flash (borrandola, por ejemplo), y el flasher siempre podrá restaurarla, ya que lo primero que hace es cargar en el pipeline del procesador las instrucciones necesarias para configurarla y poder acceder a ella. Esta info la saqué directamente del BOONG.
De hecho, el flasher lo que hace es poner la cpu en modo debug. En este modo, el procesador solo ejecuta la instrucción en curso en el pipeline, y se queda esperando.
Así el flasher va 'alimentando' el pipeline a medida que se ejecutan las instrucciones, con lo cual puede funcionar sin ningun tipo de memoria exterior (no necesita leer las instrucciones de la memoria ya que 'aparecen' directamente en el pipeline)...
Digamos que el procesador se convierte en una especie de zombie a las ordenes del flasher.

Por cierto, es posible que el deco de todos esos errores por las siguientes causas:
a) El dump del firmware libre está corrupto (probable si se hizo desde windows) y por lo tanto el CRC es erroneo.
b) Si lo habeis modificado para añadir o cambiar algo, no coincide el CRC (similar al caso anterior).
c) Que si no se producen los casos a y/o b, el deco probablemente compare el número de serie de la flash con el que tiene en la eeprom (está cerca del euroconector, es un IC de 8 patillas que pone 24LC64 en mi caso) y suponga que algo 'no va bien'.

Seria de bastante utilidad poder leer esa eeprom para salir de dudas, así que voy a ver la manera de hacerlo.


Bueno, espero haberme explicado bien :P


Saludos.

***Modificación***

He conseguido conectar el gdb (Gnu DeBugger) al jtag a traves de las herramientas de Macraigor, en concreto con el OCDRemote, con lo cual ya puedo empezar a desarrollar cosas más interesantes, como el kernel de linux

Saludos.

Última edición por ferix; 04/04/2006 a las 19:04.
ferix está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir