projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bootstage: Init as early as possible
[oweals/u-boot.git]
/
common
/
board_r.c
diff --git
a/common/board_r.c
b/common/board_r.c
index 28f32c38853ab3a05fb3c796df1299dc01bb9af6..bde98773d0efb579ebb827ebe3f5a58932dcc16c 100644
(file)
--- a/
common/board_r.c
+++ b/
common/board_r.c
@@
-11,6
+11,7
@@
*/
#include <common.h>
*/
#include <common.h>
+#include <api.h>
/* TODO: can we just include all these headers whether needed or not? */
#if defined(CONFIG_CMD_BEDBUG)
#include <bedbug/type.h>
/* TODO: can we just include all these headers whether needed or not? */
#if defined(CONFIG_CMD_BEDBUG)
#include <bedbug/type.h>
@@
-23,9
+24,7
@@
#include <dm.h>
#include <environment.h>
#include <fdtdec.h>
#include <dm.h>
#include <environment.h>
#include <fdtdec.h>
-#if defined(CONFIG_CMD_IDE)
#include <ide.h>
#include <ide.h>
-#endif
#include <initcall.h>
#include <init_helpers.h>
#ifdef CONFIG_PS2KBD
#include <initcall.h>
#include <init_helpers.h>
#ifdef CONFIG_PS2KBD
@@
-42,6
+41,7
@@
#endif
#include <mmc.h>
#include <nand.h>
#endif
#include <mmc.h>
#include <nand.h>
+#include <of_live.h>
#include <onenand_uboot.h>
#include <scsi.h>
#include <serial.h>
#include <onenand_uboot.h>
#include <scsi.h>
#include <serial.h>
@@
-294,6
+294,14
@@
static int initr_noncached(void)
}
#endif
}
#endif
+#ifdef CONFIG_OF_LIVE
+static int initr_of_live(void)
+{
+ return of_live_build(gd->fdt_blob,
+ (struct device_node **)&gd->of_root);
+}
+#endif
+
#ifdef CONFIG_DM
static int initr_dm(void)
{
#ifdef CONFIG_DM
static int initr_dm(void)
{
@@
-320,7
+328,6
@@
static int initr_dm(void)
static int initr_bootstage(void)
{
static int initr_bootstage(void)
{
- /* We cannot do this before initr_dm() */
bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_R, "board_init_r");
return 0;
bootstage_mark_name(BOOTSTAGE_ID_START_UBOOT_R, "board_init_r");
return 0;
@@
-611,7
+618,7
@@
static int initr_post(void)
}
#endif
}
#endif
-#if defined(CONFIG_CMD_PCMCIA) && !defined(CONFIG_
CMD_
IDE)
+#if defined(CONFIG_CMD_PCMCIA) && !defined(CONFIG_IDE)
static int initr_pcmcia(void)
{
puts("PCMCIA:");
static int initr_pcmcia(void)
{
puts("PCMCIA:");
@@
-620,7
+627,7
@@
static int initr_pcmcia(void)
}
#endif
}
#endif
-#if defined(CONFIG_
CMD_
IDE)
+#if defined(CONFIG_IDE)
static int initr_ide(void)
{
#ifdef CONFIG_IDE_8xx_PCCARD
static int initr_ide(void)
{
#ifdef CONFIG_IDE_8xx_PCCARD
@@
-719,15
+726,18
@@
static init_fnc_t init_sequence_r[] = {
#endif
initr_barrier,
initr_malloc,
#endif
initr_barrier,
initr_malloc,
+ initr_bootstage, /* Needs malloc() but has its own timer */
initr_console_record,
#ifdef CONFIG_SYS_NONCACHED_MEMORY
initr_noncached,
#endif
bootstage_relocate,
initr_console_record,
#ifdef CONFIG_SYS_NONCACHED_MEMORY
initr_noncached,
#endif
bootstage_relocate,
+#ifdef CONFIG_OF_LIVE
+ initr_of_live,
+#endif
#ifdef CONFIG_DM
initr_dm,
#endif
#ifdef CONFIG_DM
initr_dm,
#endif
- initr_bootstage,
#if defined(CONFIG_ARM) || defined(CONFIG_NDS32)
board_init, /* Setup chipselects */
#endif
#if defined(CONFIG_ARM) || defined(CONFIG_NDS32)
board_init, /* Setup chipselects */
#endif
@@
-870,10
+880,10
@@
static init_fnc_t init_sequence_r[] = {
#ifdef CONFIG_POST
initr_post,
#endif
#ifdef CONFIG_POST
initr_post,
#endif
-#if defined(CONFIG_CMD_PCMCIA) && !defined(CONFIG_
CMD_
IDE)
+#if defined(CONFIG_CMD_PCMCIA) && !defined(CONFIG_IDE)
initr_pcmcia,
#endif
initr_pcmcia,
#endif
-#if defined(CONFIG_
CMD_
IDE)
+#if defined(CONFIG_IDE)
initr_ide,
#endif
#ifdef CONFIG_LAST_STAGE_INIT
initr_ide,
#endif
#ifdef CONFIG_LAST_STAGE_INIT