vgabios update: handle compatibility with older qemu versions

As pointed out by avi the vgabios update is guest-visible and thus has
migration implications.

One change is that the vga has a valid pci rom bar now.  We already have
a pci bus property to enable/disable the rom bar and we'll load the bios
via fw_cfg as fallback for the no-rom-bar case.  So we just have to add
compat properties to handle this case.

A second change is that the magic bochs lfb @ 0xe0000000 is gone.  When
live-migrating a guest from a older qemu version it might be using the
lfb though, so we have to keep it for the old machine types.  The patch
enables the bochs lfb in case we don't have the pci rom bar enabled
(i.e. we are in 0.13+older compat mode).

This patch depends on these patches which add (and use) the pc-0.13
machine type:
  http://patchwork.ozlabs.org/patch/70797/
  http://patchwork.ozlabs.org/patch/70798/

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Cc: avi@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
3 files changed
tree: 3354e6cb7db8f04e83777ea1a61b113125a92aa0
  1. audio/
  2. block/
  3. bsd-user/
  4. darwin-user/
  5. default-configs/
  6. docs/
  7. fpu/
  8. fsdev/
  9. gdb-xml/
  10. hw/
  11. linux-user/
  12. net/
  13. pc-bios/
  14. QMP/
  15. roms/
  16. slirp/
  17. sysconfigs/
  18. target-alpha/
  19. target-arm/
  20. target-cris/
  21. target-i386/
  22. target-m68k/
  23. target-microblaze/
  24. target-mips/
  25. target-ppc/
  26. target-s390x/
  27. target-sh4/
  28. target-sparc/
  29. tcg/
  30. tests/
  31. ui/
  32. .gitignore
  33. .gitmodules
  34. a.out.h
  35. acl.c
  36. acl.h
  37. aes.c
  38. aes.h
  39. aio.c
  40. alpha-dis.c
  41. alpha.ld
  42. arch_init.c
  43. arch_init.h
  44. arm-dis.c
  45. arm-semi.c
  46. arm.ld
  47. async.c
  48. balloon.c
  49. balloon.h
  50. block-migration.c
  51. block-migration.h
  52. block.c
  53. block.h
  54. block_int.h
  55. blockdev.c
  56. blockdev.h
  57. bswap.h
  58. bt-host.c
  59. bt-host.h
  60. bt-vhci.c
  61. buffered_file.c
  62. buffered_file.h
  63. cache-utils.c
  64. cache-utils.h
  65. Changelog
  66. check-qdict.c
  67. check-qfloat.c
  68. check-qint.c
  69. check-qjson.c
  70. check-qlist.c
  71. check-qstring.c
  72. cmd.c
  73. cmd.h
  74. CODING_STYLE
  75. compatfd.c
  76. compatfd.h
  77. config.h
  78. configure
  79. console.c
  80. console.h
  81. COPYING
  82. COPYING.LIB
  83. cpu-all.h
  84. cpu-common.h
  85. cpu-defs.h
  86. cpu-exec.c
  87. cpus.c
  88. cpus.h
  89. create_config
  90. cris-dis.c
  91. cursor.c
  92. cursor_hidden.xpm
  93. cursor_left_ptr.xpm
  94. cutils.c
  95. def-helper.h
  96. device_tree.c
  97. device_tree.h
  98. dis-asm.h
  99. disas.c
  100. disas.h
  101. dma-helpers.c
  102. dma.h
  103. dyngen-exec.h
  104. elf.h
  105. envlist.c
  106. envlist.h
  107. exec-all.h
  108. exec.c
  109. feature_to_c.sh
  110. gdbstub.c
  111. gdbstub.h
  112. gen-icount.h
  113. HACKING
  114. hmp-commands.hx
  115. host-utils.c
  116. host-utils.h
  117. hpet.h
  118. hppa-dis.c
  119. hppa.ld
  120. hxtool
  121. i386-dis.c
  122. i386.ld
  123. ia64-dis.c
  124. ia64.ld
  125. input.c
  126. ioport-user.c
  127. ioport.c
  128. ioport.h
  129. iorange.h
  130. iov.c
  131. iov.h
  132. json-lexer.c
  133. json-lexer.h
  134. json-parser.c
  135. json-parser.h
  136. json-streamer.c
  137. json-streamer.h
  138. kvm-all.c
  139. kvm-stub.c
  140. kvm.h
  141. libfdt_env.h
  142. LICENSE
  143. linux-aio.c
  144. m68k-dis.c
  145. m68k-semi.c
  146. m68k.ld
  147. MAINTAINERS
  148. Makefile
  149. Makefile.dis
  150. Makefile.hw
  151. Makefile.objs
  152. Makefile.target
  153. Makefile.user
  154. microblaze-dis.c
  155. migration-exec.c
  156. migration-fd.c
  157. migration-tcp.c
  158. migration-unix.c
  159. migration.c
  160. migration.h
  161. mips-dis.c
  162. mips.ld
  163. module.c
  164. module.h
  165. monitor.c
  166. monitor.h
  167. nbd.c
  168. nbd.h
  169. net-checksum.c
  170. net.c
  171. net.h
  172. notify.c
  173. notify.h
  174. os-posix.c
  175. os-win32.c
  176. osdep.c
  177. osdep.h
  178. oslib-posix.c
  179. oslib-win32.c
  180. path.c
  181. pci-ids.txt
  182. pflib.c
  183. pflib.h
  184. poison.h
  185. posix-aio-compat.c
  186. ppc-dis.c
  187. ppc.ld
  188. ppc64.ld
  189. qbool.c
  190. qbool.h
  191. qdict-test-data.txt
  192. qdict.c
  193. qdict.h
  194. qemu-aio.h
  195. qemu-barrier.h
  196. qemu-binfmt-conf.sh
  197. qemu-char.c
  198. qemu-char.h
  199. qemu-common.h
  200. qemu-config.c
  201. qemu-config.h
  202. qemu-doc.texi
  203. qemu-error.c
  204. qemu-error.h
  205. qemu-img-cmds.hx
  206. qemu-img.c
  207. qemu-img.texi
  208. qemu-io.c
  209. qemu-lock.h
  210. qemu-log.h
  211. qemu-malloc.c
  212. qemu-nbd.c
  213. qemu-nbd.texi
  214. qemu-objects.h
  215. qemu-option.c
  216. qemu-option.h
  217. qemu-options.h
  218. qemu-options.hx
  219. qemu-os-posix.h
  220. qemu-os-win32.h
  221. qemu-queue.h
  222. qemu-sockets.c
  223. qemu-tech.texi
  224. qemu-thread.c
  225. qemu-thread.h
  226. qemu-timer-common.c
  227. qemu-timer.c
  228. qemu-timer.h
  229. qemu-tool.c
  230. qemu-x509.h
  231. qemu.sasl
  232. qemu_socket.h
  233. qerror.c
  234. qerror.h
  235. qfloat.c
  236. qfloat.h
  237. qint.c
  238. qint.h
  239. qjson.c
  240. qjson.h
  241. qlist.c
  242. qlist.h
  243. qmp-commands.hx
  244. qobject.h
  245. qstring.c
  246. qstring.h
  247. range.h
  248. readline.c
  249. readline.h
  250. README
  251. rules.mak
  252. rwhandler.c
  253. rwhandler.h
  254. s390-dis.c
  255. s390.ld
  256. savevm.c
  257. sh4-dis.c
  258. simpletrace.c
  259. simpletrace.h
  260. simpletrace.py
  261. softmmu-semi.h
  262. softmmu_defs.h
  263. softmmu_exec.h
  264. softmmu_header.h
  265. softmmu_template.h
  266. sparc-dis.c
  267. sparc.ld
  268. sparc64.ld
  269. sysemu.h
  270. targphys.h
  271. tcg-runtime.c
  272. texi2pod.pl
  273. thunk.c
  274. thunk.h
  275. TODO
  276. trace-events
  277. tracetool
  278. translate-all.c
  279. uboot_image.h
  280. usb-bsd.c
  281. usb-linux.c
  282. usb-stub.c
  283. VERSION
  284. version.rc
  285. vgafont.h
  286. vl.c
  287. x86_64.ld