Hi,

Another option we can think about is a 64bit PCI bar for the
surfaces which can be moved out of the low 4G.

I heard this suggested by Avi, so this would allow us to allocate a
large chunk without requiring any memory hole?

You still need some address space for it, but as it isn't limited to 32bit addresses it can be mapped somewhere above 4G, i.e. we don't have to squeeze it into the 512MB pci hole at 0xe0000000. We can easily create a qxl gfx card with 1G of vram (aka surface) memory.

Only question is how to handle that in a backward compatible way. We have regions 4+5 in pci config space still unused. 64bit bars need two entries, so adding a 64bit bar would use up both. The new 64bit vram bar would cover all vram memory. The old 32bit vram bar would be a window to the first 32 or 64 MB of vram memory. We could probably even create some register to make the 32bit bar window offset configurable, so you can access all vram memory using the 32bit bar, just not all at the same time. Not sure the latter is worth the effort with the world moving to 64bit.

cheers,
  Gerd


Reply via email to