diff options
| author | Philippe Mathieu-Daudé <philmd@linaro.org> | 2024-11-04 16:36:49 +0100 |
|---|---|---|
| committer | Philippe Mathieu-Daudé <philmd@linaro.org> | 2024-12-31 21:21:34 +0100 |
| commit | 8f27e70e3bcffe3e3d7236f62d50156555043061 (patch) | |
| tree | 169d6d7bcca55de513e4da56ed23d79998063fee /hw/microblaze/boot.c | |
| parent | d826e47404cdf4f462a3f27b2f47455f21e7764e (diff) | |
| download | focaccia-qemu-8f27e70e3bcffe3e3d7236f62d50156555043061.tar.gz focaccia-qemu-8f27e70e3bcffe3e3d7236f62d50156555043061.zip | |
hw/microblaze: Propagate CPU endianness to microblaze_load_kernel()
Pass vCPU endianness as argument so we can load kernels with different endianness (different from the qemu-system-binary builtin one). Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Anton Johansson <anjo@rev.ng> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Edgar E. Iglesias <edgar.iglesias@amd.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20241107012223.94337-3-philmd@linaro.org>
Diffstat (limited to 'hw/microblaze/boot.c')
| -rw-r--r-- | hw/microblaze/boot.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c index 966fb2cb2a..3854bc2291 100644 --- a/hw/microblaze/boot.c +++ b/hw/microblaze/boot.c @@ -114,8 +114,8 @@ static uint64_t translate_kernel_address(void *opaque, uint64_t addr) return addr - 0x30000000LL; } -void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base, - uint32_t ramsize, +void microblaze_load_kernel(MicroBlazeCPU *cpu, bool is_little_endian, + hwaddr ddr_base, uint32_t ramsize, const char *initrd_filename, const char *dtb_filename, void (*machine_cpu_reset)(MicroBlazeCPU *)) @@ -144,13 +144,13 @@ void microblaze_load_kernel(MicroBlazeCPU *cpu, hwaddr ddr_base, /* Boots a kernel elf binary. */ kernel_size = load_elf(kernel_filename, NULL, NULL, NULL, &entry, NULL, &high, NULL, - TARGET_BIG_ENDIAN, EM_MICROBLAZE, 0, 0); + !is_little_endian, EM_MICROBLAZE, 0, 0); base32 = entry; if (base32 == 0xc0000000) { kernel_size = load_elf(kernel_filename, NULL, translate_kernel_address, NULL, &entry, NULL, NULL, NULL, - TARGET_BIG_ENDIAN, EM_MICROBLAZE, 0, 0); + !is_little_endian, EM_MICROBLAZE, 0, 0); } /* Always boot into physical ram. */ boot_info.bootstrap_pc = (uint32_t)entry; |