Re: [PATCH] x86/i8259: Work around buggy legacy PIC

From: H. Peter Anvin
Date: Fri May 14 2021 - 13:29:07 EST


On 5/14/21 9:12 AM, David Laight wrote:

A more interesting probe would be:
- Write some value to register 1 - the mask.
- Write 9 to register zero (selects interrupt in service register).
- Read register 0 - should be zero since we aren't in as ISR.
- Read register 1 - should get the mask back.
You can also write 8 to register 0, reads then return the pending interrupts.
Their might be pending interrupts - so that value can't be checked.

But if reads start returning the last written value you might only
have capacitors on the data bus.

What data bus? These things haven't been on a physical parallel bus for ages.

The required initialisation registers are pretty fixed for the PC hardware.
But finding the values requires a bit of work.

David

And you always risk activating new bugs.

Since this appears to be a specific platform advertising the wrong answer in firmware, this is better handled as a quirk.

-hpa