APC8750にNetBSD/evbarmを移植するための記録 2/28 ~ 3/15
2014/01/03(金) 26:40 NetBSD はてブ情報 はてブに登録 はてブ数

NetBSDは多くのハードウェアで動作するので、色々なハードウェアを買ってきては動かして楽しんでいましたが、いつかは先人のように新しい機械に移植したいと思いつつ、いつも途中で挫折してきました。

ここ最近のARMアーキテクチャの隆盛をみていると、ほとんど同じだけどちょっと違う、みたいなハードウェアがたくさんあって、ちょっとした修正でNetBSDを移植した感動を味わえるんじゃないかと思い、入手したのがVIAのAPC8750です。

10/24の日記にも書いたとおり、シェルからコマンドを実行できる程度に動いたので、その顛末を記録しておこうと思いました。

実は、移植を始めた当初は記録をまともにつけておらず、ちゃんと記録を付け始めたのは8/24のようです。それまでの作業はTwitterと記憶によって補完したものです。

ということで、8/24まではアッサリ味でいきます。

2/28

移植用のARM板を探す。とりあえず、Raspberry Pi(以下、RPi)が流行っているから、きっと似たような奴がいっぱいいるに違いない。そいつらなら、ちょこっと修正してNetBSD動くんじゃないか? あと手ごろな値段がいいなぁ。もちろんシリアルは必要だな。できれば、ハンダ付けなしでシリアルが使えるといいな。などとWebを見ているとAPC8750にたどり着いた。こいつもRPiと同じARM11らしい。そういえば、ちょっと前に話題になってたなぁ。話題になってたから、きっといろいろ情報あるんだろう。ということで、あまり下調べもせずAPC8750を注文。

3/1

ハードウェアが届くまでの予習としてrpi_start.Sを読み始める。以前、スタートアップルーチンを読んだがどうしてもMMUをONにした後に進めなかった。アセンブリ言語で書かれているが、短いプログラムなので頑張れば全体を把握できそうだし、ARMアーキテクチャの勉強にもなるかと思い、命令一つ一つを読んでいく。

3/9

APCが届く。とりあえず、箱から出して撮影する。

CPUはWonderMediaのWM8759か。そうはいってもARMだし、などと楽観的に気持ちを切り替えてCPUについて調べ始める。

なんと、CPUのデータシートが公開されていないではないか。
デートシータがなければLinuxソースしかないか。githubにあった(https://github.com/apc-io/apc-8750)。


生まれて初めてgitをインストール。pkgsrcは便利だ。Linuxのカーネルは土地勘がないためgrepをかけまくる。

LinuxにおけるCPU依存部分(ボード依存部分も含む?)はkernel/arch/arm/mach-wmtの下を重点的に見ればよいようだ。
たとえば、kernel/arch/arm/mach-wmt/include/mach/wmt_mmap.hはメモリマップであるとか。

3/15


本丸のevbarm/rpiの下をちょろちょろとのぞくようになる。nxr.netbsd.orgのOpenGrokのロゴがなぜか「理解開く」という日本語になる。

名前:  非公開コメント   

  • TB-URL  http://www.tokuda.net/diary/0817/tb/