|
@@ -114,12 +114,13 @@ target_ulong riscv_load_firmware(const char *firmware_filename,
|
|
exit(1);
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
|
|
-target_ulong riscv_load_kernel(const char *kernel_filename)
|
|
|
|
|
|
+target_ulong riscv_load_kernel(const char *kernel_filename, symbol_fn_t sym_cb)
|
|
{
|
|
{
|
|
uint64_t kernel_entry, kernel_high;
|
|
uint64_t kernel_entry, kernel_high;
|
|
|
|
|
|
- if (load_elf(kernel_filename, NULL, NULL, NULL,
|
|
|
|
- &kernel_entry, NULL, &kernel_high, 0, EM_RISCV, 1, 0) > 0) {
|
|
|
|
|
|
+ if (load_elf_ram_sym(kernel_filename, NULL, NULL, NULL,
|
|
|
|
+ &kernel_entry, NULL, &kernel_high, 0,
|
|
|
|
+ EM_RISCV, 1, 0, NULL, true, sym_cb) > 0) {
|
|
return kernel_entry;
|
|
return kernel_entry;
|
|
}
|
|
}
|
|
|
|
|