On 11/3/24 07:43, Mark Cave-Ayland wrote:
During kernel startup OpenBSD accesses addresses mapped by BAR0 of the
ebus device
but at offsets where no IO devices exist. Before commit 4aa07e8649
("hw/sparc64/ebus:
Access memory regions via pci_address_space_io()") BAR0 was mapped to
legacy IO
space which allows accesses to unmapped devices to succeed, but
afterwards these
accesses to unmapped PCI IO space cause a memory fault which prevents
OpenBSD from
booting.
Since no devices are mapped at the addresses accessed by OpenBSD,
change ebus BAR0
from a PCI IO space alias to an IO memory region using
unassigned_io_ops which allows
these accesses to succeed and so allows OpenBSD to boot once again.
Fixes: 4aa07e8649 ("hw/sparc64/ebus: Access memory regions via
pci_address_space_io()")
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
[MCA: I'd like to merge this for 9.0 since I've been carrying various
local workarounds
to allow OpenBSD to boot on SPARC64 for some time.]
Sure.