[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121129000434.GA17233@kroah.com>
Date: Wed, 28 Nov 2012 16:04:34 -0800
From: Greg KH <gregkh@...uxfoundation.org>
To: KY Srinivasan <kys@...rosoft.com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"devel@...uxdriverproject.org" <devel@...uxdriverproject.org>
Subject: Re: drivres/hv
On Wed, Nov 28, 2012 at 11:32:52PM +0000, KY Srinivasan wrote:
> > > I recently discovered that the Hyper-V host allocates mmio
> > > memory for some synthetic devices like the virtual framebuffer.
> > > We are currently in the process of implementing this virtual
> > > framebuffer device. As part of the offer message from the host
> > > we are given the mmio region size that needs to be allocatted to
> > > the device. I am told in the current implementation of the firmware,
> > > this mmio resource shows up in the PCI space. What is the best way to
> > > allocate this mmio space for this driver.
> >
> > I don't understand, does the guest os think this really is mmio memory
> > and the host just set up up? Or is the memory being used to pass data
> > back and forth? Or something else?
>
> From what I understand, the host is allocating this memory and presenting
> this to the guest. This memory is to be used for framebuffer. The guest is
> expected to setup appropriate mappings to this region and use that as the
> framebuffer.
What type of framebuffer? Linux supports a ton of different ones, have
you looked at drivers/video/ to see if one of the ones there will "just
work" with what hyperv is passing to the guest?
If not, you'll have to write a new driver for this, look at the examples
of other framebuffer drivers in that directory for examples. Also, I
bet the code there will answer your memory questions.
> > And what do you mean "firmware"? That usually means UEFI/BIOS to me,
> > not a hyperv host.
>
> Hyper-V host presents the firmware to the guest (Hyper-V like KVM supports
> full virtualization with selective para-virtualization - PV drivers). As part of the
> BIOS presented to the guest this mmio region is allocated.
>
> >
> > And finally, what does the guest os see as far as the PCI resource space
> > shows it? Shouldn't it just think it is a normal PCI device and access
> > it properly that way?
>
> This is the crux of the problem. Vmbus and other vmbus based devices are not
> PCI devices. I have implemented vmbus as an ACPI driver since vmbus is an ACPI
> enumerated device. I have the size information of the mmio region that is to be
> allocated to the framebuffer device. I am looking at a way to allocate this mmio
> region.
Do you have any "hints" as to where it is, if it even is present, or
anything else? If so, use them and create a new framebuffer device with
that information.
If not, that seems really strange, but hey, it's hyper-v, it wouldn't be
the first time :)
good luck,
greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists