mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-24 22:05:40 +00:00
arm-io: Panic in case of io setup failure
Currently, an IO setup failure will be ignored on arm platform release build. Change this to panic instead. Change-Id: I027a045bce2422b0a0fc4ff9e9d4c6e7bf5d2f98 Signed-off-by: Louis Mayencourt <louis.mayencourt@arm.com>
This commit is contained in:
parent
d6dcbcad18
commit
9739982125
4 changed files with 46 additions and 24 deletions
|
@ -149,7 +149,7 @@ void arm_setup_romlib(void);
|
||||||
#define ARM_ROTPK_DEVEL_ECDSA_ID 3
|
#define ARM_ROTPK_DEVEL_ECDSA_ID 3
|
||||||
|
|
||||||
/* IO storage utility functions */
|
/* IO storage utility functions */
|
||||||
void arm_io_setup(void);
|
int arm_io_setup(void);
|
||||||
|
|
||||||
/* Security utility functions */
|
/* Security utility functions */
|
||||||
void arm_tzc400_setup(const arm_tzc_regions_info_t *tzc_regions);
|
void arm_tzc400_setup(const arm_tzc_regions_info_t *tzc_regions);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved.
|
* Copyright (c) 2014-2020, ARM Limited and Contributors. All rights reserved.
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: BSD-3-Clause
|
* SPDX-License-Identifier: BSD-3-Clause
|
||||||
*/
|
*/
|
||||||
|
@ -120,18 +120,22 @@ void plat_arm_io_setup(void)
|
||||||
{
|
{
|
||||||
int io_result;
|
int io_result;
|
||||||
|
|
||||||
arm_io_setup();
|
io_result = arm_io_setup();
|
||||||
|
if (io_result < 0) {
|
||||||
|
panic();
|
||||||
|
}
|
||||||
|
|
||||||
/* Register the additional IO devices on this platform */
|
/* Register the additional IO devices on this platform */
|
||||||
io_result = register_io_dev_sh(&sh_dev_con);
|
io_result = register_io_dev_sh(&sh_dev_con);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
panic();
|
||||||
|
}
|
||||||
|
|
||||||
/* Open connections to devices and cache the handles */
|
/* Open connections to devices and cache the handles */
|
||||||
io_result = io_dev_open(sh_dev_con, (uintptr_t)NULL, &sh_dev_handle);
|
io_result = io_dev_open(sh_dev_con, (uintptr_t)NULL, &sh_dev_handle);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
panic();
|
||||||
/* Ignore improbable errors in release builds */
|
}
|
||||||
(void)io_result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -63,32 +63,41 @@ int open_memmap(const uintptr_t spec)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
void arm_io_setup(void)
|
int arm_io_setup(void)
|
||||||
{
|
{
|
||||||
int io_result;
|
int io_result;
|
||||||
|
|
||||||
io_result = register_io_dev_fip(&fip_dev_con);
|
io_result = register_io_dev_fip(&fip_dev_con);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
return io_result;
|
||||||
|
}
|
||||||
|
|
||||||
io_result = register_io_dev_memmap(&memmap_dev_con);
|
io_result = register_io_dev_memmap(&memmap_dev_con);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
return io_result;
|
||||||
|
}
|
||||||
|
|
||||||
/* Open connections to devices and cache the handles */
|
/* Open connections to devices and cache the handles */
|
||||||
io_result = io_dev_open(fip_dev_con, (uintptr_t)NULL,
|
io_result = io_dev_open(fip_dev_con, (uintptr_t)NULL,
|
||||||
&fip_dev_handle);
|
&fip_dev_handle);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
return io_result;
|
||||||
|
}
|
||||||
|
|
||||||
io_result = io_dev_open(memmap_dev_con, (uintptr_t)NULL,
|
io_result = io_dev_open(memmap_dev_con, (uintptr_t)NULL,
|
||||||
&memmap_dev_handle);
|
&memmap_dev_handle);
|
||||||
assert(io_result == 0);
|
|
||||||
|
|
||||||
/* Ignore improbable errors in release builds */
|
return io_result;
|
||||||
(void)io_result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void plat_arm_io_setup(void)
|
void plat_arm_io_setup(void)
|
||||||
{
|
{
|
||||||
arm_io_setup();
|
int err;
|
||||||
|
|
||||||
|
err = arm_io_setup();
|
||||||
|
if (err < 0) {
|
||||||
|
panic();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int plat_arm_get_alt_image_source(
|
int plat_arm_get_alt_image_source(
|
||||||
|
|
|
@ -292,32 +292,41 @@ static int open_memmap(const uintptr_t spec)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void arm_io_setup(void)
|
int arm_io_setup(void)
|
||||||
{
|
{
|
||||||
int io_result;
|
int io_result;
|
||||||
|
|
||||||
io_result = register_io_dev_fip(&fip_dev_con);
|
io_result = register_io_dev_fip(&fip_dev_con);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
return io_result;
|
||||||
|
}
|
||||||
|
|
||||||
io_result = register_io_dev_memmap(&memmap_dev_con);
|
io_result = register_io_dev_memmap(&memmap_dev_con);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
return io_result;
|
||||||
|
}
|
||||||
|
|
||||||
/* Open connections to devices and cache the handles */
|
/* Open connections to devices and cache the handles */
|
||||||
io_result = io_dev_open(fip_dev_con, (uintptr_t)NULL,
|
io_result = io_dev_open(fip_dev_con, (uintptr_t)NULL,
|
||||||
&fip_dev_handle);
|
&fip_dev_handle);
|
||||||
assert(io_result == 0);
|
if (io_result < 0) {
|
||||||
|
return io_result;
|
||||||
|
}
|
||||||
|
|
||||||
io_result = io_dev_open(memmap_dev_con, (uintptr_t)NULL,
|
io_result = io_dev_open(memmap_dev_con, (uintptr_t)NULL,
|
||||||
&memmap_dev_handle);
|
&memmap_dev_handle);
|
||||||
assert(io_result == 0);
|
|
||||||
|
|
||||||
/* Ignore improbable errors in release builds */
|
return io_result;
|
||||||
(void)io_result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void plat_arm_io_setup(void)
|
void plat_arm_io_setup(void)
|
||||||
{
|
{
|
||||||
arm_io_setup();
|
int err;
|
||||||
|
|
||||||
|
err = arm_io_setup();
|
||||||
|
if (err < 0) {
|
||||||
|
panic();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int plat_arm_get_alt_image_source(
|
int plat_arm_get_alt_image_source(
|
||||||
|
|
Loading…
Add table
Reference in a new issue