[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Custom soc on ARM64, failed to load the firmware properly
From: |
Peter Maydell |
Subject: |
Re: Custom soc on ARM64, failed to load the firmware properly |
Date: |
Mon, 27 Feb 2023 18:12:52 +0000 |
On Mon, 27 Feb 2023 at 17:28, Alyosha Shevandin
<shevandin_al@hotmail.com> wrote:
>
> I'm building the custom SoC emulation that is based on the Cortext-a55.
>
> During the runtime $pc register contains 0 instead the address that is
> provided in means of arm_boot_info.loader_start :
> Then the quemu is started:
>
> qemu-system-aarch64 -s -S -nographic -machine custom-soc-machine -bios bl1.elf
You're not passing a kernel. The loader_start address only
applies when starting a Linux kernel directly (i.e. when
not trying to run a guest BIOS blob). If you're
not booting a kernel, then you get the default behaviour that
the CPU has out of reset, which is that it starts at the
address in the RVBAR register, which should be where your
BIOS is. By default for QEMU that value is 0 -- if your
SoC configures the CPU so it is something else then you
can get QEMU to do the same with the "rvbar" QOM property
on the CPU object.
The .loader_start value should probably not be the same as the
place where you put the BIOS: typically it is the base of
the main RAM block, because that's where you would want
to load a guest kernel.
-- PMM