diff options
Diffstat (limited to 'lib_ppc/board.c')
| -rw-r--r-- | lib_ppc/board.c | 52 |
1 files changed, 40 insertions, 12 deletions
diff --git a/lib_ppc/board.c b/lib_ppc/board.c index 844bbc900..24e8e970b 100644 --- a/lib_ppc/board.c +++ b/lib_ppc/board.c @@ -72,6 +72,14 @@ #include <keyboard.h> #endif +#ifdef CFG_UPDATE_FLASH_SIZE +extern int update_flash_size (int flash_size); +#endif + +#if defined(CONFIG_SOLIDCARD3) +extern void sc3_read_eeprom(void); +#endif + #if (CONFIG_COMMANDS & CFG_CMD_DOC) void doc_init (void); #endif @@ -89,6 +97,9 @@ static char *failed = "*** failed ***\n"; extern flash_info_t flash_info[]; #endif +#if defined(CONFIG_START_IDE) +extern int board_start_ide(void); +#endif #include <environment.h> DECLARE_GLOBAL_DATA_PTR; @@ -511,7 +522,7 @@ void board_init_f (ulong bootflag) bd->bi_mbar_base = CFG_MBAR; /* base of internal registers */ #endif #if defined(CONFIG_MPC83XX) - bd->bi_immrbar = CFG_IMMRBAR; + bd->bi_immrbar = CFG_IMMR; #endif #if defined(CONFIG_MPC8220) bd->bi_mbar_base = CFG_MBAR; /* base of internal registers */ @@ -521,17 +532,17 @@ void board_init_f (ulong bootflag) bd->bi_pevfreq = gd->pev_clk; bd->bi_flbfreq = gd->flb_clk; - /* store bootparam to sram (backward compatible), here? */ - { - u32 *sram = (u32 *)CFG_SRAM_BASE; - *sram++ = gd->ram_size; - *sram++ = gd->bus_clk; - *sram++ = gd->inp_clk; - *sram++ = gd->cpu_clk; - *sram++ = gd->vco_clk; - *sram++ = gd->flb_clk; - *sram++ = 0xb8c3ba11; /* boot signature */ - } + /* store bootparam to sram (backward compatible), here? */ + { + u32 *sram = (u32 *)CFG_SRAM_BASE; + *sram++ = gd->ram_size; + *sram++ = gd->bus_clk; + *sram++ = gd->inp_clk; + *sram++ = gd->cpu_clk; + *sram++ = gd->vco_clk; + *sram++ = gd->flb_clk; + *sram++ = 0xb8c3ba11; /* boot signature */ + } #endif bd->bi_bootflags = bootflag; /* boot / reboot flag (for LynxOS) */ @@ -730,6 +741,13 @@ void board_init_r (gd_t *id, ulong dest_addr) bd->bi_flashstart = CFG_FLASH_BASE; /* update start of FLASH memory */ bd->bi_flashsize = flash_size; /* size of FLASH memory (final value) */ + +#if defined(CFG_UPDATE_FLASH_SIZE) + /* Make a update of the Memctrl. */ + update_flash_size (flash_size); +#endif + + # if defined(CONFIG_PCU_E) || defined(CONFIG_OXC) || defined(CONFIG_RMU) /* flash mapped at end of memory map */ bd->bi_flashoffset = TEXT_BASE + flash_size; @@ -804,6 +822,9 @@ void board_init_r (gd_t *id, ulong dest_addr) #endif /* CONFIG_405GP, CONFIG_405EP */ #endif /* CFG_EXTBDINFO */ +#if defined(CONFIG_SOLIDCARD3) + sc3_read_eeprom(); +#endif s = getenv ("ethaddr"); #if defined (CONFIG_MBX) || \ defined (CONFIG_RPXCLASSIC) || \ @@ -876,6 +897,7 @@ void board_init_r (gd_t *id, ulong dest_addr) #endif #if defined(CONFIG_TQM8xxL) || defined(CONFIG_TQM8260) || \ + defined(CONFIG_TQM8272) || \ defined(CONFIG_CCM) || defined(CONFIG_KUP4K) || defined(CONFIG_KUP4X) load_sernum_ethaddr (); #endif @@ -909,6 +931,7 @@ void board_init_r (gd_t *id, ulong dest_addr) defined(CONFIG_KUP4X) || \ defined(CONFIG_LWMON) || \ defined(CONFIG_PCU_E) || \ + defined(CONFIG_SOLIDCARD3) || \ defined(CONFIG_W7O) || \ defined(CONFIG_MISC_INIT_R) /* miscellaneous platform dependent initialisations */ @@ -1018,7 +1041,12 @@ void board_init_r (gd_t *id, ulong dest_addr) # else puts ("IDE: "); #endif +#if defined(CONFIG_START_IDE) + if (board_start_ide()) + ide_init (); +#else ide_init (); +#endif #endif /* CFG_CMD_IDE */ #ifdef CONFIG_LAST_STAGE_INIT |