Hi!

> What I thought you meant was that a non-LPAE kernel didn't
> work at all if we told it about the high-MMIO window (which
> would mean we'd need to *not* put that in the dtb if we
> wanted to avoid breaking non-LPAE guests that didn't care
> about the other window.)

 Current generic PCI driver is not so smart. It simply tries to map all 
resources using devm_request_resource() in a loop. If a single call fails, the 
driver thinks that it cannot work and fails. It does not try to ignore 
inaccessible regions.

> >  The behavior which i explained above causes boot problems if our
> > configuration assumes that we boot off emulated PCI device. Because
> > PCI controller becomes unusable.
> 
> ...which is what you're saying here.
> 
> Which is it?

 I don't understand this last question...
 Ok, from scratch: imagine that we already have a qemu installation running 
non-LPAE 32-bit guest. This guest is configured to have PCI bus and SCSI drive 
on this bus, and boots off it. Now, if we implement a high MMIO window in qemu, 
which is unconditionally enabled, after qemu upgrade this guest will break, 
because its pre-existing kernel cannot work around the inaccessible PCI region.
 In order to keep this guest working, we need a possibility to disable the new 
MMIO region in qemu. At least to omit it from the device tree.
 Is this clear enough now ?

Kind regards,
Pavel Fedin
Expert Engineer
Samsung Electronics Research center Russia


Reply via email to