bootstage: Convert FIT progress numbers to enums

This changes over all the FIT image progress numbers to use enums
from bootstage.h.

Signed-off-by: Simon Glass <sjg@chromium.org>
master
Simon Glass 13 years ago committed by Wolfgang Denk
parent c8e66db789
commit aacc8c16ee
  1. 44
      common/cmd_bootm.c
  2. 36
      common/image.c
  3. 38
      include/bootstage.h

@ -222,21 +222,21 @@ static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]
if (fit_image_get_type(images.fit_hdr_os, if (fit_image_get_type(images.fit_hdr_os,
images.fit_noffset_os, &images.os.type)) { images.fit_noffset_os, &images.os.type)) {
puts("Can't get image type!\n"); puts("Can't get image type!\n");
show_boot_error(109); show_boot_error(BOOTSTAGE_ID_FIT_TYPE);
return 1; return 1;
} }
if (fit_image_get_comp(images.fit_hdr_os, if (fit_image_get_comp(images.fit_hdr_os,
images.fit_noffset_os, &images.os.comp)) { images.fit_noffset_os, &images.os.comp)) {
puts("Can't get image compression!\n"); puts("Can't get image compression!\n");
show_boot_error(110); show_boot_error(BOOTSTAGE_ID_FIT_COMPRESSION);
return 1; return 1;
} }
if (fit_image_get_os(images.fit_hdr_os, if (fit_image_get_os(images.fit_hdr_os,
images.fit_noffset_os, &images.os.os)) { images.fit_noffset_os, &images.os.os)) {
puts("Can't get image OS!\n"); puts("Can't get image OS!\n");
show_boot_error(111); show_boot_error(BOOTSTAGE_ID_FIT_OS);
return 1; return 1;
} }
@ -245,7 +245,7 @@ static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]
if (fit_image_get_load(images.fit_hdr_os, images.fit_noffset_os, if (fit_image_get_load(images.fit_hdr_os, images.fit_noffset_os,
&images.os.load)) { &images.os.load)) {
puts("Can't get image load address!\n"); puts("Can't get image load address!\n");
show_boot_error(112); show_boot_error(BOOTSTAGE_ID_FIT_LOADADDR);
return 1; return 1;
} }
break; break;
@ -648,7 +648,7 @@ int do_bootm(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
} else { } else {
puts("ERROR: new format image overwritten - " puts("ERROR: new format image overwritten - "
"must RESET the board to recover\n"); "must RESET the board to recover\n");
show_boot_error(113); show_boot_error(BOOTSTAGE_ID_OVERWRITTEN);
do_reset(cmdtp, flag, argc, argv); do_reset(cmdtp, flag, argc, argv);
} }
} }
@ -789,28 +789,28 @@ static int fit_check_kernel(const void *fit, int os_noffset, int verify)
puts(" Verifying Hash Integrity ... "); puts(" Verifying Hash Integrity ... ");
if (!fit_image_check_hashes(fit, os_noffset)) { if (!fit_image_check_hashes(fit, os_noffset)) {
puts("Bad Data Hash\n"); puts("Bad Data Hash\n");
show_boot_error(104); show_boot_error(BOOTSTAGE_ID_FIT_CHECK_HASH);
return 0; return 0;
} }
puts("OK\n"); puts("OK\n");
} }
show_boot_progress(105); show_boot_progress(BOOTSTAGE_ID_FIT_CHECK_ARCH);
if (!fit_image_check_target_arch(fit, os_noffset)) { if (!fit_image_check_target_arch(fit, os_noffset)) {
puts("Unsupported Architecture\n"); puts("Unsupported Architecture\n");
show_boot_error(105); show_boot_error(BOOTSTAGE_ID_FIT_CHECK_ARCH);
return 0; return 0;
} }
show_boot_progress(106); show_boot_progress(BOOTSTAGE_ID_FIT_CHECK_KERNEL);
if (!fit_image_check_type(fit, os_noffset, IH_TYPE_KERNEL) && if (!fit_image_check_type(fit, os_noffset, IH_TYPE_KERNEL) &&
!fit_image_check_type(fit, os_noffset, IH_TYPE_KERNEL_NOLOAD)) { !fit_image_check_type(fit, os_noffset, IH_TYPE_KERNEL_NOLOAD)) {
puts("Not a kernel image\n"); puts("Not a kernel image\n");
show_boot_error(106); show_boot_error(BOOTSTAGE_ID_FIT_CHECK_KERNEL);
return 0; return 0;
} }
show_boot_progress(107); show_boot_progress(BOOTSTAGE_ID_FIT_CHECKED);
return 1; return 1;
} }
#endif /* CONFIG_FIT */ #endif /* CONFIG_FIT */
@ -921,10 +921,10 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
if (!fit_check_format(fit_hdr)) { if (!fit_check_format(fit_hdr)) {
puts("Bad FIT kernel image format!\n"); puts("Bad FIT kernel image format!\n");
show_boot_error(100); show_boot_error(BOOTSTAGE_ID_FIT_FORMAT);
return NULL; return NULL;
} }
show_boot_progress(100); show_boot_progress(BOOTSTAGE_ID_FIT_FORMAT);
if (!fit_uname_kernel) { if (!fit_uname_kernel) {
/* /*
@ -933,11 +933,11 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
* fit_conf_get_node() will try to find default config * fit_conf_get_node() will try to find default config
* node * node
*/ */
show_boot_progress(101); show_boot_progress(BOOTSTAGE_ID_FIT_NO_UNIT_NAME);
cfg_noffset = fit_conf_get_node(fit_hdr, cfg_noffset = fit_conf_get_node(fit_hdr,
fit_uname_config); fit_uname_config);
if (cfg_noffset < 0) { if (cfg_noffset < 0) {
show_boot_error(101); show_boot_error(BOOTSTAGE_ID_FIT_NO_UNIT_NAME);
return NULL; return NULL;
} }
/* save configuration uname provided in the first /* save configuration uname provided in the first
@ -948,7 +948,7 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
NULL); NULL);
printf(" Using '%s' configuration\n", printf(" Using '%s' configuration\n",
images->fit_uname_cfg); images->fit_uname_cfg);
show_boot_progress(103); show_boot_progress(BOOTSTAGE_ID_FIT_CONFIG);
os_noffset = fit_conf_get_kernel_node(fit_hdr, os_noffset = fit_conf_get_kernel_node(fit_hdr,
cfg_noffset); cfg_noffset);
@ -956,28 +956,28 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
NULL); NULL);
} else { } else {
/* get kernel component image node offset */ /* get kernel component image node offset */
show_boot_progress(102); show_boot_progress(BOOTSTAGE_ID_FIT_UNIT_NAME);
os_noffset = fit_image_get_node(fit_hdr, os_noffset = fit_image_get_node(fit_hdr,
fit_uname_kernel); fit_uname_kernel);
} }
if (os_noffset < 0) { if (os_noffset < 0) {
show_boot_error(103); show_boot_error(BOOTSTAGE_ID_FIT_CONFIG);
return NULL; return NULL;
} }
printf(" Trying '%s' kernel subimage\n", fit_uname_kernel); printf(" Trying '%s' kernel subimage\n", fit_uname_kernel);
show_boot_progress(104); show_boot_progress(BOOTSTAGE_ID_FIT_CHECK_SUBIMAGE);
if (!fit_check_kernel(fit_hdr, os_noffset, images->verify)) if (!fit_check_kernel(fit_hdr, os_noffset, images->verify))
return NULL; return NULL;
/* get kernel image data address and length */ /* get kernel image data address and length */
if (fit_image_get_data(fit_hdr, os_noffset, &data, &len)) { if (fit_image_get_data(fit_hdr, os_noffset, &data, &len)) {
puts("Could not find kernel subimage data!\n"); puts("Could not find kernel subimage data!\n");
show_boot_error(107); show_boot_error(BOOTSTAGE_ID_FIT_KERNEL_INFO_ERR);
return NULL; return NULL;
} }
show_boot_progress(108); show_boot_progress(BOOTSTAGE_ID_FIT_KERNEL_INFO);
*os_len = len; *os_len = len;
*os_data = (ulong)data; *os_data = (ulong)data;
@ -988,7 +988,7 @@ static void *boot_get_kernel(cmd_tbl_t *cmdtp, int flag, int argc,
#endif #endif
default: default:
printf("Wrong Image Format for %s command\n", cmdtp->name); printf("Wrong Image Format for %s command\n", cmdtp->name);
show_boot_error(108); show_boot_error(BOOTSTAGE_ID_FIT_KERNEL_INFO);
return NULL; return NULL;
} }

@ -912,13 +912,14 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
printf("## Loading init Ramdisk from FIT " printf("## Loading init Ramdisk from FIT "
"Image at %08lx ...\n", rd_addr); "Image at %08lx ...\n", rd_addr);
show_boot_progress(120); show_boot_progress(BOOTSTAGE_ID_FIT_RD_FORMAT);
if (!fit_check_format(fit_hdr)) { if (!fit_check_format(fit_hdr)) {
puts("Bad FIT ramdisk image format!\n"); puts("Bad FIT ramdisk image format!\n");
show_boot_error(120); show_boot_error(
BOOTSTAGE_ID_FIT_RD_FORMAT);
return 1; return 1;
} }
show_boot_progress(121); show_boot_progress(BOOTSTAGE_ID_FIT_RD_FORMAT_OK);
if (!fit_uname_ramdisk) { if (!fit_uname_ramdisk) {
/* /*
@ -926,13 +927,15 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
* node first. If config unit node name is NULL * node first. If config unit node name is NULL
* fit_conf_get_node() will try to find default config node * fit_conf_get_node() will try to find default config node
*/ */
show_boot_progress(122); show_boot_progress(
BOOTSTAGE_ID_FIT_RD_NO_UNIT_NAME);
cfg_noffset = fit_conf_get_node(fit_hdr, cfg_noffset = fit_conf_get_node(fit_hdr,
fit_uname_config); fit_uname_config);
if (cfg_noffset < 0) { if (cfg_noffset < 0) {
puts("Could not find configuration " puts("Could not find configuration "
"node\n"); "node\n");
show_boot_error(122); show_boot_error(
BOOTSTAGE_ID_FIT_RD_NO_UNIT_NAME);
return 1; return 1;
} }
fit_uname_config = fdt_get_name(fit_hdr, fit_uname_config = fdt_get_name(fit_hdr,
@ -946,20 +949,21 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
rd_noffset, NULL); rd_noffset, NULL);
} else { } else {
/* get ramdisk component image node offset */ /* get ramdisk component image node offset */
show_boot_progress(123); show_boot_progress(
BOOTSTAGE_ID_FIT_RD_UNIT_NAME);
rd_noffset = fit_image_get_node(fit_hdr, rd_noffset = fit_image_get_node(fit_hdr,
fit_uname_ramdisk); fit_uname_ramdisk);
} }
if (rd_noffset < 0) { if (rd_noffset < 0) {
puts("Could not find subimage node\n"); puts("Could not find subimage node\n");
show_boot_error(124); show_boot_error(BOOTSTAGE_ID_FIT_RD_SUBNODE);
return 1; return 1;
} }
printf(" Trying '%s' ramdisk subimage\n", printf(" Trying '%s' ramdisk subimage\n",
fit_uname_ramdisk); fit_uname_ramdisk);
show_boot_progress(125); show_boot_progress(BOOTSTAGE_ID_FIT_RD_CHECK);
if (!fit_check_ramdisk(fit_hdr, rd_noffset, arch, if (!fit_check_ramdisk(fit_hdr, rd_noffset, arch,
images->verify)) images->verify))
return 1; return 1;
@ -968,10 +972,10 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
if (fit_image_get_data(fit_hdr, rd_noffset, &data, if (fit_image_get_data(fit_hdr, rd_noffset, &data,
&size)) { &size)) {
puts("Could not find ramdisk subimage data!\n"); puts("Could not find ramdisk subimage data!\n");
show_boot_error(127); show_boot_error(BOOTSTAGE_ID_FIT_RD_GET_DATA);
return 1; return 1;
} }
show_boot_progress(128); show_boot_progress(BOOTSTAGE_ID_FIT_RD_GET_DATA_OK);
rd_data = (ulong)data; rd_data = (ulong)data;
rd_len = size; rd_len = size;
@ -979,10 +983,10 @@ int boot_get_ramdisk(int argc, char * const argv[], bootm_headers_t *images,
if (fit_image_get_load(fit_hdr, rd_noffset, &rd_load)) { if (fit_image_get_load(fit_hdr, rd_noffset, &rd_load)) {
puts("Can't get ramdisk subimage load " puts("Can't get ramdisk subimage load "
"address!\n"); "address!\n");
show_boot_error(129); show_boot_error(BOOTSTAGE_ID_FIT_RD_LOAD);
return 1; return 1;
} }
show_boot_progress(129); show_boot_progress(BOOTSTAGE_ID_FIT_RD_LOAD);
images->fit_hdr_rd = fit_hdr; images->fit_hdr_rd = fit_hdr;
images->fit_uname_rd = fit_uname_ramdisk; images->fit_uname_rd = fit_uname_ramdisk;
@ -3176,23 +3180,23 @@ static int fit_check_ramdisk(const void *fit, int rd_noffset, uint8_t arch,
puts(" Verifying Hash Integrity ... "); puts(" Verifying Hash Integrity ... ");
if (!fit_image_check_hashes(fit, rd_noffset)) { if (!fit_image_check_hashes(fit, rd_noffset)) {
puts("Bad Data Hash\n"); puts("Bad Data Hash\n");
show_boot_error(125); show_boot_error(BOOTSTAGE_ID_FIT_RD_HASH);
return 0; return 0;
} }
puts("OK\n"); puts("OK\n");
} }
show_boot_progress(126); show_boot_progress(BOOTSTAGE_ID_FIT_RD_CHECK_ALL);
if (!fit_image_check_os(fit, rd_noffset, IH_OS_LINUX) || if (!fit_image_check_os(fit, rd_noffset, IH_OS_LINUX) ||
!fit_image_check_arch(fit, rd_noffset, arch) || !fit_image_check_arch(fit, rd_noffset, arch) ||
!fit_image_check_type(fit, rd_noffset, IH_TYPE_RAMDISK)) { !fit_image_check_type(fit, rd_noffset, IH_TYPE_RAMDISK)) {
printf("No Linux %s Ramdisk Image\n", printf("No Linux %s Ramdisk Image\n",
genimg_get_arch_name(arch)); genimg_get_arch_name(arch));
show_boot_error(126); show_boot_error(BOOTSTAGE_ID_FIT_RD_CHECK_ALL);
return 0; return 0;
} }
show_boot_progress(127); show_boot_progress(BOOTSTAGE_ID_FIT_RD_CHECK_ALL_OK);
return 1; return 1;
} }
#endif /* USE_HOSTCC */ #endif /* USE_HOSTCC */

