From c85ff0553a8cfbcca51c15b947e1ed55d3810a39 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Mon, 24 Nov 2008 11:38:22 +0100 Subject: microblaze: Set up relocation is done --- lib_microblaze/board.c | 1 + 1 file changed, 1 insertion(+) (limited to 'lib_microblaze') diff --git a/lib_microblaze/board.c b/lib_microblaze/board.c index 250972cb692..4f48341f33b 100644 --- a/lib_microblaze/board.c +++ b/lib_microblaze/board.c @@ -120,6 +120,7 @@ void board_init (void) bd->bi_baudrate = CONFIG_BAUDRATE; bd->bi_memstart = CONFIG_SYS_SDRAM_BASE; bd->bi_memsize = CONFIG_SYS_SDRAM_SIZE; + gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */ /* Initialise malloc() area */ mem_malloc_init (); -- cgit v1.2.3 From b4f8dda35bfad447b4106828232705b2e878d168 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Mon, 5 Jan 2009 13:28:40 +0100 Subject: microblaze: Add bootup messages to board.c --- lib_microblaze/board.c | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) (limited to 'lib_microblaze') diff --git a/lib_microblaze/board.c b/lib_microblaze/board.c index 4f48341f33b..732f81e767d 100644 --- a/lib_microblaze/board.c +++ b/lib_microblaze/board.c @@ -111,6 +111,10 @@ void board_init (void) gd = (gd_t *) CONFIG_SYS_GBL_DATA_OFFSET; #if defined(CONFIG_CMD_FLASH) ulong flash_size = 0; +#endif +#if defined(CONFIG_CMD_NET) + char *s, *e; + int i; #endif asm ("nop"); /* FIXME gd is not initialize - wait */ memset ((void *)gd, 0, CONFIG_SYS_GBL_DATA_SIZE); @@ -132,11 +136,37 @@ void board_init (void) } } + puts ("SDRAM :\n"); +#if defined(CONFIG_CMD_CACHE) + puts ("\tEnabling caches :\n"); + printf ("\t\tIcache:%s\n", icache_status() ? "OK" : "FAIL"); + printf ("\t\tDcache:%s\n", dcache_status() ? "OK" : "FAIL"); +#endif + printf ("\tU-Boot Start:0x%08x\n", TEXT_BASE); + #if defined(CONFIG_CMD_FLASH) + puts ("FLASH: "); bd->bi_flashstart = CONFIG_SYS_FLASH_BASE; if (0 < (flash_size = flash_init ())) { bd->bi_flashsize = flash_size; bd->bi_flashoffset = CONFIG_SYS_FLASH_BASE + flash_size; +# ifdef CONFIG_SYS_FLASH_CHECKSUM + print_size (flash_size, ""); + /* + * Compute and print flash CRC if flashchecksum is set to 'y' + * + * NOTE: Maybe we should add some WATCHDOG_RESET()? XXX + */ + s = getenv ("flashchecksum"); + if (s && (*s == 'y')) { + printf (" CRC: %08X", + crc32 (0, (const unsigned char *) CONFIG_SYS_FLASH_BASE, flash_size) + ); + } + putc ('\n'); +# else /* !CONFIG_SYS_FLASH_CHECKSUM */ + print_size (flash_size, "\n"); +# endif /* CONFIG_SYS_FLASH_CHECKSUM */ } else { puts ("Flash init FAILED"); bd->bi_flashstart = 0; @@ -146,10 +176,9 @@ void board_init (void) #endif #if defined(CONFIG_CMD_NET) - char *s, *e; - int i; /* board MAC address */ s = getenv ("ethaddr"); + printf ("MAC:%s\n",s); for (i = 0; i < 6; ++i) { bd->bi_enetaddr[i] = s ? simple_strtoul (s, &e, 16) : 0; if (s) -- cgit v1.2.3 From e9b737deb2c30125362d20e24170617476026e94 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Mon, 5 Jan 2009 13:29:32 +0100 Subject: microblaze: Add cache flush --- lib_microblaze/cache.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'lib_microblaze') diff --git a/lib_microblaze/cache.c b/lib_microblaze/cache.c index a2f7493b61e..4b2e8e3790e 100644 --- a/lib_microblaze/cache.c +++ b/lib_microblaze/cache.c @@ -26,6 +26,18 @@ void flush_cache (ulong addr, ulong size) { - /* MicroBlaze have write thruough cache. nothing to do. */ - return; + int i; + for (i = 0; i < size; i += 4) + asm volatile ( +#ifdef CONFIG_ICACHE + "wic %0, r0;" +#endif + "nop;" +#ifdef CONFIG_DCACHE + "wdc %0, r0;" +#endif + "nop;" + : + : "r" (addr + i) + : "memory"); } -- cgit v1.2.3 From e7f325be9edeb84bb457301776bbac1f7257dafc Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Mon, 5 Jan 2009 13:35:31 +0100 Subject: microblaze: Use cache functions (especially cache status) in systems which are configured without flash --- lib_microblaze/board.c | 3 --- 1 file changed, 3 deletions(-) (limited to 'lib_microblaze') diff --git a/lib_microblaze/board.c b/lib_microblaze/board.c index 732f81e767d..30d7641868d 100644 --- a/lib_microblaze/board.c +++ b/lib_microblaze/board.c @@ -137,11 +137,8 @@ void board_init (void) } puts ("SDRAM :\n"); -#if defined(CONFIG_CMD_CACHE) - puts ("\tEnabling caches :\n"); printf ("\t\tIcache:%s\n", icache_status() ? "OK" : "FAIL"); printf ("\t\tDcache:%s\n", dcache_status() ? "OK" : "FAIL"); -#endif printf ("\tU-Boot Start:0x%08x\n", TEXT_BASE); #if defined(CONFIG_CMD_FLASH) -- cgit v1.2.3