Browse Source

Report recoverable errors as warnings

At present many recoverable failures are reported as errors. This patch
modifies all such failures to be reported as warnings instead.

Change-Id: I5141653c82498defcada9b90fdf7498ba496b2f2
pull/24/head
Jeenu Viswambharan 11 years ago
committed by Dan Handley
parent
commit
08c28d5385
  1. 18
      common/bl_common.c
  2. 20
      drivers/io/io_fip.c
  3. 2
      drivers/io/io_memmap.c
  4. 2
      plat/fvp/plat_io_storage.c

18
common/bl_common.c

@ -278,7 +278,7 @@ unsigned long load_image(meminfo *mem_layout,
/* Obtain a reference to the image by querying the platform layer */ /* Obtain a reference to the image by querying the platform layer */
io_result = plat_get_image_source(image_name, &dev_handle, &image_spec); io_result = plat_get_image_source(image_name, &dev_handle, &image_spec);
if (io_result != IO_SUCCESS) { if (io_result != IO_SUCCESS) {
ERROR("Failed to obtain reference to image '%s' (%i)\n", WARN("Failed to obtain reference to image '%s' (%i)\n",
image_name, io_result); image_name, io_result);
return 0; return 0;
} }
@ -286,7 +286,7 @@ unsigned long load_image(meminfo *mem_layout,
/* Attempt to access the image */ /* Attempt to access the image */
io_result = io_open(dev_handle, image_spec, &image_handle); io_result = io_open(dev_handle, image_spec, &image_handle);
if (io_result != IO_SUCCESS) { if (io_result != IO_SUCCESS) {
ERROR("Failed to access image '%s' (%i)\n", WARN("Failed to access image '%s' (%i)\n",
image_name, io_result); image_name, io_result);
return 0; return 0;
} }
@ -294,14 +294,14 @@ unsigned long load_image(meminfo *mem_layout,
/* Find the size of the image */ /* Find the size of the image */
io_result = io_size(image_handle, &image_size); io_result = io_size(image_handle, &image_size);
if ((io_result != IO_SUCCESS) || (image_size == 0)) { if ((io_result != IO_SUCCESS) || (image_size == 0)) {
ERROR("Failed to determine the size of the image '%s' file (%i)\n", WARN("Failed to determine the size of the image '%s' file (%i)\n",
image_name, io_result); image_name, io_result);
goto fail; goto fail;
} }
/* See if we have enough space */ /* See if we have enough space */
if (image_size > mem_layout->free_size) { if (image_size > mem_layout->free_size) {
ERROR("ERROR: Cannot load '%s' file: Not enough space.\n", WARN("Cannot load '%s' file: Not enough space.\n",
image_name); image_name);
dump_load_info(0, image_size, mem_layout); dump_load_info(0, image_size, mem_layout);
goto fail; goto fail;
@ -320,7 +320,7 @@ unsigned long load_image(meminfo *mem_layout,
assert(image_base <= temp_image_base); assert(image_base <= temp_image_base);
if (image_base < mem_layout->free_base) { if (image_base < mem_layout->free_base) {
ERROR("Cannot load '%s' file: Not enough space.\n", WARN("Cannot load '%s' file: Not enough space.\n",
image_name); image_name);
dump_load_info(image_base, image_size, mem_layout); dump_load_info(image_base, image_size, mem_layout);
goto fail; goto fail;
@ -341,7 +341,7 @@ unsigned long load_image(meminfo *mem_layout,
/* Page align base address and check whether the image still fits */ /* Page align base address and check whether the image still fits */
if (image_base + image_size > if (image_base + image_size >
mem_layout->free_base + mem_layout->free_size) { mem_layout->free_base + mem_layout->free_size) {
ERROR("Cannot load '%s' file: Not enough space.\n", WARN("Cannot load '%s' file: Not enough space.\n",
image_name); image_name);
dump_load_info(image_base, image_size, mem_layout); dump_load_info(image_base, image_size, mem_layout);
goto fail; goto fail;
@ -406,7 +406,7 @@ unsigned long load_image(meminfo *mem_layout,
if ((image_base < mem_layout->free_base) || if ((image_base < mem_layout->free_base) ||
(image_base + image_size > (image_base + image_size >
mem_layout->free_base + mem_layout->free_size)) { mem_layout->free_base + mem_layout->free_size)) {
ERROR("Cannot load '%s' file: Not enough space.\n", WARN("Cannot load '%s' file: Not enough space.\n",
image_name); image_name);
dump_load_info(image_base, image_size, mem_layout); dump_load_info(image_base, image_size, mem_layout);
goto fail; goto fail;
@ -414,7 +414,7 @@ unsigned long load_image(meminfo *mem_layout,
/* Check whether the fixed load address is page-aligned. */ /* Check whether the fixed load address is page-aligned. */
if (!is_page_aligned(image_base)) { if (!is_page_aligned(image_base)) {
ERROR("Cannot load '%s' file at unaligned address 0x%lx\n", WARN("Cannot load '%s' file at unaligned address 0x%lx\n",
image_name, fixed_addr); image_name, fixed_addr);
goto fail; goto fail;
} }
@ -465,7 +465,7 @@ unsigned long load_image(meminfo *mem_layout,
/* TODO: Consider whether to try to recover/retry a partially successful read */ /* TODO: Consider whether to try to recover/retry a partially successful read */
io_result = io_read(image_handle, (void *)image_base, image_size, &bytes_read); io_result = io_read(image_handle, (void *)image_base, image_size, &bytes_read);
if ((io_result != IO_SUCCESS) || (bytes_read < image_size)) { if ((io_result != IO_SUCCESS) || (bytes_read < image_size)) {
ERROR("Failed to load '%s' file (%i)\n", image_name, io_result); WARN("Failed to load '%s' file (%i)\n", image_name, io_result);
goto fail; goto fail;
} }

20
drivers/io/io_fip.c

@ -184,7 +184,7 @@ static int fip_dev_init(struct io_dev_info *dev_info, const void *init_params)
result = plat_get_image_source(image_name, &backend_dev_handle, result = plat_get_image_source(image_name, &backend_dev_handle,
&backend_image_spec); &backend_image_spec);
if (result != IO_SUCCESS) { if (result != IO_SUCCESS) {
ERROR("Failed to obtain reference to image '%s' (%i)\n", WARN("Failed to obtain reference to image '%s' (%i)\n",
image_name, result); image_name, result);
result = IO_FAIL; result = IO_FAIL;
goto fip_dev_init_exit; goto fip_dev_init_exit;
@ -194,7 +194,7 @@ static int fip_dev_init(struct io_dev_info *dev_info, const void *init_params)
result = io_open(backend_dev_handle, backend_image_spec, result = io_open(backend_dev_handle, backend_image_spec,
&backend_handle); &backend_handle);
if (result != IO_SUCCESS) { if (result != IO_SUCCESS) {
ERROR("Failed to access image '%s' (%i)\n", image_name, result); WARN("Failed to access image '%s' (%i)\n", image_name, result);
result = IO_FAIL; result = IO_FAIL;
goto fip_dev_init_exit; goto fip_dev_init_exit;
} }
@ -202,7 +202,7 @@ static int fip_dev_init(struct io_dev_info *dev_info, const void *init_params)
result = io_read(backend_handle, &header, sizeof(header), &bytes_read); result = io_read(backend_handle, &header, sizeof(header), &bytes_read);
if (result == IO_SUCCESS) { if (result == IO_SUCCESS) {
if (!is_valid_header(&header)) { if (!is_valid_header(&header)) {
ERROR("Firmware Image Package header check failed.\n"); WARN("Firmware Image Package header check failed.\n");
result = IO_FAIL; result = IO_FAIL;
} else { } else {
INFO("FIP header looks OK.\n"); INFO("FIP header looks OK.\n");
@ -249,7 +249,7 @@ static int fip_file_open(struct io_dev_info *dev_info, const void *spec,
* than one open file at a time if needed. * than one open file at a time if needed.
*/ */
if (current_file.entry.offset_address != 0) { if (current_file.entry.offset_address != 0) {
ERROR("fip_file_open : Only one open file at a time.\n"); WARN("fip_file_open : Only one open file at a time.\n");
return IO_RESOURCES_EXHAUSTED; return IO_RESOURCES_EXHAUSTED;
} }
@ -257,7 +257,7 @@ static int fip_file_open(struct io_dev_info *dev_info, const void *spec,
result = io_open(backend_dev_handle, backend_image_spec, result = io_open(backend_dev_handle, backend_image_spec,
&backend_handle); &backend_handle);
if (result != IO_SUCCESS) { if (result != IO_SUCCESS) {
ERROR("Failed to open Firmware Image Package (%i)\n", result); WARN("Failed to open Firmware Image Package (%i)\n", result);
result = IO_FAIL; result = IO_FAIL;
goto fip_file_open_exit; goto fip_file_open_exit;
} }
@ -265,7 +265,7 @@ static int fip_file_open(struct io_dev_info *dev_info, const void *spec,
/* Seek past the FIP header into the Table of Contents */ /* Seek past the FIP header into the Table of Contents */
result = io_seek(backend_handle, IO_SEEK_SET, sizeof(fip_toc_header)); result = io_seek(backend_handle, IO_SEEK_SET, sizeof(fip_toc_header));
if (result != IO_SUCCESS) { if (result != IO_SUCCESS) {
ERROR("fip_file_open: failed to seek\n"); WARN("fip_file_open: failed to seek\n");
result = IO_FAIL; result = IO_FAIL;
goto fip_file_open_close; goto fip_file_open_close;
} }
@ -284,7 +284,7 @@ static int fip_file_open(struct io_dev_info *dev_info, const void *spec,
break; break;
} }
} else { } else {
ERROR("Failed to read FIP (%i)\n", result); WARN("Failed to read FIP (%i)\n", result);
goto fip_file_open_close; goto fip_file_open_close;
} }
} while (compare_uuids(&current_file.entry.uuid, &uuid_null) != 0); } while (compare_uuids(&current_file.entry.uuid, &uuid_null) != 0);
@ -341,7 +341,7 @@ static int fip_file_read(struct io_entity *entity, void *buffer, size_t length,
result = io_open(backend_dev_handle, backend_image_spec, result = io_open(backend_dev_handle, backend_image_spec,
&backend_handle); &backend_handle);
if (result != IO_SUCCESS) { if (result != IO_SUCCESS) {
ERROR("Failed to open FIP (%i)\n", result); WARN("Failed to open FIP (%i)\n", result);
result = IO_FAIL; result = IO_FAIL;
goto fip_file_read_exit; goto fip_file_read_exit;
} }
@ -352,7 +352,7 @@ static int fip_file_read(struct io_entity *entity, void *buffer, size_t length,
file_offset = fp->entry.offset_address + fp->file_pos; file_offset = fp->entry.offset_address + fp->file_pos;
result = io_seek(backend_handle, IO_SEEK_SET, file_offset); result = io_seek(backend_handle, IO_SEEK_SET, file_offset);
if (result != IO_SUCCESS) { if (result != IO_SUCCESS) {
ERROR("fip_file_read: failed to seek\n"); WARN("fip_file_read: failed to seek\n");
result = IO_FAIL; result = IO_FAIL;
goto fip_file_read_close; goto fip_file_read_close;
} }
@ -360,7 +360,7 @@ static int fip_file_read(struct io_entity *entity, void *buffer, size_t length,
result = io_read(backend_handle, buffer, length, &bytes_read); result = io_read(backend_handle, buffer, length, &bytes_read);
if (result != IO_SUCCESS) { if (result != IO_SUCCESS) {
/* We cannot read our data. Fail. */ /* We cannot read our data. Fail. */
ERROR("Failed to read payload (%i)\n", result); WARN("Failed to read payload (%i)\n", result);
result = IO_FAIL; result = IO_FAIL;
goto fip_file_read_close; goto fip_file_read_close;
} else { } else {

2
drivers/io/io_memmap.c

@ -137,7 +137,7 @@ static int memmap_block_open(struct io_dev_info *dev_info, const void *spec,
entity->info = (uintptr_t)&current_file; entity->info = (uintptr_t)&current_file;
result = IO_SUCCESS; result = IO_SUCCESS;
} else { } else {
ERROR("A Memmap device is already active. Close first.\n"); WARN("A Memmap device is already active. Close first.\n");
result = IO_RESOURCES_EXHAUSTED; result = IO_RESOURCES_EXHAUSTED;
} }

2
plat/fvp/plat_io_storage.c

@ -234,7 +234,7 @@ static int fvp_bl33_policy(io_dev_handle *dev_handle, void **image_spec)
int result = IO_FAIL; int result = IO_FAIL;
void *local_image_spec = &bl33_file_spec; void *local_image_spec = &bl33_file_spec;
INFO("Loading BL33 (UEFI)\n"); INFO("Loading BL33 (Normal world firmware)\n");
/* FIP first then fall back to semi-hosting */ /* FIP first then fall back to semi-hosting */
result = open_fip(local_image_spec); result = open_fip(local_image_spec);
if (result == IO_SUCCESS) { if (result == IO_SUCCESS) {

Loading…
Cancel
Save