prod/rdaspen: Rework FMU fault handling
This commit adjusts the fault handling logic in FMU module to clear faults leaf-first. This is necessary, because in the SI FMU design spec it is explicitly stated that this is the correct order to clear FMU faults. For this purpose the implementation of next_fault() for system and GIC/MHU FMU was split up into a peek-phase (discover next fault) and an acknowledge-phase (clear next fault). The next_fault() function in FMU module was adapted in such a way to do the following:
- Iterate through fault tree from root-to-leaf and push the discovered faults onto a fault-stack.
- Pop one fault after the other from the fault-stack and clear it.
As part of the above fix, replace next_fault with two new callback functions: fault_peek and fault_ack.
Signed-off-by: Maximilian Berndt maximilian.berndt@arm.com