aboutsummaryrefslogtreecommitdiff
path: root/pc-bios/optionrom/multiboot_dma.S
diff options
context:
space:
mode:
authorMarcus Hähnel <marcus.haehnel@kernkonzept.com>2021-10-20 14:55:04 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2021-11-02 15:57:27 +0100
commit48972f8cad24eb4462c97ea68003e2dd35be0444 (patch)
tree6381678103fc9d67e5247006b31c218828a39eda /pc-bios/optionrom/multiboot_dma.S
parentf014c974595a1e3482c6afb57557a6e479b80328 (diff)
optionrom: add a DMA-enabled multiboot ROM
Add a new option rom for the multiboot loader, using DMA transfers to copy data instead of "rep insb". This significantly lowers QEMU's startup latency by a factor of about 40, for example, going from 30sec to 0.8sec when loading modules of 120MB in size. Signed-off-by: Marcus Hähnel <marcus.haehnel@kernkonzept.com> Signed-off-by: Adam Lackorzynski <adam@l4re.org> [Modified to keep the non-DMA code depending on #ifdef USE_FW_CFG_DMA; do not write below stack. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'pc-bios/optionrom/multiboot_dma.S')
-rw-r--r--pc-bios/optionrom/multiboot_dma.S2
1 files changed, 2 insertions, 0 deletions
diff --git a/pc-bios/optionrom/multiboot_dma.S b/pc-bios/optionrom/multiboot_dma.S
new file mode 100644
index 0000000000..d809af3e23
--- /dev/null
+++ b/pc-bios/optionrom/multiboot_dma.S
@@ -0,0 +1,2 @@
+#define USE_FW_CFG_DMA 1
+#include "multiboot.S"