diff options
author | Oliver O'Halloran <oohall@gmail.com> | 2020-01-21 18:28:38 +1100 |
---|---|---|
committer | Oliver O'Halloran <oohall@gmail.com> | 2020-06-03 17:15:50 +1000 |
commit | 9b6433c29fddac70eb7b18136b8b130a01c5dc47 (patch) | |
tree | a326b570183511a5458b0dadba6883164d6a05cb /Makefile.main | |
parent | c42df50e1b19797a69d3a4aeaa496ec7d327b33f (diff) | |
download | skiboot-9b6433c29fddac70eb7b18136b8b130a01c5dc47.zip skiboot-9b6433c29fddac70eb7b18136b8b130a01c5dc47.tar.gz skiboot-9b6433c29fddac70eb7b18136b8b130a01c5dc47.tar.bz2 |
hw/phb4: Enable error interrupts
In PHB4 the PHB's error and informational interrupts were changed to behave
more like actual LSIs. On PHB3 these interrupts would be only be raised on
a 0 -> 1 transition of an error status bits (i.e. they were rising edge
triggered). On PHB4 the error interrupts are "true" LSIs and will be
re-raised as long the underlying error status bit is set.
This causes a headache for us because OPAL's PHB error handling model
requires Skiboot to preserve the state of the PHB (including errors) until
the kernel is ready to handle the error. As a result we can't do anything
in Skiboot to handle the interrupt condition and we need to mask the error
internally. We can do this by clearing the relevant bits in the IRQ_ENABLE
registers of the PHB.
It's worth pointing out that we don't want to mask the interrupt by setting
the Q bit in the XIVE ESBs. The ESBs are owned by the OS which may be
masking and unmasking the interrupt for its own reasons (e.g. migrating
IRQs). Skiboot modifying the ESB state could potentially cause problems and
should be avoided.
Cc: Cédric Le Goater <clg@kaod.org>
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Diffstat (limited to 'Makefile.main')
0 files changed, 0 insertions, 0 deletions