[Gen9, Gen10 General] scholbert:
u-boot up and running ;-))))

Hey,

it's fantastic...

...after some days of hacking, code sourcing and a lot of research an essential step is made:

U-Boot SPL 2012.04.01 (Jul 03 2012 - 23:51:30)
OMAP4430 ES2.3
OMAP SD/MMC: 0
reading u-boot.img
reading u-boot.img

U-Boot 2012.04.01 (Jul 03 2012 - 23:51:30)

CPU : OMAP4430 ES2.3
Board: Archos A80G9
I2C: ready
DRAM: 512 MiB
MMC: OMAP SD/MMC: 0
Using default environment

In: serial
Out: serial
Err: serial
Battery Voltage: 3881 mV
checking for preEnv.txt
reading preEnv.txt

** Unable to read "preEnv.txt" from mmc 0:1 **
Hit any key to stop autoboot: 0
A80G9 #

As already stated in my last post, i started to port linaro u-boot stable to the A80G9 tablet.

First i ran into trouble using an older MicroSD, which seemed not to play well with the code. After swapping the card and some code reviews it's working out quite nice... so this is external booting from MicroSD :D

The output is done over the serial lines of uart1.

There's some power issue with the input though, but this is easy to fix (fixed in hardware already).

EDIT:

Here's the environment so far (which is the pandaboard setup apart from uart):

A80G9 # print
baudrate=115200
bootcmd=if mmc rescan ${mmcdev}; then if run loadbootenv; then echo Loaded enviibootdelay=3
bootenv=uEnv.txt
bootscr=boot.scr
bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
console=ttyO0,115200n8
importbootenv=echo Importing environment from mmc ...; env import -t $loadaddr eimportpreenv=echo Importing preboot environment from mmc ...; env import -t $loekernel_addr_r=0x88000000
loadaddr=0x82000000
loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenv}
loadbootscript=fatload mmc ${mmcdev} ${loadaddr} ${bootscr}
loadpreenv=fatload mmc ${mmcdev} ${loadaddr} ${preenv}
loaduimage=fatload mmc ${mmcdev} ${loadaddr} uImage
mmcargs=setenv bootargs console=${console} vram=${vram} root=${mmcroot} rootfst}mmcboot=echo Booting from mmc${mmcdev} ...; run mmcargs; bootm ${loadaddr}
mmcdev=0
mmcroot=/dev/mmcblk0p2 rw
mmcrootfstype=ext3 rootwait
preboot=echo checking for ${preenv};if mmc rescan ${mmcdev}; then if run loadpripreenv=preEnv.txt
pxefile_addr_r=0x86000000
ramdisk_addr_r=0x81600000
usbtty=cdc_acm
vram=16M

Environment size: 1611/131068 bytes
A80G9 #

The commands already implemented:

A80G9 # help
? - alias for 'help'
base - print or set address offset
bat - battery charging, voltage/current measurements
bdinfo - print Board Info structure
boot - boot default, i.e., run 'bootcmd'
bootd - boot default, i.e., run 'bootcmd'
bootm - boot application image from memory
cmp - memory compare
coninfo - print console devices and information
cp - memory copy
crc32 - checksum calculation
echo - echo args to console
editenv - edit environment variable
env - environment handling commands
exit - exit script
ext2load- load binary file from a Ext2 filesystem
ext2ls - list files in a directory (default /)
false - do nothing, unsuccessfully
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls - list files in a directory (default /)
fdt - flattened device tree utility commands
go - start application at address 'addr'
help - print command description/usage
i2c - I2C sub-system
iminfo - print header information for application image
imxtract- extract a part of a multi-image
itest - return true/false on integer compare
loadb - load binary file over serial line (kermit mode)
loads - load S-Record file over serial line
loady - load binary file over serial line (ymodem mode)
loop - infinite loop on address range
md - memory display
mm - memory modify (auto-incrementing address)
mmc - MMC sub system
mmcinfo - display MMC info
mtest - simple RAM read/write test
mw - memory write (fill)
nm - memory modify (constant address)
printenv- print environment variables
reset - Perform RESET of the CPU
run - run commands in an environment variable
setenv - set environment variables
showvar - print local hushshell variables
sleep - delay execution for some time
source - run script from memory
test - minimal test like /bin/sh
true - do nothing, successfully
version - print monitor, compiler and linker version
A80G9 #

... and finally this is what mmcinfo give me:

A80G9 # mmcinfo
Device: OMAP SD/MMC
Manufacturer ID: 2
OEM: 544d
Name: SA02G
Tran Speed: 25000000
Rd Block Len: 512
SD version 2.0
High Capacity: No
Capacity: 1.8 GiB
Bus Width: 4-bit

So everything's fine with the external card now.

What's next:

- some more bug fixing to be done (nearly done)

- rework the board configuration to better match the A80G9 system (WIP)

What's in the future:

- implement more functions

- implement graphics

P.S.: I know this is a very technical post again and i know that some might not follow my path.

Anyway this is the way to an open bootloader for the Gen9 with a variety of features (e.g. fastboot, true multiboot menu).

It'll take some time to implement these things, but i do it for education and fun!

See ya!!

scholbert