Got it!
I'm posting my personal notes and hopes that someone might find it useful.
Short version:Build the current stable release of U-Boot (v2010.09) boot it and you will see a boot logo and some text on the display!
This is a strong indication of that the display is working correctly.

Change the at91sam9m10g45.h (in include/configs/) and rebuild.
Flash an image.bmp to a well known location in the Nand Flash and boot the new u-boot.bin.
Now the image is showing up!
Sweet.
Long version: Get source code:
git clone
git://git.denx.de/u-boot.git u-boot/
git checkout v2010.09
git checkout -b v2010.09_sam9g45ekes
Configure:
gedit u-boot-1.3.4/include/configs/at91sam9m10g45ek.h
(Created with: git diff at91sam9m10g45ek.h):
--------------------------------------
diff --git a/include/configs/at91sam9m10g45ek.h b/include/configs/at91sam9m10g45
index 44c5496..51266cf 100644
--- a/include/configs/at91sam9m10g45ek.h
+++ b/include/configs/at91sam9m10g45ek.h
@@ -49,6 +49,9 @@
#define CONFIG_SKIP_LOWLEVEL_INIT
#define CONFIG_SKIP_RELOCATE_UBOOT
+/* pre-boot commands */
+#define CONFIG_PREBOOT "nand read 22000000 100000 40000 ;bmp display 22000000
+
/*
* Hardware drivers
*/
@@ -62,14 +65,15 @@
/* LCD */
#define CONFIG_LCD 1
#define LCD_BPP LCD_COLOR8
-#define CONFIG_LCD_LOGO 1
+//#define CONFIG_LCD_LOGO 1
#undef LCD_TEST_PATTERN
-#define CONFIG_LCD_INFO 1
-#define CONFIG_LCD_INFO_BELOW_LOGO 1
-#define CONFIG_SYS_WHITE_ON_BLACK 1
+//#define CONFIG_LCD_INFO 1
+//#define CONFIG_LCD_INFO_BELOW_LOGO 1
+//#define CONFIG_SYS_WHITE_ON_BLACK 1
#define CONFIG_ATMEL_LCD 1
#define CONFIG_ATMEL_LCD_RGB565 1
#define CONFIG_SYS_CONSOLE_IS_IN_ENV 1
+#define CONFIG_SPLASH_SCREEN 1
/* board specific(not enough SRAM) */
#define CONFIG_AT91SAM9G45_LCD_BASE 0x73E00000
@@ -103,6 +107,7 @@
#define CONFIG_CMD_DHCP 1
#define CONFIG_CMD_NAND 1
#define CONFIG_CMD_USB 1
+#define CONFIG_CMD_BMP 1
/* SDRAM */
#define CONFIG_NR_DRAM_BANKS 1
--------------------------------------
Build:
make distclean
make at91sam9g45ekes_nandflash_config
make CROSS_COMPILE=arm-linux-
wait for it...
When done u-boot.bin is the file to flash to the Nand flash at addr 0x20000 using either SAM-BA (Under Windows!) or by using TFTP.
TFTP (Note that I'm using BOOTP to assign IP addresses and paths):
(Halt autoboot)
U-Boot> bootp
U-Boot> tftp 22000000 u-boot/u-boot.bin
U-Boot> nand erase 20000 40000
U-Boot> nand write 22000000 20000 40000
NAND write: device 0 offset 0x20000, size 0x40000
262144 bytes written: OK
Flashing the image over TFTP:
U-Boot> bootp
U-Boot> tftp 22000000 bootsplash.bmp
U-Boot> bmp info 22000000
U-Boot> nand erase 100000 40000
U-Boot> nand write $(fileaddr) 100000 40000
U-Boot> printenv preboot
preboot=nand read 22000000 100000 40000 ; bmp display 22000000
U-Boot> reset
Can you see the image?
Either you did something wrong or else I missed writing it all down.
Kernel splash:Great with a picture at start up but is only displayed on till the kernel is (re)initializing the display/framebuffers.
I hadn't found a solution to this and reading
http://www.denx.de/wiki/DULG/LinuxSplashScreen doesn't help much.
Any one who got that one?(!)
// Thomas S