Andreas Färber a écrit :
Am 14.04.2012 22:48, schrieb Hervé Poussineau:
Register is one byte-wide (as per specification), so there is no need to 
specify endianness.


The region was 4 bytes before, now it's 1. What happens when a 4-byte
read is attempted at that address? Do we need to specify the valid
widths for the MemoryRegion? Or is such a read constructed from this
region and (assuming) the return value of an unassigned read?

At first, Linux and IBM 40p firmware only attempt a 1-byte read to this address. In the case a 4-byte read is attempted to address 0xbffffff0, memory region layer will still call ppc_intack_read() function with size=4.

However, by changing region size from 4 to 1, you prevent direct reads
of 0xbffffff1..0xbffffff3, which I think is not a big loss (and is closer to specification).


diff --git a/hw/prep_pci.c b/hw/prep_pci.c
index 8b29da9..43847f5 100644
--- a/hw/prep_pci.c
+++ b/hw/prep_pci.c
@@ -25,10 +25,12 @@
 #include "hw.h"
 #include "pci.h"
 #include "pci_host.h"
+#include "pc.h"

Is that for pic_read_irq()?

Yes. All i8259-related functions are declared in pc.h

Hervé


Reply via email to