シミュレータ付属仮想ボードについて

SOLID付属の QEMUシミュレータは、OSS標準の全ての機能をサポートしていません。 現時点でサポート付属している仮想ボードには、以下のような部品が搭載されており、この仮想ボードを利用していただくことになります。また、本QEMUシミュレータ(SOLID標準付属QEMUシミュレータ、SOLID-QEMU-*.exeでインストールするもの)を、SOLID-IDE以外から単体で利用することなども想定しておりません。

なお、仮想ボードについては、準備が整い次第追加する予定です(時期については2021/8現在未定)。

搭載されている部品

CPU

ARM Cortex-A53

Arm v8-A , SIMD, VFPv4,
cryptography extensions. AArch32 and AArch64 support.

割り込みコントローラ

GIC-400

https://developer.arm.com/documentation/ddi0471/latest/

タイマ

Generic Timer

UART

PL011

https://developer.arm.com/documentation/ddi0183/latest

ROM

なし

プログラムはSOLID-IDEからRAMにダウンロードして実行します。

RAM

2GB

DTBを変更することで、サイズの変更は可能です。


仮想ボードの種類について

仮想ボードによっては、CPUがシングルコアのタイプと、デュアルコアのタイプが存在します。

  • min-aarch64.dtb - シングルコアCPUの仮想ボード

  • dual-aarch64.dtb - デュアルコアCPUの仮想ボード

CPUの数以外のハードウェア構成は同じです。

メモリマップ

開始アドレス

終了アドレス

0x0800_0000

0x0800_FFFF

GIC Distributor

0x0801_0000

0x0801_FFFF

GIC CPU Interface

0x0900_0000

0x0900_0FFF

PL011

0x4000_0000

0x7FFF_FFFF

RAM(2GByte)

タイマは Cortex-A53の GenericTimerなので、システムレジスタ(aarch32モードは CP15レジスタ)経由でアクセスします。CPU0のGenericTimerのVirtualTimerをSOLID-OSが利用しています。 UARTは、標準では QEMUのコンソールに文字列出力されるようになっています。


ハードウェア構成の変更について

本QEMUシミュレータに付属の仮想ハードウェアについては、その変更を行った時の挙動や、また変更方法についての技術サポートは行いません。しかし、簡単なハードウェア構成の変更であれば可能です。

dtbファイルが存在するディレクトリと同じディレクトリに、同名のdtsファイルが存在します。このdtsファイルを修正することで、RAMサイズの変更や、またUARTのチャネル数を増やす程度の、簡単なハードウェア構成の変更は可能です。 dtsファイルを修正したら、付属のdtcコマンドでdtbファイルを再生成してください。

dtc -I dts -O dtb -o DTBファイル名.dtb DTSファイル名.dts

dtcコマンドは、標準では`C:KMCQEMU_SOLIDAARCH64bindtc.exe`にインストールされています。


UARTチャネル数の変更

シリアルが複数ある場合、qemu起動コマンドの引数の -serial 順に、出力先が割り当てられます。例えば、UARTを三チャンネルにし、qemuの起動オプションを以下のようにした場合

-serial telnet:localhost:9997,server,nowait -serial telnet:localhost:9998,server,nowait -serial telnet:localhost:9999,server,nowait

最初のUARTとはTCPポート9997、二番目のUARTがTCPポート9998、三番目のUARTがTCPポート9999となり、それぞれtelnet接続して利用することが可能です。

起動コマンドはdtbファイルなどと同じディレクトリに存在するautorun.rmuファイル内を変更します。


標準添付の仮想ボード(仮想ハードウェア)以外について

本QEMUシミュレータ付属の仮想ボード以外に、独自の仮想ボードが必要なお客様は、弊社までご連絡ください。以下の二つの方法で対応していただくことが可能です。

  1. 弊社提供のQEMU仮想ボード開発用のSDKを購入していただき、自由に仮想ボードを作成する

  2. 仮想ボードの開発を弊社に委託する

どちらの方法も、費用は標準のSOLIDには含まれず、別途発生いたします。