Convert multiboot to fw_cfg backed data storage

Right now we load the guest kernel to RAM, fire off the BIOS, hope it
doesn't clobber memory and run an option rom that jumps into the kernel.

That breaks with SeaBIOS, as that clears memory. So let's read all
kernel, module etc. data using the fw_cfg interface when in the int19
handler.

This patch implements said mechanism for multiboot.

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