Hi Vadim,
On 28/06/2022 21:58, Vadim Zaliva via Gnu-morello wrote:
I am trying to rung GCC-produced binaries under qemu, with no success. Here is what I did:
dummy.c:
#include <stdio.h>
int main() { fprintf(stderr,"hello world!\n"); }
$ ~/morello-gnu/bin/aarch64-none-elf-gcc -march=morello+c64 -mabi=purecap -specs=aem-ve.specs -O0 tests/cheri/dummy.c -o dummy
$ file dummy dummy: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), statically linked, with debug_info, not stripped
$ ~/cheri/output/morello-sdk/bin/qemu-system-morello -M virt,gic-version=3 -cpu morello -m 2048 -nographic -device virtio-rng-pci -bios dummy
At this point, qemu hangs up eating a lot of CPU and has to be killed.
Any suggestions on how I can run the binaries?
Another option here is to use the Morello Platform FVP, available from here: https://developer.arm.com/downloads/-/arm-ecosystem-fvps
You can follow the instructions here: https://git.morello-project.org/morello/docs/-/blob/morello/mainline/user-gu... to build the firmware for the FVP.
Then, you can follow the instructions in the LLVM user guide: https://git.morello-project.org/morello/llvm-project-releases/-/blob/morello... to compile and run baremetal binaries, but switching out LLVM for GCC when you build your code. You'll want to use the GCC flags you used above, but then use the make-bm-image.sh script from the LLVM release as described in the above doc and use the FVP command given in the doc to run the binary.
Hope that helps.
Alex
Vadim
-- Senior Research Associate Department of Computer Science and Technology University of Cambridge http://zaliva.org/
-- Gnu-morello mailing list -- gnu-morello@op-lists.linaro.org To unsubscribe send an email to gnu-morello-leave@op-lists.linaro.org