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