Problema de arranque en la FOX Board G20

La FOX Board G20  no arranca , solo sacando la batería y poniéndola en su sitio podemos recuperarla, la causa parece ser debida a un fallo de alimentación justo después del “Room Boot” y a un problema del firmware u-boot localizado en la DataFlash.Para solucionar el problema vamos a parchear el fichero fuente at91sam9260ek.c  con un patch de Stefano Barbato (http://www.codesink.org) .

Parchear el fichero fuente


Vamos a descargar el fichero u-boot-2009.08.tar.bz2   y el parche  foxg20-20091222.patch para corregir el problema de “boot”  .El patch y el fichero uboot.bin para fijar el problema están disponibles en  la pagina

http://foxg20.acmesystems.it/doku.php?id=dev:uboot

Para ello bajamos la versión de u-boot de este link

http://ftp.denx.de/pub/u-boot/u-boot-2009.08.tar.bz2

descomprimimos el fichero u-boot-2009.08.tar.bz2

$ tar xjvf u-boot-2009.08.tar.bz2

Entramos en el recien creado directorio de u-boot y copiamos el parche   foxg20-20091222.patch en su interior 

Ahora ejecutamos el parche

$ patch -p1 < foxg20-20091222.patch











Sourcery G++ Lite

Para recompilar nuestro nuevo uboot.bin parcheado utilizaremos Sourcery G++ Lite


Bajamos la versión Linux de Sourcery G++ Lite 2008q3-66 para ARM EABI desde este LINK

http://www.codesourcery.com/sgpp/lite/arm/portal/release642

Copiamos y ejecutamos arm-2008q3-66-arm-none-eabi.bin para instalar Sourcery G++

$ chmod +x arm-2008q3-66-arm-none-eabi.bin
$ ./arm-2008q3-66-arm-none-eabi.bin

La instalación comienza,

Seleccionamos la versión típica y aceptamos siempre por defecto
Configuramos las variables de contexto “environment variables”.Lógicamente los directorios pueden cambiar , y tendrás que adaptarlos a tu situacion $ export ARCH=arm $ export CROSS_COMPILE=/<tu directorio home>/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-eabi- Ahora lanzamos la “cross compilación” $ make at91sam9g20ek_dataflash_cs1_config $ make Tras ello obtendremos “el plomo se habra convertido en oro, nuestra piedra filosofal” el nuevo u-boot.bin .El fichero original u-boot.bin lo tenemos en http://foxg20.acmesystems.it/download/u-boot.bin preparado para ser insertado en la flash de la FOX Board G20

Samba el ultimo paso

Atmel suministra un set de herramientas para programar el microcontrolador AT91SAM9 a través del interface cliente USB.

Con la utilidad Atmel SAM-BA (SAM Boot Assistance) inicializaremos el contenido de 8Mb de la dataFlash instalada en la FOX Board G20 
De  hecho es el método usado por Acme Systems para inicializar las  FOX Board G20

Descargaremos el fichero comprimido SAM-BA_CDC.zip (Linux - v1.13 current release)

El fichero lo tenemos en http://www.atmel.com/dyn/products/tools_card.asp?tool_id=4359


y lo descomprimiremos en nuestro directorio home escribiendo

$ unzip sam-ba_2.9_cdc_linux.zip

En el interior del directorio del directorio SAMBA ,sam-ba_cdc_2.9.linux_cdc_linux creare un directorio  foxg20 con los tres ficheros necesarios ,at91bootstrap.bin,fox20.tcl (Script para automatizar la copia en la Flash con SAM-BA), y nuestro nuevo u-boot.bin (que lo hemos recuperado de nuestro directorio u-boot-2009.08).

http://foxg20.acmesystems.it/download/at91bootstrap.bin

http://foxg20.acmesystems.it/download/u-boot.bin*Aquí voy a utilizar mi u-boot.bin que ha sido creado 
en u-boot-2009.08 2009.08 , el cual esta parcheado y colocado estrategicamente en el directorio de SAM-BA;)

Para automatizar la copia en la DataFlash, un procedimiento automático de ACME SYSTEMS, 

http://foxg20.acmesystems.it/download/foxg20.tcl


Solo nos queda conectar  el MINI-USB ,( el puerto cliente de la FOX Board G20 ) hacia nuestro PC en UBUNTU

Cortorcicuitamos la FOX Board G20 en el punto estratégico (CS – 3V3) ver foto , tras arrancar quitamos el cortocircuito (que hemos realizado con unas pinzas por ejemplo, aunque en mi FOX Board G20 personal la he dotado de un terminal jumper para este propósito).
Efectuando en el terminal Ubuntu $ lsusb nos tiene que identificar algo así como Device 008: ID 03eb:6124 Atmel Corp. at91sam SAMBA bootloader escribimos $ sudo modprobe usbserial vendor=0x03eb product=0x6124 y $ dmesg

Ahora estamos en condiciones de comunicarnos con la FOX Board G20 a a través de SAM-BA

Ahora en el directorio de samba que en mi caso es
 /home/icaro/sam-ba_cdc_2.9.linux_cdc_linux

ejecuto

./sam-ba /dev/ttyUSB0 at91sam9g20-ek foxg20/foxg20.tcl

y flasheamos con SAM-BA utilizando el puerto USB0


Version pdf del documento / Vesion odt del documento