From 5dc887164e031dbd6544031eb4dcb8e5c4ddeb13 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sat, 14 Jan 2012 15:24:47 +0000 Subject: [PATCH] bootstage: Convert progress numbers 1-9 into enums Signed-off-by: Simon Glass --- board/bf533-stamp/bf533-stamp.c | 18 +++++++-------- board/hermes/hermes.c | 2 +- board/ivm/ivm.c | 2 +- board/matrix_vision/common/mv_common.c | 2 +- board/matrix_vision/mvbc_p/mvbc_p.c | 2 +- board/pcs440ep/pcs440ep.c | 22 +++++++++--------- common/cmd_bootm.c | 41 +++++++++++++++++----------------- common/image.c | 2 +- include/bootstage.h | 14 ++++++++++++ 9 files changed, 59 insertions(+), 46 deletions(-) diff --git a/board/bf533-stamp/bf533-stamp.c b/board/bf533-stamp/bf533-stamp.c index b1134e9..07a988a 100644 --- a/board/bf533-stamp/bf533-stamp.c +++ b/board/bf533-stamp/bf533-stamp.c @@ -91,27 +91,27 @@ static void stamp_led_set(int LED1, int LED2, int LED3) void show_boot_progress(int status) { switch (status) { - case 1: + case BOOTSTAGE_ID_CHECK_MAGIC: stamp_led_set(STATUS_LED_OFF, STATUS_LED_OFF, STATUS_LED_ON); break; - case 2: + case BOOTSTAGE_ID_CHECK_HEADER: stamp_led_set(STATUS_LED_OFF, STATUS_LED_ON, STATUS_LED_OFF); break; - case 3: + case BOOTSTAGE_ID_CHECK_CHECKSUM: stamp_led_set(STATUS_LED_OFF, STATUS_LED_ON, STATUS_LED_ON); break; - case 4: + case BOOTSTAGE_ID_CHECK_ARCH: stamp_led_set(STATUS_LED_ON, STATUS_LED_OFF, STATUS_LED_OFF); break; - case 5: - case 6: + case BOOTSTAGE_ID_CHECK_IMAGETYPE: + case BOOTSTAGE_ID_DECOMP_IMAGE: stamp_led_set(STATUS_LED_ON, STATUS_LED_OFF, STATUS_LED_ON); break; - case 7: - case 8: + case BOOTSTAGE_ID_KERNEL_LOADED: + case BOOTSTAGE_ID_CHECK_BOOT_OS: stamp_led_set(STATUS_LED_ON, STATUS_LED_ON, STATUS_LED_OFF); break; - case 9: + case BOOTSTAGE_ID_BOOT_OS_RETURNED: case 10: case 11: case 12: diff --git a/board/hermes/hermes.c b/board/hermes/hermes.c index acf364e..1b40ae8 100644 --- a/board/hermes/hermes.c +++ b/board/hermes/hermes.c @@ -370,7 +370,7 @@ static ulong board_init (void) immr->im_ioport.iop_pcdat |= PC_REP_RES; } } - SHOW_BOOT_PROGRESS (0x00); + SHOW_BOOT_PROGRESS(BOOTSTAGE_ID_CHECK_MAGIC); return ((revision << 16) | (speed & 0xFFFF)); } diff --git a/board/ivm/ivm.c b/board/ivm/ivm.c index 9bec198..71d64d4 100644 --- a/board/ivm/ivm.c +++ b/board/ivm/ivm.c @@ -322,7 +322,7 @@ void show_boot_progress (int status) (status < 0) ? STATUS_LED_ON : STATUS_LED_OFF); # endif /* STATUS_LED_YELLOW */ # if defined(STATUS_LED_BOOT) - if (status == 6) + if (status == BOOTSTAGE_ID_DECOMP_IMAGE) status_led_set (STATUS_LED_BOOT, STATUS_LED_OFF); # endif /* STATUS_LED_BOOT */ #endif /* CONFIG_STATUS_LED */ diff --git a/board/matrix_vision/common/mv_common.c b/board/matrix_vision/common/mv_common.c index acb72c5..7fde4ac 100644 --- a/board/matrix_vision/common/mv_common.c +++ b/board/matrix_vision/common/mv_common.c @@ -95,7 +95,7 @@ int mv_load_fpga(void) result = fpga_load(0, fpga_data, data_size); if (!result) - show_boot_progress(0); + show_boot_progress(BOOTSTAGE_ID_START); return result; } diff --git a/board/matrix_vision/mvbc_p/mvbc_p.c b/board/matrix_vision/mvbc_p/mvbc_p.c index 9dffedc..a5dc2f0 100644 --- a/board/matrix_vision/mvbc_p/mvbc_p.c +++ b/board/matrix_vision/mvbc_p/mvbc_p.c @@ -241,7 +241,7 @@ void show_boot_progress(int val) struct mpc5xxx_gpio *gpio = (struct mpc5xxx_gpio*)MPC5XXX_GPIO; switch(val) { - case 0: /* FPGA ok */ + case BOOTSTAGE_ID_START: /* FPGA ok */ setbits_be32(&gpio->simple_dvo, LED_G0); break; case 65: diff --git a/board/pcs440ep/pcs440ep.c b/board/pcs440ep/pcs440ep.c index 36994b5..118d81c 100644 --- a/board/pcs440ep/pcs440ep.c +++ b/board/pcs440ep/pcs440ep.c @@ -104,17 +104,17 @@ void show_boot_progress (int val) return; } switch (val) { - case 1: - /* validating Image */ - status_led_set (0, STATUS_LED_OFF); - status_led_set (1, STATUS_LED_ON); - status_led_set (2, STATUS_LED_ON); - break; - case BOOTSTAGE_ID_RUN_OS: - status_led_set (0, STATUS_LED_ON); - status_led_set (1, STATUS_LED_ON); - status_led_set (2, STATUS_LED_ON); - break; + case BOOTSTAGE_ID_CHECK_MAGIC: + /* validating Image */ + status_led_set(0, STATUS_LED_OFF); + status_led_set(1, STATUS_LED_ON); + status_led_set(2, STATUS_LED_ON); + break; + case BOOTSTAGE_ID_RUN_OS: + status_led_set(0, STATUS_LED_ON); + status_led_set(1, STATUS_LED_ON); + status_led_set(2, STATUS_LED_ON); + break; #if 0 case 64: /* starting Ethernet configuration */ diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 6adf06e..c727c78 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -348,7 +348,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) puts("GUNZIP: uncompress, out-of-mem or overwrite " "error - must RESET board to recover\n"); if (boot_progress) - show_boot_error(6); + show_boot_error(BOOTSTAGE_ID_DECOMP_IMAGE); return BOOTM_ERR_RESET; } @@ -370,7 +370,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) printf("BUNZIP2: uncompress or overwrite error %d " "- must RESET board to recover\n", i); if (boot_progress) - show_boot_error(6); + show_boot_error(BOOTSTAGE_ID_DECOMP_IMAGE); return BOOTM_ERR_RESET; } @@ -389,7 +389,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) if (ret != SZ_OK) { printf("LZMA: uncompress or overwrite error %d " "- must RESET board to recover\n", ret); - show_boot_error(6); + show_boot_error(BOOTSTAGE_ID_DECOMP_IMAGE); return BOOTM_ERR_RESET; } *load_end = load + unc_len; @@ -407,7 +407,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) printf("LZO: uncompress or overwrite error %d " "- must RESET board to recover\n", ret); if (boot_progress) - show_boot_error(6); + show_boot_error(BOOTSTAGE_ID_DECOMP_IMAGE); return BOOTM_ERR_RESET; } @@ -423,8 +423,7 @@ static int bootm_load_os(image_info_t os, ulong *load_end, int boot_progress) puts("OK\n"); debug(" kernel loaded at 0x%08lx, end = 0x%08lx\n", load, *load_end); - if (boot_progress) - show_boot_progress(7); + show_boot_progress(BOOTSTAGE_ID_KERNEL_LOADED); if (!no_overlap && (load < blob_end) && (*load_end > blob_start)) { debug("images.os.start = 0x%lX, images.os.end = 0x%lx\n", @@ -656,7 +655,7 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) if (ret == BOOTM_ERR_UNIMPLEMENTED) { if (iflag) enable_interrupts(); - show_boot_error(7); + show_boot_error(BOOTSTAGE_ID_DECOMP_UNIMPL); return 1; } } @@ -671,7 +670,7 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) return 0; } - show_boot_progress(8); + show_boot_progress(BOOTSTAGE_ID_CHECK_BOOT_OS); #ifdef CONFIG_SILENT_CONSOLE if (images.os.os == IH_OS_LINUX) @@ -685,7 +684,7 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) enable_interrupts(); printf("ERROR: booting os '%s' (%d) is not supported\n", genimg_get_os_name(images.os.os), images.os.os); - show_boot_error(8); + show_boot_error(BOOTSTAGE_ID_CHECK_BOOT_OS); return 1; } @@ -693,7 +692,7 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) boot_fn(0, argc, argv, &images); - show_boot_error(9); + show_boot_error(BOOTSTAGE_ID_BOOT_OS_RETURNED); #ifdef DEBUG puts("\n## Control returned to monitor - resetting...\n"); #endif @@ -735,34 +734,34 @@ static image_header_t *image_get_kernel(ulong img_addr, int verify) if (!image_check_magic(hdr)) { puts("Bad Magic Number\n"); - show_boot_error(1); + show_boot_error(BOOTSTAGE_ID_CHECK_MAGIC); return NULL; } - show_boot_progress(2); + show_boot_progress(BOOTSTAGE_ID_CHECK_HEADER); if (!image_check_hcrc(hdr)) { puts("Bad Header Checksum\n"); - show_boot_error(2); + show_boot_error(BOOTSTAGE_ID_CHECK_HEADER); return NULL; } - show_boot_progress(3); + show_boot_progress(BOOTSTAGE_ID_CHECK_CHECKSUM); image_print_contents(hdr); if (verify) { puts(" Verifying Checksum ... "); if (!image_check_dcrc(hdr)) { printf("Bad Data CRC\n"); - show_boot_error(3); + show_boot_error(BOOTSTAGE_ID_CHECK_CHECKSUM); return NULL; } puts("OK\n"); } - show_boot_progress(4); + show_boot_progress(BOOTSTAGE_ID_CHECK_ARCH); if (!image_check_target_arch(hdr)) { printf("Unsupported Architecture 0x%x\n", image_get_arch(hdr)); - show_boot_error(4); + show_boot_error(BOOTSTAGE_ID_CHECK_ARCH); return NULL; } return hdr; @@ -864,7 +863,7 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc, debug("* kernel: cmdline image address = 0x%08lx\n", img_addr); } - show_boot_progress(1); + show_boot_progress(BOOTSTAGE_ID_CHECK_MAGIC); /* copy from dataflash if needed */ img_addr = genimg_get_image(img_addr); @@ -878,7 +877,7 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc, hdr = image_get_kernel(img_addr, images->verify); if (!hdr) return NULL; - show_boot_progress(5); + show_boot_progress(BOOTSTAGE_ID_CHECK_IMAGETYPE); /* get os_data and os_len */ switch (image_get_type(hdr)) { @@ -897,7 +896,7 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc, default: printf("Wrong Image Type for %s command\n", cmdtp->name); - show_boot_error(5); + show_boot_error(BOOTSTAGE_ID_CHECK_IMAGETYPE); return NULL; } @@ -912,7 +911,7 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc, images->legacy_hdr_os = hdr; images->legacy_hdr_valid = 1; - show_boot_progress(6); + show_boot_progress(BOOTSTAGE_ID_DECOMP_IMAGE); break; #if defined(CONFIG_FIT) case IMAGE_FORMAT_FIT: diff --git a/common/image.c b/common/image.c index 8df03f5..1359246 100644 --- a/common/image.c +++ b/common/image.c @@ -895,7 +895,7 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images, printf("## Loading init Ramdisk from Legacy " "Image at %08lx ...\n", rd_addr); - show_boot_progress(9); + show_boot_progress(BOOTSTAGE_ID_LOAD_RAMDISK); rd_hdr = image_get_ramdisk(rd_addr, arch, images->verify); diff --git a/include/bootstage.h b/include/bootstage.h index 63a6435..408356c 100644 --- a/include/bootstage.h +++ b/include/bootstage.h @@ -44,6 +44,20 @@ * error on action3 */ enum bootstage_id { + BOOTSTAGE_ID_START = 0, + BOOTSTAGE_ID_CHECK_MAGIC, /* Checking image magic */ + BOOTSTAGE_ID_CHECK_HEADER, /* Checking image header */ + BOOTSTAGE_ID_CHECK_CHECKSUM, /* Checking image checksum */ + BOOTSTAGE_ID_CHECK_ARCH, /* Checking architecture */ + + BOOTSTAGE_ID_CHECK_IMAGETYPE = 5,/* Checking image type */ + BOOTSTAGE_ID_DECOMP_IMAGE, /* Decompressing image */ + BOOTSTAGE_ID_KERNEL_LOADED, /* Kernel has been loaded */ + BOOTSTAGE_ID_DECOMP_UNIMPL = 7, /* Odd decompression algorithm */ + BOOTSTAGE_ID_CHECK_BOOT_OS, /* Calling OS-specific boot function */ + BOOTSTAGE_ID_BOOT_OS_RETURNED, /* Tried to boot OS, but it returned */ + BOOTSTAGE_ID_CHECK_RAMDISK = 9, /* Checking ram disk */ + BOOTSTAGE_ID_RUN_OS = 15, /* Exiting U-Boot, entering OS */ };