On Fri, 2013-11-08 at 09:05 +0100, Paolo Bonzini wrote: > Il 07/11/2013 22:51, Peter Maydell ha scritto: > >> > 1. Not all architectures have the behavior: "Address space that is not > >> > RAM(and friends) > >> > is for sure PCI". Only x86 behaves like this (I think). > > > > More specifically, the x86 pc behaves like this. Other > > x86 based systems could in theory behave differently > > (not that we actually model any, I think). > > After Marcel's patch, we have changed behavior for at least all boards > that pass get_system_memory() to pci_register_bus or pci_bus_new: > > * mips/gt64xxx_pci.c > > * pci-host/bonito.c > > * pci-host/ppce500.c > > * ppc/ppc4xx_pci.c > > * sh4/sh_pci.c > > These now will not go anymore through unassigned_mem_ops, which is a > behavioral change for MIPS boards (gt64xxx_pci and bonito) at least. > > Furthermore, the default behavior of the memory API _is_ read > all-ones/ignore writes, so I'm not sure what's the benefit of adding a > separate region for master abort... Actually, as I see, the default behavior of "system" memory region is to use unassigned_mem_ops that has valid.accepts method returning false (no read/write methods). I don't see that read all-ones/ignore writes is implemented. This was the main reason I submitted this patch. I had *no* clue that it would impact so much the system... I still think the patch is needed ans the guests will benefit from more accurate PCI spec emulation.
Thanks, Marcel > > Paolo