I come from the windows world and my experience with all things linux is
pretty limited. Trying to improve upon the same and understand and learn a
few low level concepts about platform bringup, boot steps etc along with
ARMv8 using Qemu.
I have a few questions regarding the same:
I was told that I shouldn't use the -kernel option if I am running a bare
metal code. I just created a file with a reset handler located at address
Zero using a linker file and ran it with *qemu-system-aarch64 -s -S
-machine virt -cpu cortex-a53 -kernel test.elf* and I could get my reset
handler break point hit. Does qemu place my code at address zero in the
system memory map and starts executing it but address 0x0 is reserved for
boot flash as you mentioned earlier. Also is there a different option other
than -kernel for bare metal.
What exactly is virtio in Qemu virt board emulation. In qemu source virt.c,
there's a system memory map with memory mapped range for PCIe. How is this
to be used. Does qemu have any option to plug a PCIe device into the
configuration and use the PCI address map range. I have limited knowledge
of these lower level details. Trying to learn theconcepts of how a board is
brought up in general along with some ARMv8 concepts.
Thanks and Regards