diff options
Diffstat (limited to 'lib_arm')
-rw-r--r-- | lib_arm/board.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib_arm/board.c b/lib_arm/board.c index e97e158..7673d06 100644 --- a/lib_arm/board.c +++ b/lib_arm/board.c @@ -217,6 +217,9 @@ void start_armboot (void) /* Pointer is writable since we allocated a register for it */ gd = (gd_t*)(_armboot_start - CFG_MALLOC_LEN - sizeof(gd_t)); + /* compiler optimization barrier needed for GCC >= 3.4 */ + __asm__ __volatile__("": : :"memory"); + memset ((void*)gd, 0, sizeof (gd_t)); gd->bd = (bd_t*)((char*)gd - sizeof(bd_t)); memset (gd->bd, 0, sizeof (bd_t)); |