mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 07:13:54 -06:00
hw/riscv: Add a new struct RISCVBootInfo
Add a new struct RISCVBootInfo to sync boot information between multiple boot functions. Signed-off-by: Jim Shu <jim.shu@sifive.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Daniel Henrique Barboza <dbarboza@ventanamicro.com> Message-ID: <20241120153935.24706-3-jim.shu@sifive.com> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
This commit is contained in:
parent
b4132a9e62
commit
d3592955af
8 changed files with 91 additions and 57 deletions
|
@ -27,11 +27,20 @@
|
|||
#define RISCV32_BIOS_BIN "opensbi-riscv32-generic-fw_dynamic.bin"
|
||||
#define RISCV64_BIOS_BIN "opensbi-riscv64-generic-fw_dynamic.bin"
|
||||
|
||||
typedef struct RISCVBootInfo {
|
||||
ssize_t kernel_size;
|
||||
hwaddr image_low_addr;
|
||||
hwaddr image_high_addr;
|
||||
|
||||
bool is_32bit;
|
||||
} RISCVBootInfo;
|
||||
|
||||
bool riscv_is_32bit(RISCVHartArrayState *harts);
|
||||
|
||||
char *riscv_plic_hart_config_string(int hart_count);
|
||||
|
||||
target_ulong riscv_calc_kernel_start_addr(RISCVHartArrayState *harts,
|
||||
void riscv_boot_info_init(RISCVBootInfo *info, RISCVHartArrayState *harts);
|
||||
target_ulong riscv_calc_kernel_start_addr(RISCVBootInfo *info,
|
||||
target_ulong firmware_end_addr);
|
||||
target_ulong riscv_find_and_load_firmware(MachineState *machine,
|
||||
const char *default_machine_firmware,
|
||||
|
@ -43,13 +52,13 @@ char *riscv_find_firmware(const char *firmware_filename,
|
|||
target_ulong riscv_load_firmware(const char *firmware_filename,
|
||||
hwaddr *firmware_load_addr,
|
||||
symbol_fn_t sym_cb);
|
||||
target_ulong riscv_load_kernel(MachineState *machine,
|
||||
RISCVHartArrayState *harts,
|
||||
target_ulong firmware_end_addr,
|
||||
bool load_initrd,
|
||||
symbol_fn_t sym_cb);
|
||||
uint64_t riscv_compute_fdt_addr(hwaddr dram_start, uint64_t dram_size,
|
||||
MachineState *ms, RISCVHartArrayState *harts);
|
||||
void riscv_load_kernel(MachineState *machine,
|
||||
RISCVBootInfo *info,
|
||||
target_ulong kernel_start_addr,
|
||||
bool load_initrd,
|
||||
symbol_fn_t sym_cb);
|
||||
uint64_t riscv_compute_fdt_addr(hwaddr dram_base, hwaddr dram_size,
|
||||
MachineState *ms, RISCVBootInfo *info);
|
||||
void riscv_load_fdt(hwaddr fdt_addr, void *fdt);
|
||||
void riscv_setup_rom_reset_vec(MachineState *machine, RISCVHartArrayState *harts,
|
||||
hwaddr saddr,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue