diff options
| author | Kyungmin Park <kmpark@infradead.org> | 2009-03-03 09:05:53 +0900 | 
|---|---|---|
| committer | Scott Wood <scottwood@freescale.com> | 2009-03-23 17:06:55 -0500 | 
| commit | 196c74311f394c6eb08bd9ab07a35671299b9851 (patch) | |
| tree | 135d65adf5740204502bb6c89ff482edbd021c48 /onenand_ipl/onenand_boot.c | |
| parent | 16f2f5a351004129e79e79816697a367fd9e5446 (diff) | |
| download | olio-uboot-2014.01-196c74311f394c6eb08bd9ab07a35671299b9851.tar.xz olio-uboot-2014.01-196c74311f394c6eb08bd9ab07a35671299b9851.zip | |
Reduce OneNAND IPL common code
OneNAND IPL has common codes for RAM init, load data, and jump to 2nd
bootloader, but it's common code used about 300~400 bytes. So board
specific codes, such as lowlevel_init, can't has enough code. It make
a difficult to implement OneNAND IPL.
his patch make this common code as small as possible. and give
lowlevel_init can have more codes.
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'onenand_ipl/onenand_boot.c')
| -rw-r--r-- | onenand_ipl/onenand_boot.c | 36 | 
1 files changed, 2 insertions, 34 deletions
| diff --git a/onenand_ipl/onenand_boot.c b/onenand_ipl/onenand_boot.c index aff62d29b..86428cc05 100644 --- a/onenand_ipl/onenand_boot.c +++ b/onenand_ipl/onenand_boot.c @@ -28,46 +28,16 @@  #include "onenand_ipl.h" -#ifdef CONFIG_SYS_PRINTF -int print_info(void) -{ -	printf(XLOADER_VERSION); - -	return 0; -} -#endif -  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)  { -	init_fnc_t **init_fnc_ptr;  	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; -	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)();  	/* should never come here */ @@ -75,7 +45,5 @@ void start_oneboot(void)  void hang(void)  { -	/* if board_hang() returns, hange here */ -	printf("X-Loader hangs\n"); -	for (;;); +       for (;;);  } |