On 05.09.2014 16:50, Semion Prihodko wrote: > Let's discard semihosting. I have aarch64-linux-gnu-* toolchain and > qemu-system-aarch64 emulator. How can I build a minimal kernel which > outputs Hello World! via serial port and run it on the emulator? >
If you run qemu with the "virt" platform, you can write to the UART at 0x9000000 to get a character out, works very early. You could check the AArch64 port of the OSv Operating System, has a simple boot loader you can look at (arch/aarch64/preboot.S and arch/aarch64/boot.S) and the pl011 device you find in drivers/pl011.cc https://github.com/cloudius-systems/osv/wiki/AArch64 Good luck, Claudio > > 2014-09-04 21:15 GMT+03:00 Christopher Covington <c...@codeaurora.org>: > >> Hi Semion, >> >> On 09/04/2014 09:40 AM, Semion Prihodko wrote: >>> Still don't know how to build/run a simple Hello World kernel on >>> qemu-system-aarch64? >>> >>> Guys, this is a very basic thing, please provide concrete steps. Thanks. >> >> Here you go. Start at the wget. >> >> http://lists.gnu.org/archive/html/qemu-devel/2014-07/msg03487.html >> >> Angel semihosting isn't implemented upstream so a text hello world won't be >> trivial, although given enough time it should be possible to implement >> Angel >> semihosting for A64 in QEMU, implement DCC in QEMU and Newlib/libgloss or >> implement PL011 UART or VirtIO-MMIO console in Newlib/libgloss. >> >> Some of the bootloaders and firmwares out there (bootwrapper, ARM trusted >> firmware, UEFI/Tianocore) may have examples of using the PL011 UART. >> >> Christopher >> >> -- >> Employee of Qualcomm Innovation Center, Inc. >> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, >> hosted by the Linux Foundation. >>