aboutsummaryrefslogtreecommitdiff
path: root/hw/riscv/spike.c
diff options
context:
space:
mode:
authorZhuang, Siwei (Data61, Kensington NSW) <Siwei.Zhuang@data61.csiro.au>2019-11-19 06:21:09 +0000
committerPalmer Dabbelt <palmerdabbelt@google.com>2019-11-25 12:34:52 -0800
commit6478dd745dca49d63250500cd1aeca1c41cd6f89 (patch)
treefbb21aee0c3a9399cab692e2921f8e8001d14a44 /hw/riscv/spike.c
parent9c0fb20c4bd50a99c3c6f6d515e05eaf8dd87fa4 (diff)
downloadqemu-6478dd745dca49d63250500cd1aeca1c41cd6f89.zip
qemu-6478dd745dca49d63250500cd1aeca1c41cd6f89.tar.gz
qemu-6478dd745dca49d63250500cd1aeca1c41cd6f89.tar.bz2
hw/riscv: Add optional symbol callback ptr to riscv_load_kernel()
This patch adds an optional function pointer, "sym_cb", to riscv_load_kernel() which provides the possibility to access the symbol table during kernel loading. The pointer is ignored, if supplied with Image or uImage file. The Spike board requires the access to locate the HTIF symbols. Fixes: 0ac24d56c5e7 ("hw/riscv: Split out the boot functions") Buglink: https://bugs.launchpad.net/qemu/+bug/1835827 Signed-off-by: Siwei Zhuang <siwei.zhuang@data61.csiro.au> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
Diffstat (limited to 'hw/riscv/spike.c')
-rw-r--r--hw/riscv/spike.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c
index 8bbffbc..8823681 100644
--- a/hw/riscv/spike.c
+++ b/hw/riscv/spike.c
@@ -184,7 +184,7 @@ static void spike_board_init(MachineState *machine)
mask_rom);
if (machine->kernel_filename) {
- riscv_load_kernel(machine->kernel_filename);
+ riscv_load_kernel(machine->kernel_filename, htif_symbol_callback);
}
/* reset vector */
@@ -273,7 +273,7 @@ static void spike_v1_10_0_board_init(MachineState *machine)
mask_rom);
if (machine->kernel_filename) {
- riscv_load_kernel(machine->kernel_filename);
+ riscv_load_kernel(machine->kernel_filename, htif_symbol_callback);
}
/* reset vector */
@@ -359,7 +359,7 @@ static void spike_v1_09_1_board_init(MachineState *machine)
mask_rom);
if (machine->kernel_filename) {
- riscv_load_kernel(machine->kernel_filename);
+ riscv_load_kernel(machine->kernel_filename, htif_symbol_callback);
}
/* reset vector */