diff --git a/bl2/bl2_main.c b/bl2/bl2_main.c index 71940a62cfb67a9abd8b3857f712063b464dbcea..404744b7892b22b470505f189c01261fafdf7f27 100644 --- a/bl2/bl2_main.c +++ b/bl2/bl2_main.c @@ -34,6 +34,7 @@ #include <auth_mod.h> #include <bl_common.h> #include <debug.h> +#include <errno.h> #include <platform.h> #include <platform_def.h> #include <stdint.h> @@ -239,7 +240,7 @@ void bl2_main(void) e = load_bl32(bl2_to_bl31_params); if (e) { - if (e == LOAD_AUTH_ERR) { + if (e == -EAUTH) { ERROR("Failed to authenticate BL3-2\n"); panic(); } else { diff --git a/common/bl_common.c b/common/bl_common.c index 73c615e5e83a8323afbf51d1c736fcf8059217d3..91a0ae8c43f31414112badb533af5bf94cf96d3d 100644 --- a/common/bl_common.c +++ b/common/bl_common.c @@ -207,7 +207,7 @@ int load_image(meminfo_t *mem_layout, uintptr_t image_spec; size_t image_size; size_t bytes_read; - int io_result = IO_FAIL; + int io_result; assert(mem_layout != NULL); assert(image_data != NULL); @@ -215,7 +215,7 @@ int load_image(meminfo_t *mem_layout, /* Obtain a reference to the image by querying the platform layer */ io_result = plat_get_image_source(image_id, &dev_handle, &image_spec); - if (io_result != IO_SUCCESS) { + if (io_result != 0) { WARN("Failed to obtain reference to image id=%u (%i)\n", image_id, io_result); return io_result; @@ -223,7 +223,7 @@ int load_image(meminfo_t *mem_layout, /* Attempt to access the image */ io_result = io_open(dev_handle, image_spec, &image_handle); - if (io_result != IO_SUCCESS) { + if (io_result != 0) { WARN("Failed to access image id=%u (%i)\n", image_id, io_result); return io_result; @@ -233,7 +233,7 @@ int load_image(meminfo_t *mem_layout, /* Find the size of the image */ io_result = io_size(image_handle, &image_size); - if ((io_result != IO_SUCCESS) || (image_size == 0)) { + if ((io_result != 0) || (image_size == 0)) { WARN("Failed to determine the size of the image id=%u (%i)\n", image_id, io_result); goto exit; @@ -252,7 +252,7 @@ int load_image(meminfo_t *mem_layout, /* We have enough space so load the image now */ /* TODO: Consider whether to try to recover/retry a partially successful read */ io_result = io_read(image_handle, image_base, image_size, &bytes_read); - if ((io_result != IO_SUCCESS) || (bytes_read < image_size)) { + if ((io_result != 0) || (bytes_read < image_size)) { WARN("Failed to load image id=%u (%i)\n", image_id, io_result); goto exit; } @@ -319,7 +319,7 @@ int load_auth_image(meminfo_t *mem_layout, if (rc == 0) { rc = load_auth_image(mem_layout, parent_id, image_base, image_data, NULL); - if (rc != LOAD_SUCCESS) { + if (rc != 0) { return rc; } } @@ -328,8 +328,8 @@ int load_auth_image(meminfo_t *mem_layout, /* Load the image */ rc = load_image(mem_layout, image_id, image_base, image_data, entry_point_info); - if (rc != IO_SUCCESS) { - return LOAD_ERR; + if (rc != 0) { + return rc; } #if TRUSTED_BOARD_BOOT @@ -342,7 +342,7 @@ int load_auth_image(meminfo_t *mem_layout, image_data->image_size); flush_dcache_range(image_data->image_base, image_data->image_size); - return LOAD_AUTH_ERR; + return -EAUTH; } /* After working with data, invalidate the data cache */ @@ -350,5 +350,5 @@ int load_auth_image(meminfo_t *mem_layout, (size_t)image_data->image_size); #endif /* TRUSTED_BOARD_BOOT */ - return LOAD_SUCCESS; + return 0; } diff --git a/docs/porting-guide.md b/docs/porting-guide.md index c369844ce803da9a4414fbf5355e4a210feaa3b7..db6038a41a159d71c06b2276d4f7957592d864ee 100644 --- a/docs/porting-guide.md +++ b/docs/porting-guide.md @@ -358,13 +358,12 @@ must also be defined: Defines the maximum number of registered IO devices. Attempting to register more devices than this value using `io_register_device()` will fail with - IO_RESOURCES_EXHAUSTED. + -ENOMEM. * **#define : MAX_IO_HANDLES** Defines the maximum number of open IO handles. Attempting to open more IO - entities than this value using `io_open()` will fail with - IO_RESOURCES_EXHAUSTED. + entities than this value using `io_open()` will fail with -ENOMEM. If the platform needs to allocate data within the per-cpu data framework in BL3-1, it should define the following macro. Currently this is only required if diff --git a/include/common/bl_common.h b/include/common/bl_common.h index 164377f6f216a5d9cef7fcdff9ffeb45be3556c4..c687b3543c11ccd7af565cd0f1970d1ac6375a7f 100644 --- a/include/common/bl_common.h +++ b/include/common/bl_common.h @@ -202,15 +202,6 @@ typedef struct bl31_params { image_info_t *bl33_image_info; } bl31_params_t; -/* - * load_auth_image() return values - */ -enum { - LOAD_SUCCESS, /* Load + authentication success */ - LOAD_ERR, /* Load error */ - LOAD_AUTH_ERR /* Authentication error */ -}; - /* * Compile time assertions related to the 'entry_point_info' structure to diff --git a/include/drivers/io/io_storage.h b/include/drivers/io/io_storage.h index e98dcd04eb970814ef9eb0367c207333f052df04..4c3526ef10b2d7f4d3ece2caee75409cd3b2b532 100644 --- a/include/drivers/io/io_storage.h +++ b/include/drivers/io/io_storage.h @@ -31,6 +31,7 @@ #ifndef __IO_H__ #define __IO_H__ +#include <errno.h> #include <stdint.h> #include <stdio.h> /* For ssize_t */ #include <uuid.h> @@ -88,11 +89,13 @@ typedef struct io_block_spec { #define IO_MODE_RW (1 << 1) -/* Return codes reported by 'io_*' APIs */ +/* Return codes reported by 'io_*' APIs. + * IMPORTANT: these definitions are deprecated. Callers should use standard + * errno definitions when checking the return value of io_* APIs. */ #define IO_SUCCESS (0) -#define IO_FAIL (-1) -#define IO_NOT_SUPPORTED (-2) -#define IO_RESOURCES_EXHAUSTED (-3) +#define IO_FAIL (-ENOENT) +#define IO_NOT_SUPPORTED (-ENODEV) +#define IO_RESOURCES_EXHAUSTED (-ENOMEM) /* Open a connection to a device */