事前準備編で環境の準備が整っているものとします。
今回は新規マシンを作成し、ビルドと起動まで行います。
作成するマシンは事前準備編で記載した通りRZ/A3ULとします。
ディレクトリ
新規マシンはhw/arm
配下に作成します。
Kconfig
configを追加します。
hw/arm/Kconfig
config RZA3UL
bool
default y if TCG && ARM
select I2C
select SD
select SERIAL
meson.build
config有効時のコードを追加します。
hw/arm/meson.build
arm_ss.add(when: 'CONFIG_RZA3UL', if_true: files('rza3ul.c'))
マシン実装
hw/arm/rza3ul.cにマシン情報を実装していきます。
#include "qemu/osdep.h"
#include "qemu/units.h"
#include "hw/boards.h"
#include "sysemu/sysemu.h"
static void rza3ul_init(MachineState *machine) {
}
static void rza3ul_machine_init(MachineClass *mc)
{
mc->desc = "Renesas RZ/A3UL";
mc->init = &rza3ul_init;
mc->ignore_memory_transaction_failures = true;
mc->default_ram_size = 2048 * MiB;
mc->default_ram_id = "ram";
}
DEFINE_MACHINE("rza3ul", rza3ul_machine_init)
DEFINE_MACHINE
で定義したマシン名が起動時に指定するマシン名になります。
ビルド
ビルドが通ることを確認します。
cd ../build
../qemu/configure --target-list=aarch64-softmmu --enable-debug
make
実行
実行できればOKです。
./qemu-system-aarch64 -M rza3ul
QEMUにマシンを追加する(BL1動作)に続きます。