トップ «前の日記(2007年06月26日) 最新 次の日記(2007年07月03日)» 編集
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2007年07月02日

SH3 Linux zImage

カーネルブートの話。今のsh-ipl+gやcatbooなどのブートローダは zImage を /dev/mtdblock1 エリアから SDRAMの 0x8c800000番地に memcpy() した上で同じ番地にjumpしていた(kernel-2.4系は0x8c210000番地)。とろがzImageって PIC (Position Independent Code)になっているので実際は 0x8c800000番地に置かなくても動く。昔の2.4時代のように 0x8c210000番地などにロードしても大丈夫。ならば /dev/mtdblock1 から動かさずに、/dev/mtdblock1 の先頭番地 0x80010000にJumpしても起動するかなぁと実験したら、動いてしまった。なるほど。ブートローダがさらに簡単になる。

気になる起動速度だけど。。。う〜ん。見た目ほとんど変化なし。

memcpy()の分だけ短くなるが、逆にFLASHROMはSDRAMよりアクセスが遅いために展開に時間がかかってしまって、これは相殺されるようだ。