What's the type of the VMware or VirtualBox's graphics card?

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
windows8
Member
Member
Posts: 33
Joined: Sat Feb 23, 2013 3:52 am

What's the type of the VMware or VirtualBox's graphics card?

Post by windows8 »

On the one hand,these days I am reading nouveau source code. I have been reading for about one month.Now I think I can understand how it works with NVIDIA card generally,although it still need a very long time to write a small NVIDIA driver that can copy between video RAM,switch displaying mode and control hardware cursor by myself.

On the other hand,I also want to know what the type of the graphics cards of VMware VirtualBox even QEMU and BOCHS. When I searched google,I only got a little information about this.Some results say that they have custom video-cards,but how custom it is? Reading source code is a good way to answer this question,then I seemed to find the VirtualBox guest addon source. However,there is a symbol called vboxvideo_driver_load,I couldn't find out where it defined at all!

Is it possible to know how to communicate with the VirtualBox or VMware's video cards,such as controlling their "hardware" cursors?What's the type of the VMware or VirtualBox's graphics card? Thank you for your help.
User avatar
SpyderTL
Member
Member
Posts: 1074
Joined: Sun Sep 19, 2010 10:05 pm

Re: What's the type of the VMware or VirtualBox's graphics c

Post by SpyderTL »

For BOCHS, check out Bochs Graphics Adaptor.

For VirtualBox, it has its own graphics adapter. It has a PCI vendor ID of 0x80EE, and a device ID of 0xBEEF. The VirtualBox source is open source, so you can see exactly how the graphics device works, if you can read through the source. I have yet to find any documentation or a spec sheet for this "device", though.

For VMware, they have their own graphics adapter. The latest version has a PCI vendor ID of 0x15AD, and a device ID of 0x0405. The source for the device can be found here: http://vmware-svga.sourceforge.net/
Documentation can be found here: http://sourceforge.net/p/vmware-svga/gi ... erface.txt
Last edited by SpyderTL on Sun Nov 23, 2014 1:31 am, edited 4 times in total.
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
User avatar
iansjack
Member
Member
Posts: 4707
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: What's the type of the VMware or VirtualBox's graphics c

Post by iansjack »

The VirtualBox manual states that it does not emulate any physical graphics card. It just provides a generic Vesa/VGA card. I suspect that the same is true of VMWare.
User avatar
Kazinsal
Member
Member
Posts: 559
Joined: Wed Jul 13, 2011 7:38 pm
Libera.chat IRC: Kazinsal
Location: Vancouver
Contact:

Re: What's the type of the VMware or VirtualBox's graphics c

Post by Kazinsal »

VirtualBox emulates an extension of the BGA used by both Bochs and Qemu. I've been intending to write documentation on how to get it up and running natively, as well as its PCI interfaces, but I have yet to find the time (and I'm still working my way through the source of the implementation). For the most part you can get the VirtualBox graphics device configured by pretending it's a BGA 4 device, then reading the high word of the linear framebuffer address from the BGA register VBE_DISPI_INDEX_FB_BASE_HI (0x0B) and shifting it left 16 bits to get your linear framebuffer address (assuming you're using an LFB mode).

EDIT: minor correction; VBoxVideo supports 0xB0C4, not just 0xB0C2/0xB0C3.
Post Reply