@ -126,6 +126,44 @@ enum bootstage_id {
BOOTSTAGE_ID_NET_DONE_ERR, BOOTSTAGE_ID_NET_DONE_ERR,
BOOTSTAGE_ID_NET_DONE, BOOTSTAGE_ID_NET_DONE,
/*
* Boot stages related to loading a FIT image. Some of these are a
* bit wonky.
*/
BOOTSTAGE_ID_FIT_FORMAT = 100,
BOOTSTAGE_ID_FIT_NO_UNIT_NAME,
BOOTSTAGE_ID_FIT_UNIT_NAME,
BOOTSTAGE_ID_FIT_CONFIG,
BOOTSTAGE_ID_FIT_CHECK_SUBIMAGE,
BOOTSTAGE_ID_FIT_CHECK_HASH = 104,
BOOTSTAGE_ID_FIT_CHECK_ARCH,
BOOTSTAGE_ID_FIT_CHECK_KERNEL,
BOOTSTAGE_ID_FIT_CHECKED,
BOOTSTAGE_ID_FIT_KERNEL_INFO_ERR = 107,
BOOTSTAGE_ID_FIT_KERNEL_INFO,
BOOTSTAGE_ID_FIT_TYPE,
BOOTSTAGE_ID_FIT_COMPRESSION,
BOOTSTAGE_ID_FIT_OS,
BOOTSTAGE_ID_FIT_LOADADDR,
BOOTSTAGE_ID_OVERWRITTEN,
BOOTSTAGE_ID_FIT_RD_FORMAT = 120,
BOOTSTAGE_ID_FIT_RD_FORMAT_OK,
BOOTSTAGE_ID_FIT_RD_NO_UNIT_NAME,
BOOTSTAGE_ID_FIT_RD_UNIT_NAME,
BOOTSTAGE_ID_FIT_RD_SUBNODE,
BOOTSTAGE_ID_FIT_RD_CHECK,
BOOTSTAGE_ID_FIT_RD_HASH = 125,
BOOTSTAGE_ID_FIT_RD_CHECK_ALL,
BOOTSTAGE_ID_FIT_RD_GET_DATA,
BOOTSTAGE_ID_FIT_RD_CHECK_ALL_OK = 127,
BOOTSTAGE_ID_FIT_RD_GET_DATA_OK,
BOOTSTAGE_ID_FIT_RD_LOAD,
BOOTSTAGE_ID_IDE_FIT_READ = 140, BOOTSTAGE_ID_IDE_FIT_READ = 140,
BOOTSTAGE_ID_IDE_FIT_READ_OK, BOOTSTAGE_ID_IDE_FIT_READ_OK,

Loading…
Cancel
Save