|
@@ -28,46 +28,16 @@
|
|
|
|
|
|
#include "onenand_ipl.h"
|
|
#include "onenand_ipl.h"
|
|
|
|
|
|
-#ifdef CONFIG_SYS_PRINTF
|
|
|
|
-int print_info(void)
|
|
|
|
-{
|
|
|
|
- printf(XLOADER_VERSION);
|
|
|
|
-
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-#endif
|
|
|
|
-
|
|
|
|
typedef int (init_fnc_t)(void);
|
|
typedef int (init_fnc_t)(void);
|
|
|
|
|
|
-init_fnc_t *init_sequence[] = {
|
|
|
|
- board_init, /* basic board dependent setup */
|
|
|
|
-#ifdef CONFIG_SYS_PRINTF
|
|
|
|
- serial_init, /* serial communications setup */
|
|
|
|
- print_info,
|
|
|
|
-#endif
|
|
|
|
- NULL,
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
void start_oneboot(void)
|
|
void start_oneboot(void)
|
|
{
|
|
{
|
|
- init_fnc_t **init_fnc_ptr;
|
|
|
|
uchar *buf;
|
|
uchar *buf;
|
|
|
|
|
|
- for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
|
|
|
|
- if ((*init_fnc_ptr)() != 0)
|
|
|
|
- hang();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
buf = (uchar *) CONFIG_SYS_LOAD_ADDR;
|
|
buf = (uchar *) CONFIG_SYS_LOAD_ADDR;
|
|
|
|
|
|
- if (!onenand_read_block0(buf))
|
|
|
|
- buf += ONENAND_BLOCK_SIZE;
|
|
|
|
-
|
|
|
|
- if (buf == (uchar *)CONFIG_SYS_LOAD_ADDR)
|
|
|
|
- hang();
|
|
|
|
|
|
+ onenand_read_block0(buf);
|
|
|
|
|
|
- /* go run U-Boot and never return */
|
|
|
|
- printf("Starting OS Bootloader...\n");
|
|
|
|
((init_fnc_t *)CONFIG_SYS_LOAD_ADDR)();
|
|
((init_fnc_t *)CONFIG_SYS_LOAD_ADDR)();
|
|
|
|
|
|
/* should never come here */
|
|
/* should never come here */
|
|
@@ -75,7 +45,5 @@ void start_oneboot(void)
|
|
|
|
|
|
void hang(void)
|
|
void hang(void)
|
|
{
|
|
{
|
|
- /* if board_hang() returns, hange here */
|
|
|
|
- printf("X-Loader hangs\n");
|
|
|
|
- for (;;);
|
|
|
|
|
|
+ for (;;);
|
|
}
|
|
}
|