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 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel