The current model of loader copy "rom blobs" and kept in memory until a reset
occurs and waste host memory.
This serial of patches uses private reset handlers to load uimage/initrd/vmlinux
from hard disk on reset, which could make loader framework more dynamic and
reduce the memory consumption of QEMU process.
Olivia Yin (4):
use image_file_reset to reload initrd
use uimage_reset to reload uimage
use elf_reset to reload elf image
free rom->data when rom_reset
elf.h | 10 ++++++
hw/elf_ops.h | 44 +++++++++++++++++++++++---
hw/loader.c | 99 ++++++++++++++++++++++++++++++++++++++++++++++++----------
hw/loader.h | 9 +++++
4 files changed, 140 insertions(+), 22 deletions(-)
v7: clean structure ImageFile
v6:
patch 3/4: load symbol only when startup
v5:
patch 2/4: remove global variables is_linux and kernel_loaded.
patch 3/4: register reset handlers in loader.c for elf images.
extract the duplicated source code into function elf_phy_loader().
patch 4/4: fix the issue of memory increasing (about 1.4MB) once reload elf
image.
v4: fix elf reload and register reset handler in hw/elf_ops.h
v3: reload elf
v2: Rename target_phys_addr_t to hwaddr
v1: support uimage/initrd reload