2008年12月23日火曜日

QEMU で新しい target board を作るためには

詳しい追加場所や、QEMU の API などは、qemu-0.9.1/hw/integratorcp.[co] などを参考に。
  1. qemu-0.9.1/hw/board.h に extern QEMUMachine  sample_machine;  を追加する。
  2. qemu-0.9.1/hw/sample_board.c の中で、board.h に追加した exterm 宣言の実体を定義する。具体的には、ターゲットボードの初期化関数 sample_board_init() などを定義し、QEMUMachine sample_machine = {"sampleboard", "説明", sample_board_init}; 
  3. qemu-0.9.1/Makefile.target に sample_board.o を追加する。これで sample_board.c がビルドされてリンクされる。
  4. qemu-0.9.1/vl.c に qemu_register_machine(&sample_machine); を追加する。これで、QEMU の引数に -M sampleboard を渡したときに、ターゲットボードの初期化と実行が行われるようになる。
あとは sample_board.c の中でひたすらボードの定義 (メモリマップなど) と初期化を書けば良い。

0 件のコメント:

コメントを投稿