[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: OpenBlockSS



増田です。

思いっきりサボってます。OpenBlockSS (8セグLED版)はカーネルが走り出すと
LEDは消灯します。(これはファームが制御していたか、OSのメモリーチェック
だったか忘れましたが。)また、comコンソールへの出力は、walnutと逆の方に
出力すると標準のシリアルポートにでて来るはずです。

カーネルはOpenBLockS用(と言うか、OpenFirmware用?)のフォーマットになっ
ていますか?

当時のHDDが飛んでしまっている事もあり記憶に頼って書いているのでナニですが、
最初のファーム書き換えの手順は、

1 DIP swを切替えてtftpでブートするモードにする
2 すると、OpenBlockSがtftpでカーネルを取りに行き
3 まずフラッシュに書き込む
4 ついでフラッシュからカーネルをRAMに読み込み
5 指定番地(専用バイナリにアドレス記述があったと思う)へジャンプする

こんな感じになります。フラッシュへの書き込みには大部時間がかかりますの
で、その間止まっている感じに感じる事もあるかも知れません。

From: Tatoku Ogaito <tacha@tack.fukui-med.ac.jp>
Subject: Re: OpenBlockSS
Date: Fri, 19 Dec 2003 14:22:47 +0900 (JST)

> おおがいとです。
> 
> >> On Fri, 19 Dec 2003 04:09:43 +0000
>  Hiroshi TOKUDA <tokuda@tokuda.net> wrote:
> 
>  > おー、OBS200 もやらないといかんすね。
> 
> はい、最近 OBS405 で盛り上がってて、うらやましくて仕方ないのです。:-p
> 
>  > OBS200 だと LED がどこにぶら下がっているのか良くわかりません
>  > が、(他への影響はともかく) IBM405GP_GPIO0_BASE に 0x00000000
>  > をとりあえず書いてみるとなにか起こるかも...
>  > 
>  > たしか、こんな感じで埋めていた気がします。
>  > 
>  > *(volatile int *) 0xef600700 = 0x00000000;
> 
> initpcc の先頭にいれてみましたが、なにも変わりませんでした。
> 
> 	*(volatile int *) 0xef600700 =  0x00000000;
> と
> 	*(volatile int *) 0xef600700 = ~0x000e0000;
> 
> を入れて試してみましたが、何も変化はありませんでした。
> 
> 同じことをするのに、locore.S にはどうやって埋めれば
> いいのでしょうか? とりあえず、powerpc--netbsd-gcc -S の
> 出力をみて、それっぽい
> 
>         lis 9,0xef60
>         ori 9,9,1792
>         lis 0,0x0000
>         ori 0,0,0000
>         stw 0,0(9)
> 
> というのを、__start の nop の後ろにつけてみたのですが、
> やはり、なにも変わりませんでした。これが「正しい」のか
> どうかも良く判りません。(^^;
> 
> Tacha
>