#include <i2c.h>
#include <initcall.h>
#include <init_helpers.h>
-#include <logbuff.h>
#include <malloc.h>
#include <mapmem.h>
#include <os.h>
static int init_baud_rate(void)
{
- gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE);
+ gd->baudrate = env_get_ulong("baudrate", 10, CONFIG_BAUDRATE);
return 0;
}
}
#endif
-__maybe_unused
-static int zero_global_data(void)
-{
- memset((void *)gd, '\0', sizeof(gd_t));
-
- return 0;
-}
-
static int setup_mon_len(void)
{
#if defined(__ARM__) || defined(__MICROBLAZE__)
return 0;
}
-#if defined(CONFIG_LOGBUFFER)
-static int reserve_logbuffer(void)
-{
-#ifndef CONFIG_ALT_LB_ADDR
- /* reserve kernel log buffer */
- gd->relocaddr -= LOGBUFF_RESERVE;
- debug("Reserving %dk for kernel logbuffer at %08lx\n", LOGBUFF_LEN,
- gd->relocaddr);
-#endif
-
- return 0;
-}
-#endif
-
#ifdef CONFIG_PRAM
/* reserve protected RAM */
static int reserve_pram(void)
{
ulong reg;
- reg = getenv_ulong("pram", 10, CONFIG_PRAM);
+ reg = env_get_ulong("pram", 10, CONFIG_PRAM);
gd->relocaddr -= (reg << 10); /* size is in kB */
debug("Reserving %ldk for protected RAM at %08lx\n", reg,
gd->relocaddr);
}
#ifdef CONFIG_ARM
-static int reserve_mmu(void)
+__weak int reserve_mmu(void)
{
#if !(defined(CONFIG_SYS_ICACHE_OFF) && defined(CONFIG_SYS_DCACHE_OFF))
/* reserve TLB table */
trace_early_init,
#endif
initf_malloc,
+ log_init,
initf_bootstage, /* uses its own timer, so does not need DM */
initf_console_record,
#if defined(CONFIG_HAVE_FSP)
* - board info struct
*/
setup_dest_addr,
-#if defined(CONFIG_LOGBUFFER)
- reserve_logbuffer,
-#endif
#ifdef CONFIG_PRAM
reserve_pram,
#endif
void board_init_f(ulong boot_flags)
{
-#ifdef CONFIG_SYS_GENERIC_GLOBAL_DATA
- /*
- * For some architectures, global data is initialized and used before
- * calling this function. The data should be preserved. For others,
- * CONFIG_SYS_GENERIC_GLOBAL_DATA should be defined and use the stack
- * here to host global data until relocation.
- */
- gd_t data;
-
- gd = &data;
-
- /*
- * Clear global data before it is accessed at debug print
- * in initcall_run_list. Otherwise the debug print probably
- * get the wrong value of gd->have_console.
- */
- zero_global_data();
-#endif
-
gd->flags = boot_flags;
gd->have_console = 0;
* The pre-relocation drivers may be using memory that has now gone
* away. Mark serial as unavailable - this will fall back to the debug
* UART if available.
+ *
+ * Do the same with log drivers since the memory may not be available.
*/
- gd->flags &= ~GD_FLG_SERIAL_READY;
+ gd->flags &= ~(GD_FLG_SERIAL_READY | GD_FLG_LOG_READY);
+#ifdef CONFIG_TIMER
+ gd->timer = NULL;
+#endif
/*
* U-Boot has been copied into SDRAM, the BSS has been cleared etc.