From 370ec734557d0b0f266e6d0953229ee12cae5edd Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 9 Oct 2009 02:22:11 -0400 Subject: [PATCH 1/3] Blackfin: Remove relocation fixups Blackfin pieces like commit 0630535e2d062dd73c1ceca5c6125c86d1127a49. Signed-off-by: Mike Frysinger --- include/asm-blackfin/config.h | 3 +++ include/asm-blackfin/global_data.h | 1 - lib_blackfin/board.c | 2 -- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/asm-blackfin/config.h b/include/asm-blackfin/config.h index 25794dd4bf..327843d0b6 100644 --- a/include/asm-blackfin/config.h +++ b/include/asm-blackfin/config.h @@ -18,6 +18,9 @@ # define CONFIG_BFIN_SCRATCH_REG retn #endif +/* Relocation to SDRAM works on all Blackfin boards */ +#define CONFIG_RELOC_FIXUP_WORKS + /* Make sure the structure is properly aligned */ #if ((CONFIG_SYS_GBL_DATA_ADDR & -4) != CONFIG_SYS_GBL_DATA_ADDR) # error CONFIG_SYS_GBL_DATA_ADDR: must be 4 byte aligned diff --git a/include/asm-blackfin/global_data.h b/include/asm-blackfin/global_data.h index 3194b72a53..b78b04cd6b 100644 --- a/include/asm-blackfin/global_data.h +++ b/include/asm-blackfin/global_data.h @@ -44,7 +44,6 @@ typedef struct global_data { unsigned long baudrate; unsigned long have_console; /* serial_init() was called */ phys_size_t ram_size; /* RAM size */ - unsigned long reloc_off; /* Relocation Offset */ unsigned long env_addr; /* Address of Environment struct */ unsigned long env_valid; /* Checksum of Environment valid? */ #if defined(CONFIG_POST) || defined(CONFIG_LOGBUFFER) diff --git a/lib_blackfin/board.c b/lib_blackfin/board.c index 3670d2caa4..bf943ea781 100644 --- a/lib_blackfin/board.c +++ b/lib_blackfin/board.c @@ -296,7 +296,6 @@ static void board_net_init_r(bd_t *bd) void board_init_r(gd_t * id, ulong dest_addr) { - extern void malloc_bin_reloc(void); char *s; bd_t *bd; gd = id; @@ -310,7 +309,6 @@ void board_init_r(gd_t * id, ulong dest_addr) /* initialize malloc() area */ mem_malloc_init(CONFIG_SYS_MALLOC_BASE, CONFIG_SYS_MALLOC_LEN); - malloc_bin_reloc(); #if !defined(CONFIG_SYS_NO_FLASH) /* Initialize the flash and protect u-boot by default */ From 1f003cf4738a199d99c818124784058526d2d40e Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 9 Oct 2009 02:24:33 -0400 Subject: [PATCH 2/3] Blackfin: reset watchdog in udelay() All arches apparently should reset the watchdog in their udelay loop as noted on the mailing list recently: > A comment in flash_status_check() suggests that udelay() is > expected to reset the watchdog, but I can't find any architecture > where it does. If this is missing in other architectures, it should be fixed at the root cause, i. e. in udelay() or in the respective support routines. Signed-off-by: Mike Frysinger --- cpu/blackfin/interrupts.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cpu/blackfin/interrupts.c b/cpu/blackfin/interrupts.c index bf6fb4b4cf..19456e5c14 100644 --- a/cpu/blackfin/interrupts.c +++ b/cpu/blackfin/interrupts.c @@ -20,6 +20,7 @@ #include #include +#include #include #include "cpu.h" @@ -70,6 +71,8 @@ void udelay(unsigned long usec) cclk = (CONFIG_CCLK_HZ); while (usec > 1) { + WATCHDOG_RESET(); + /* * how many clock ticks to delay? * - request(in useconds) * clock_ticks(Hz) / useconds/second From d087d19a994e741f0ce526124be117c90be482ae Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 13 Oct 2009 21:58:26 -0400 Subject: [PATCH 3/3] Blackfin: drop MAC display at boot The default Blackfin boot would display the MAC address for the first NIC, but this relies on the environment. The current net multi stack no longer writes the default hardware settings to the environment, so most of the time the display shows all zeros. This can be pretty confusing and really doesn't add anything useful, so just drop it. Signed-off-by: Mike Frysinger --- lib_blackfin/board.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib_blackfin/board.c b/lib_blackfin/board.c index bf943ea781..6cade7d110 100644 --- a/lib_blackfin/board.c +++ b/lib_blackfin/board.c @@ -278,7 +278,6 @@ static void board_net_init_r(bd_t *bd) bb_miiphy_init(); #endif #ifdef CONFIG_CMD_NET - uchar enetaddr[6]; char *s; if ((s = getenv("bootfile")) != NULL) @@ -288,9 +287,6 @@ static void board_net_init_r(bd_t *bd) printf("Net: "); eth_initialize(gd->bd); - - eth_getenv_enetaddr("ethaddr", enetaddr); - printf("MAC: %pM\n", enetaddr); #endif }