defined(CONFIG_SOFT_I2C)
#include <i2c.h>
#endif
-#if defined(CONFIG_HARD_SPI)
#include <spi.h>
-#endif
-#if defined(CONFIG_CMD_NAND)
-void nand_init (void);
-#endif
+#include <nand.h>
static char *failed = "*** failed ***\n";
DECLARE_GLOBAL_DATA_PTR;
-#if defined(CFG_ENV_IS_EMBEDDED)
+#if defined(CONFIG_ENV_IS_EMBEDDED)
#define TOTAL_MALLOC_LEN CFG_MALLOC_LEN
-#elif ( ((CFG_ENV_ADDR+CFG_ENV_SIZE) < CFG_MONITOR_BASE) || \
- (CFG_ENV_ADDR >= (CFG_MONITOR_BASE + CFG_MONITOR_LEN)) ) || \
- defined(CFG_ENV_IS_IN_NVRAM)
-#define TOTAL_MALLOC_LEN (CFG_MALLOC_LEN + CFG_ENV_SIZE)
+#elif ( ((CONFIG_ENV_ADDR+CONFIG_ENV_SIZE) < CFG_MONITOR_BASE) || \
+ (CONFIG_ENV_ADDR >= (CFG_MONITOR_BASE + CFG_MONITOR_LEN)) ) || \
+ defined(CONFIG_ENV_IS_IN_NVRAM)
+#define TOTAL_MALLOC_LEN (CFG_MALLOC_LEN + CONFIG_ENV_SIZE)
#else
#define TOTAL_MALLOC_LEN CFG_MALLOC_LEN
#endif
#define CFG_MEM_TOP_HIDE 0
#endif
-extern ulong _start;
extern ulong __init_end;
extern ulong _end;
ulong monitor_flash_len;
return ((void *) old);
}
-char *strmhz (char *buf, long hz)
-{
- long l, n;
- long m;
-
- n = hz / 1000000L;
- l = sprintf (buf, "%ld", n);
- m = (hz % 1000000L) / 1000L;
- if (m != 0)
- sprintf (buf + l, ".%03ld", m);
- return (buf);
-}
-
/*
* All attempts to come up with a "common" initialization sequence
* that works for all boards and architectures failed: some of the
************************************************************************
*/
+#ifdef CONFIG_LOGBUFFER
+unsigned long logbuffer_base(void)
+{
+ return CFG_SDRAM_BASE + get_effective_memsize() - LOGBUFF_LEN;
+}
+#endif
+
void board_init_f (ulong bootflag)
{
bd_t *bd;
/* compiler optimization barrier needed for GCC >= 3.4 */
__asm__ __volatile__("": : :"memory");
-#if !defined(CONFIG_CPM2) && !defined(CONFIG_MPC83XX)
+#if !defined(CONFIG_CPM2) && !defined(CONFIG_MPC83XX) && \
+ !defined(CONFIG_MPC85xx) && !defined(CONFIG_MPC86xx)
/* Clear initial global data */
memset ((void *) gd, 0, sizeof (gd_t));
#endif
*/
gd->ram_size -= CFG_MEM_TOP_HIDE;
-#ifndef CONFIG_MAX_MEM_MAPPED
-#define CONFIG_MAX_MEM_MAPPED (256 << 20)
-#endif
-
-#ifndef CONFIG_VERY_BIG_RAM
addr = CFG_SDRAM_BASE + get_effective_memsize();
-#else
- /* only allow stack below 256M */
- addr = CFG_SDRAM_BASE +
- (gd->ram_size > CONFIG_MAX_MEM_MAPPED) ?
- CONFIG_MAX_MEM_MAPPED : get_effective_memsize();
-#endif
#ifdef CONFIG_LOGBUFFER
#ifndef CONFIG_ALT_LB_ADDR
addr_sp -= sizeof (bd_t);
bd = (bd_t *) addr_sp;
gd->bd = bd;
- debug ("Reserving %d Bytes for Board Info at: %08lx\n",
+ debug ("Reserving %zu Bytes for Board Info at: %08lx\n",
sizeof (bd_t), addr_sp);
addr_sp -= sizeof (gd_t);
id = (gd_t *) addr_sp;
- debug ("Reserving %d Bytes for Global Data at: %08lx\n",
+ debug ("Reserving %zu Bytes for Global Data at: %08lx\n",
sizeof (gd_t), addr_sp);
/*
defined(CONFIG_440EPX) || defined(CONFIG_440GRX)
bd->bi_pci_busfreq = get_PCI_freq ();
bd->bi_opbfreq = get_OPB_freq ();
-#elif defined(CONFIG_XILINX_ML300)
+#elif defined(CONFIG_XILINX_405)
bd->bi_pci_busfreq = get_PCI_freq ();
#endif
#endif
/* NOTREACHED - relocate_code() does not return */
}
+int __is_sata_supported(void)
+{
+ /* For some boards, when sata disabled by the switch, and the
+ * driver still access the sata registers, the cpu will hangup.
+ * please define platform specific is_sata_supported() if your
+ * board have such issue.*/
+ return 1;
+}
+int is_sata_supported(void) __attribute__((weak, alias("__is_sata_supported")));
+
/************************************************************************
*
* This is the next part if the initialization sequence: we are now
bd_t *bd;
int i;
extern void malloc_bin_reloc (void);
-#ifndef CFG_ENV_IS_NOWHERE
+#ifndef CONFIG_ENV_IS_NOWHERE
extern char * env_name_spec;
#endif
#endif
}
/* there are some other pointer constants we must deal with */
-#ifndef CFG_ENV_IS_NOWHERE
+#ifndef CONFIG_ENV_IS_NOWHERE
env_name_spec += gd->reloc_off;
#endif
*/
s = getenv ("flashchecksum");
if (s && (*s == 'y')) {
- printf (" CRC: %08lX",
+ printf (" CRC: %08X",
crc32 (0, (const unsigned char *) CFG_FLASH_BASE, flash_size)
);
}
malloc_bin_reloc ();
#ifdef CONFIG_SPI
-# if !defined(CFG_ENV_IS_IN_EEPROM)
+# if !defined(CONFIG_ENV_IS_IN_EEPROM)
spi_init_f ();
# endif
spi_init_r ();
sc3_read_eeprom();
#endif
-#if defined (CFG_ID_EEPROM) || defined (CFG_I2C_MAC_OFFSET)
+#if defined (CONFIG_ID_EEPROM) || defined (CFG_I2C_MAC_OFFSET)
mac_read_from_eeprom();
#endif
#endif
#if defined(CONFIG_CMD_SATA)
- puts ("SATA: ");
- sata_initialize ();
+ if (is_sata_supported()) {
+ puts("SATA: ");
+ sata_initialize();
+ }
#endif
#ifdef CONFIG_LAST_STAGE_INIT