On 31/07/17 14:58, David Gibson wrote: > On Fri, Jul 28, 2017 at 08:20:57AM +0200, Thomas Huth wrote: >> On 28.07.2017 06:02, David Gibson wrote: >>> On Tue, Jul 25, 2017 at 08:03:06PM +0200, Greg Kurz wrote: >>>> The "phandle" property of the XICS node is referenced by the >>>> "interrupt-map" >>>> property of each PHB node. This is used by the guest OS to setup IRQs for >>>> all PCI devices. >>>> >>>> QEMU uses an arbitrary value (0x1111) for this phandle, but SLOF converts >>>> this value to a SLOF specific one, which is then presented to the guest OS. >>>> >>>> This patches introduces the new KVMPPC_H_UPDATE_PHANDLE hcall, which is >>>> used >>>> by SLOF to communicate the patched phandle value back to QEMU. This value >>>> is then cached and preserved accross migration until machine reset. >>>> >>>> This is required to be able to support PHB hotplug. >>>> >>>> Note, that SLOF already has some code to call KVMPPC_H_RTAS_UPDATE, so we >>>> have to introduce its number even if QEMU currently doesn't implement it. >>>> >>>> Suggested-by: Thomas Huth <th...@redhat.com> >>>> Signed-off-by: Greg Kurz <gr...@kaod.org> >>> >>> Ugh. I really, really hope we can avoid this, though I don't >>> immediately see how. Having to have two way communication between >>> qemu and SLOF about the device tree contents just seems like opening >>> the door to endless complexities. >>> >>> This is basically a consequence of the fact that both qemu and partly >>> responsible for constructing the device tree for the guest, and that's >>> not easy to avoid. >>> >>> Hrm.. Thomas, I know it's not really the OF way, but would it be >>> feasible to change SLOF to use the phandles as supplied by qemu rather >>> than creating its own? >> >> I don't see a way to do this in an easy, clean, reasonable way. SLOF >> uses pointers to internal structures as phandles all over the place. You >> likely can't replace that so easily without rewriting half of the whole >> device tree related code in SLOF, I guess... > > Dang, that's what I suspected. > > Just to be clear the phandles are used directly as raw pointers? > There's not even some lookup macro we could change? >
We would need to rewrite https://github.com/aik/SLOF/blob/master/slof/fs/node.fs Since SLOF does not seem to use phandles as pointers directly anywhere but in nofe.fs, this should be doable. Easier said than done though. -- Alexey
signature.asc
Description: OpenPGP digital signature