--- /users/lpovlsen/project/GRocX/uboot-grocx/lib_arm/board.c	2008-04-25 23:21:10.000000000 +0200
+++ u-boot-1.1.4/lib_arm/board.c	2008-05-10 22:35:22.000000000 +0200
@@ -249,6 +249,15 @@
 	NULL,
 };
 
+static void write_gd(unsigned long value)
+{
+    __asm__ __volatile__(
+        "mov r8, %0\n"
+        :
+        : "r" (value)
+        : "memory");
+}
+
 void start_armboot (void)
 {
 	DECLARE_GLOBAL_DATA_PTR;
@@ -265,6 +274,7 @@
 	/* compiler optimization barrier needed for GCC >= 3.4 */
 	__asm__ __volatile__("": : :"memory");
 
+        write_gd(gd);
 	memset ((void*)gd, 0, sizeof (gd_t));
 	gd->bd = (bd_t*)((char*)gd - sizeof(bd_t));
 	memset (gd->bd, 0, sizeof (bd_t));
