Il 08/11/2013 11:44, Peter Maydell ha scritto: > On 8 November 2013 08:05, Paolo Bonzini <[email protected]> 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 > > Oh, right. Ideally those boards should not do that (I fixed > the versatile pci controller not to do that a while back) but > it's a long standing behaviour so it would be better had we > not broken it. > > I think it should in general be fixable by just having those > pci controllers create an empty memory region to pass in, > like versatile: > > memory_region_init(&s->pci_io_space, OBJECT(s), "pci_io", 1ULL << 32); > memory_region_init(&s->pci_mem_space, OBJECT(s), "pci_mem", 1ULL << 32); > > pci_bus_new_inplace(&s->pci_bus, sizeof(s->pci_bus), DEVICE(obj), "pci", > &s->pci_mem_space, &s->pci_io_space, > PCI_DEVFN(11, 0), TYPE_PCI_BUS); > > That doesn't affect where PCI DMA goes. It might also > require mapping an alias into that region at wherever > the pci hole is on those boards. > > Kind of awkward to do and test at this point in the release cycle though.
Yes, for now we should just revert the patch. BTW I tried optimizing MMIO dispatch and managed to save ~30 cycles so I don't think we should be afraid of increasing the depth of the radix tree. All stuff for 1.8 though. Paolo Paolo ------------------------------------------------------------------------------ November Webinars for C, C++, Fortran Developers Accelerate application performance with scalable programming models. Explore techniques for threading, error checking, porting, and tuning. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60136231&iu=/4140/ostg.clktrk _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
