# QEMU/AArch64 VIRT BSP Introduction

[中文页](README_zh.md) | English

## 1. Introduction

The AArch64 execution state was introduced with the ARMv8 ISA for machines executing A64 instructions. This project ported RT-Thread on QEMU AArch64 VIRT machine.

## 2. Compiling

Usage ARM Developer GNU ToolChain, it support Linux and Windows:
```
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads/
```
Download the `xxx-aarch64-none-elf` of x86_64 hosted platform,set the `RTT_EXEC_PATH` is system environment after decompress the binary.

Enter directory `rt-thread/bsp/qemu-virt64-aarch64` and input:
```
scons
```

## 2. Execution

The project execution tool is `qemu-system-aarch64`

Download Windows platform from website:
```
https://www.qemu.org/download/
```
On Linux platform (Ubuntu, Deepin and so on), install QEMU by apt.
```
sudo apt update
sudo apt install qemu-system-arm
```

Run qemu.bat or qemu.sh in terminal:
```
heap: [0x40042aa0 - 0x40142aa0]

 \ | /
- RT -     Thread Operating System
 / | \     4.0.4 build Aug  6 2021
 2006 - 2021 Copyright by rt-thread team
Hi, this is RT-Thread!!
msh />
```

## 3. Condition

| Driver | Condition | Remark |
| ------ | --------- | ------ |
| UART   | Support   | UART0  |
| VIRTIO BLK | Support | VIRTIO BLK0 |