mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-25 06:19:56 +00:00
Tolerate runtime service initialization failure
At present, the firmware panics if a runtime service fails to initialize. An earlier patch had implemented late binding for all runtime service handlers. With that in place, this patch allows the firmware to proceed even when a service fails to initialize. Change-Id: I6cf4de2cecea9719f4cd48272a77cf459b080d4e
This commit is contained in:
parent
7f36660559
commit
090630e4bc
1 changed files with 14 additions and 13 deletions
|
@ -119,24 +119,25 @@ void runtime_svc_init()
|
|||
goto error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Fill the indices corresponding to the start and end owning
|
||||
* entity numbers with the index of the descriptor which will
|
||||
* handle the SMCs for this owning entity range.
|
||||
*/
|
||||
start_idx = get_unique_oen(rt_svc_descs[index].start_oen,
|
||||
rt_svc_descs[index].call_type);
|
||||
end_idx = get_unique_oen(rt_svc_descs[index].end_oen,
|
||||
rt_svc_descs[index].call_type);
|
||||
for (; start_idx <= end_idx; start_idx++)
|
||||
rt_svc_descs_indices[start_idx] = index;
|
||||
|
||||
/* Call the initialisation routine for this runtime service */
|
||||
rc = rt_svc_descs[index].init();
|
||||
if (rc) {
|
||||
ERROR("Error initializing runtime service %s\n",
|
||||
rt_svc_descs[index].name);
|
||||
goto error;
|
||||
} else {
|
||||
/*
|
||||
* Fill the indices corresponding to the start and end
|
||||
* owning entity numbers with the index of the
|
||||
* descriptor which will handle the SMCs for this owning
|
||||
* entity range.
|
||||
*/
|
||||
start_idx = get_unique_oen(rt_svc_descs[index].start_oen,
|
||||
rt_svc_descs[index].call_type);
|
||||
end_idx = get_unique_oen(rt_svc_descs[index].end_oen,
|
||||
rt_svc_descs[index].call_type);
|
||||
|
||||
for (; start_idx <= end_idx; start_idx++)
|
||||
rt_svc_descs_indices[start_idx] = index;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue