2 * Copyright (C) 2010 Samsung Electronics
3 * Minkyu Kang <mk7.kang@samsung.com>
13 #define PUTS(s) serial_puts(DEBUG_MARK""s)
18 typedef int (init_fnc_t)(void);
20 static void normal_boot(void)
25 buf = (uchar *)CONFIG_SYS_BOOT_ADDR;
27 ret = board_load_bootloader(buf);
32 /* this will be applied */
33 ret = board_lock_recoveryblock();
35 PUTS("fail: lock-tight");
37 ((init_fnc_t *)CONFIG_SYS_BOOT_ADDR)();
40 static void recovery_boot(void)
42 PUTS("Recovery Mode\n");
46 /* usb download and write image */
53 void start_recovery_boot(void)
55 /* armboot_start is defined in the board-specific linker script */
56 mem_malloc_init(_armboot_start - CONFIG_SYS_MALLOC_LEN,
57 CONFIG_SYS_MALLOC_LEN);
59 board_recovery_init();
66 if (board_check_condition())
71 /* NOTREACHED - no way out of command loop except booting */
76 PUTS("### ERROR ### Please RESET the board ###\n");
81 * origin at lib_arm/eabi_compat.c to support EABI