31-Mar-2008
[メモリが安いみたいですし]

適当にマザーボードを物色して、メモリと一緒に注文終了っと。何を注文したかはそのうち明かすとして…げ、シリアルもパラレルも無いじゃんこれ(汗←と、後になってから気付く。

シリアルポートは、いざとなったら19-Aug-2006に買ったカードを使うことにして(その前に、カードの動作確認が必要だけど)、パラレルはどうすりゃいいんだろう…なんか、ものすごく世知辛い世の中になってるよなあ。

まあ、海の向こうじゃ2 Serial 1 Parallel PCI Express Cardなんてものもあるみたいだし、もうしばらくは粘れそうな気がするけれど。

※USBシリアルやパラレルを使えない事情があるのです

月曜日から飛ばすのもアレなので、そろそろ寝ます。

朝昼:いつもの。夕:妻にお任せ(野菜煮込みうどん)。(21:30)

30-Mar-2008
[あーはいはい]

H8/3052でも動き始めてますよー

uT-Kernel 1.01.00 on H8/3052

作業途中のパッチはこれ。例によって一度見直してからソースコード置場に転がすことにします。

髪をばっさり切ってみたら、なんか風邪が復活したみたいで。どうも喉と鼻の具合が悪いです。熱っぽい気もするし。

という訳で、ひたすら寝てたのですが。

28-Mar-2008: 朝昼:いつもの。夕:ハンバーグ(スーパーで売っている、予め挽肉を成形してくれていて焼くだけで食べられるアレ)、白飯、野菜炒め。

29-Mar-2008: 朝:カップ焼きそば。昼:スーパーで買った弁当。夕:冷食炒飯と野菜スープ。

30-Mar-2008: 朝:寝てた。昼:カップ焼きそば。夕:妻にお任せ(白飯、野菜炒め、焼魚、味噌汁)。(21:30)

27-Mar-2008
[…]

スーパーの広告にあった、某○ー○ーラビットの人形の写真があまりにも微妙な感じだったので、ちょっと目線を付けた画像をうpしてみる。ついでに、画像の上にポインタを乗せると目線が外れるようにした。

Peter Rabbit?

元ネタの広告はこちら→(どちらも2MByte近くあるので注意)

現物の人形も見ているのだけど、ちょっと不気m

さてと、やる気なすーな状態からそろそろ脱しないといけませんなー。

がんばろー、ぇぃぇぃぉー(小声で)。

26-Mar-2008: 朝昼:いつもの。夕:仕事場の飲み会。

27-Mar-2008: 朝昼:いつもの。夕:野菜煮込みうどん。(21:20)

31-Oct-2009補足:そろそろ時効って気もするので、一応比較画像載せてみます。

fake? real?

25-Mar-2008
[…む。]

rdmsr.cとrdmsramd.cをちょっと直しました。インラインアセンブラの部分がC言語の関数呼び出し規約(__cdeclとか呼ばれるアレ)に違反してそうな気がしたので。

…と言っても、bccにおける規約がどのようになっているかの詳細は分からない(man bccでは見当たらない)ので、とりあえず片っ端からpush/popするコードを追加しただけです。もうちょいスマートな手段がありそうな気もしますが。

で、OpenBSD起動時にerrata 86, 89, 97, 104云々言われる件について調べていた訳なんですが…OpenBSDのカーネルソース、sys/arch/amd64/amd64/amd64errata.cを最初に見るべきだったんですよ。今まで何やってたんだろう俺(泣)

どうも、BIOSによるWorkaroundが有効になってる→Workaroundが有効ってことはそのCPUはErrata持ち→だったらそれを教えてやんよ、ということのようです。

(でもこの表示ロジック、個人的にはちょっと疑問があります。Errataの有無なんてものはWorkaroundとは無関係に存在する以上、CPUのリビジョンをチェックすればそれで十分なはずです。本来適用されるべきWorkaroundが適用されていない際に警告を表示するなら理解できるんですが、Workaroundの有無でErrata持ちか否かと判定するのは筋が違うと思うのです。…俺がコードを読み間違えているだけなら良いんですが。)

朝昼:いつもの。夕:白飯、野菜スープ。

会社の鍵を忘れて建物に入れなかった俺に激しく絶望中。(22:50)

24-Mar-2008
[やっぱ間違ってたねー]

AMDが秘密にしたいMSRレジスタに対するrdmsr命令を発行する際は、EDIレジスタに0x9c5a203aを設定しておかないと駄目らしいです。情報源はこの辺とかこの辺

ソースコードはこんな感じ。といってもファイル名変えて、一行追加しただけ。

証拠写真はこれね↓

[c0011022] 00000000:24000008

…で、errata 86, 89, 97, 104、全てworkaroundが有効になってるみたいなんですが…何が不満なのかな?

SB700待ちなんて書いていますが、ちょっとLinuxのdrivers/ata/ahci.cを見てしまうとNVIDIAの方が良いのかなーという気がしてきたので、そっちにしようかと考えています。※PC-UNIXで使うことを前提としているので、Windows Vistaが動くかどうかは二の次。

ま、その前に予算用意しないといけないんですけどねー(苦笑)。あれこれ妄想する間が楽しいってやつでしょうか。

朝昼:いつもの。夕:妻にお任せ(野菜スープ、白飯、焼魚、豆腐と生野菜)。(21:35)

23-Mar-2008
[これでいいのかなー]

Dev86に入っているbccを使って、DOS(16bit)上でMSRレジスタの読み出しを行うようなツールらしきものを書いてみた。

表示される値がそれなりに確かっぽいことは一応確認していますが…まあ、普通はもっとマトモなツール使うよねということで。

ていうかbccのインラインアセンブラ全然自信無いです。思いっきり嘘八百なコード書いてるかも(うげ。

本当ならインラインアセンブラなんて使わずに、アセンブラはアセンブラ、CはCでコードを分けるつもりだったんですが…ld86の使い方がよー分からんという理由でこんな形になっています。

素直にOpen Watcom使った方がよかったのかなーと、ポーズだけ反省してみよう。

ぃゃなんでこんなことやっているかというと、OpenBSD-4.2/amd64のdmesgで

cpu0: AMD errata 86, 89, 97, 104 present, BIOS upgrade may be required

なんてものが表示されるから。

とりあえず、Errataの番号と名称、およびSuggested Workaroundを引用すると

86 DRAM Data Masking Feature Can Cause ECC Failures
Suggested Workaround: BIOS should disable the data masking feature when ECC DIMMs are used by setting the DisDatMsk bit (Northbridge Configuration Register - MSR C001_001F, bit 36).
89 Potential Deadlock With Locked Transactions
Suggested Workaround: BIOS should set the DisIOReqLock bit (bit 3 in NB_CFG, MSR C001_001F).
97 128-Bit Streaming Stores May Cause Coherency Failure
Suggested Workaround: BIOS should set DC_CFG.DIS_CNV_WC_SSO (bit 3 of MSR 0xC001_1022). The performance effects of setting this bit are limited to streaming stores to the write-combining (WC) memory type, a case expected to rarely occur in actual usage. No loss of performance occurs in the general case (WB memory type).
This workaround must not be applied to processors prior to revision C0.
104 DRAM Data Masking Feature Causes ChipKill ECC Failures When Enabled With x8/x16 DRAM Devices
Suggested Workaround: BIOS should disable the data masking feature when enabling ChipKill ECC with x8, x16 (or greater) ECC DIMMs, by setting DisDatMsk bit (Northbridge Configuration Register - MSR C001_001F, bit 36).

という訳で、OpenBSDはBIOSのMSRの設定値がお気に召さないらしい→どうお気に召さないか調べてやるか、と思った訳で。

でもGA-K8S760Mに入っているBIOSは最新のF9で、これ以上更新されないし。んでもってメモリはECCではないからErrata 86, 104について文句言われても困るし。

設定値を見てもやもやした気分が増幅されるって可能性も、十分にあるんだけどなあ…(18:00)

試してみたものの、

[c001001f] 00000010:00000208

なんかDC_DFG(MSR 0xc0011022)が読めずにハングアップしています。なんでだろう…何か間違ったかな。

21-Mar-2008: 朝昼:いつもの。夕:白飯、スーパーで買った惣菜類、納豆。

22-Mar-2008: 朝:寝てた。昼:白飯、納豆。夕:長浜ラーメンにて。

23-Mar-2008: 朝:トースト。昼:カップ焼きそば。夕:白飯、焼肉、野菜の炒め物。(21:30)

20-Mar-2008
[泥水をすすっても、へらへら笑って歩くしかねーんだよ]

とりあえず、μT-Kernel 1.01.00を秋月のAKI-H8/3069FフラッシュマイコンLANボード上で動かせそうだということが分かったので、例によってソースコード置き場にパッチ転がしときます。…パッチだけですけど。

例によって、テスト用のオブジェクトを用意しています。これを作るのは結構面倒なんですが、やっぱりちゃんと動くっていう証拠が無いと誰も何も一切信じてくれませんからね。

【テスト1】単純にμT-Kernelを起動させてみる

【テスト2】システムタイマ(tk_dly_tsk()によるウェイト)の動作を見てみる

【テスト3】割り込みハンドラ(8bitタイマの割り込みを使用)の動作を見てみる

RAM版は、いつもお世話になっているH8用簡易モニタ+0x00400000〜のRAM空間を前提としています。ROM版は、モード5/モード7の両方に対応していますので、チップ内蔵資源だけでイケるはずです。

一応、こんな風にI/Oボード上のLED1/LED2が点滅するはずです。他のH8/3069ボードの場合は、H8/3069のポート4、bit6〜7のレベルをテスタ等でチェックしてみてください。

LED1/2 position

残るH8/3052, H8/3664向けの作業は、今回得られたH8/3069向けの成果を使ってゆるゆるとやっていくことになるのでしょう、多分。

19-Mar-2008: 朝昼:いつもの。夕:白飯、納豆、豚汁。

20-Mar-2008: 朝:カップ焼きそば。昼:冷凍庫の中にあった物をもそもそと。夕:白飯、レトルトの参鶏湯(製造:하림・輸入:オリオンジャコー)。

んーじゃ、寝ます。おやすみなさい。(21:05)

18-Mar-2008
[嫌ああああああ]

途中経過。適当にでっちあげたパッチと、適当にでっちあげられたオブジェクトαで、こんな感じ。

screenshot 1.01.00

…嘘だ、俺は信じないぞ。嘘だこんなの嘘に決まってる(壊

とりあえず、前回と同程度の修正で済んでいる感じです。むしろ、bug fix等により修正不要になった箇所もあります。

cpu_support.S, inthdr_startup.S, vector.Sは、面倒だったので適当にうにゃうにゃしています。後でちゃんと確認しておかないといけませんね…

特に問題が無ければ、今後は以下の修正もパッチに含めてしまう予定です(今日の奴には入っています)。

些細なものではあるのですが、いちいち直してから使うのも面倒でしょうし。でも余計なお節介であることは否めないので、「そんなの混ぜるな」という意見があればそれに従います。

17-Mar-2008: 朝昼:いつもの。夕:非常に怪しげな野菜スープ(失敗品、流石にジューサーミキサーで砕いた野菜を加熱して味付けした程度では…)。

18-Mar-2008: 朝昼:いつもの。夕:冷凍庫にある物を適当に。(19:50)

16-Mar-2008
[とりあえず作業開始してみた]

残るは、cpu_support.S, inthdr_startup.S, vector.S。例によって、嫌なおかずは後回し(苦笑)。

sio.cのソースが例によって(ふごっ)なのは置いとくとして、その中にあるsio_init()をicrt0.Sから直接呼び出すのって…かなり(ほがへごっ)な気がします。好みの問題かもしれませんが。うおう何をす(もがっ)。

朝:寝てた。昼:冷凍庫にあるもの色々。夕:白飯、納豆、野菜スープ(かなり失敗)。(22:25)

15-Mar-2008
[ダメでした…]

木金土と、寝込んでました、風邪で。39℃台の(もうちょっと頑張れば、40℃も狙えた)熱というのは、ひょっとするとお久し振りかもしれません。…実際は不明だけど。

という訳で、まだ本調子ではないので寝ます。

食事は…妻にお任せしています。どうもありがとうございます。(22:30)

11-Mar-2008
[こりゃダメだ。]

日月と寝込んで、今日は出社。多分明日も出社する…っていうか、仕事しろよ>俺

風邪治らんのですよ。咳とくしゃみは止まらないし鼻水はずーずー出るし。咳が無ければ花粉症と見分けが付かない。折角だから、風邪引いたリストを更新してみる。

DecNovOctSepAugJulJunMayAprMarFebJan
2008                     
2007                 
2006                     
2005                   
2004                   
2003                 
2002                   
2001                 
2000                   
1999                   
1998                     

そういう訳で、例の作業もなーんにも手付かずの状態です。やったことと言えば、変更一覧をとりあえず印刷して(読んでない)、秋月のH8/3069ボードをPCに繋いだくらいか。←ほら、何もやっていない。

こうやってぐだぐだしている間に(ryってことは、分かっているんだが…

10-Mar-2008: 朝昼:パンと冷食炒飯。夕:妻にお任せ(白飯、煮物、キャベツの炒め物)。

11-Mar-2008: 朝昼:いつもの。夕:白飯、モヤシの炒め物、スーパーで売ってたハンバーグ。(21:30)

09-Mar-2008
[…]

07-Mar-2008: 朝昼:いつもの。夕:白飯、スーパーで買ってきた惣菜、納豆。

08-Mar-2008: 朝:コンビニで買ってきたもの。昼:八王子駅で売っていた駅弁。夕:白飯、焼きモツ、以前作って冷凍しておいたキムチスープ。

09-Mar-2008: 朝:寝てた。昼:パン。夕:妻にお任せ(白飯、焼肉、茹でたほうれん草、煮物)。

風邪拾ってきました。拾うんだったら、もっとマシなものを拾いたい…(21:30)

06-Mar-2008
[とりあえず]

μT-Kernel 1.01.00/H8S2212を、OpenBSD/amd64上でビルドする程度には、なんとか。証拠物件として、ビルド時のログと、kenrel-rom.mapを置いておこう。

前回と比べると、微妙にコードサイズが増えて、使用メモリ量が減ったような気もするのだけど…使っているコンパイラが違うので(gcc-3.4.6→gcc-4.2.2)、何とも言えない。

でもまあ、diffするとコードが追加されているように見えたから、多分コードサイズが増えてもおかしくないとは思う。

…で。

H8/3664, H8/3069, H8/3052のどれから始めましょうか?

朝昼:いつもの。夕:妻にお任せ(カレーライス)。(22:05)

05-Mar-2008
[とりあえず]

μT-Kernel 1.01.00出ましたね。

ざっと1.00.00とのdiffを取ってみた限りでは、むにゃむにゃもう食べられないよって感じです。

半分は日付とバージョン番号だけの変更(ちょっと勘弁してほしい)、残りの半分はあれこれ細かいバグの修正って感じでしょうか。

どこをどういじったかというドキュメントさえあれば、こんな肉体労働しないで済んだのかなあという気もしますが…「修正内容を自力で把握できない人には使わせませんよ?」というメッセージなのかもしれません(ぉぃ

さて…どこから修正作業を始めれば良いものでしょうか。前のように、ゼロから始めましょうか…

ちょっとメゲそうです。ぃゃ、メゲてるんだよ実際。

朝昼:いつもの。夕:妻にお任せ(スーパーで買ってきた弁当)。(21:05)

ごめん、変更点はちゃんとpdfにまとめられてたよ。でも変更量の多さにメゲてる状況は変わらないからorz(21:30)

04-Mar-2008
[どうしたものか。]

MikeOSをビルドしても、FDイメージへのへの書き出しは…えーと、えーと。面倒だからFDへ書き出しちゃおうかなあ。

朝昼:いつもの。夕:白飯、八宝菜(キット使用)。(21:40)

03-Mar-2008
[ぁぅ]
【問】
仕事場が鉄筋コンクリート造りのビルなので、AMラジオが聴こえません。FMラジオは聴こえます。どうしたらいいですか。

っていう相談を受けたんだけど、どうすりゃいいんだろうね。

…どうかなあ、この答えで合格点もらえるかなあ。

でも確かに、今までAMを聴いていて、FMしか聴けなくなる状況ってかなり嫌かも。J-POP漬けにされるのは、正直勘弁だしなあ…

朝昼:いつもの。夕:妻にお任せ(白飯、マッシュポテトを使った焼き物、以前作ったキムチスープ)。(21:25)

02-Mar-2008
[あーもー本当にネタが無いんだよ]

敢えて書くとしたら、ARIA最終回のためだけにコミックブレイドを買ってみた、というくらいか。あ、この手の雑誌を買うのは随分久し振りだな。

そういや、ARIAは…アニメや小説にも物語を補足する情報があれこれ含まれている、という点がなあ。ついつい買いたくなっちまうじゃねーか←向こうの思うツボ。

01-Mar-2008: 朝:いつもの(出勤していた)。昼:弁当(玉子屋ではない)。夕:妻にお任せ(餃子、白飯、納豆、モツ煮)。

02-Mar-2008: 朝:寝てた。昼:冷蔵庫の中にあったパン。夕:沖縄そば屋にて。

そういえば、いきなり体重が40kgほど増えて、周囲から「メタボ〜メタボ〜♪」と言われる夢を見ました。予知夢だったら、かなり嫌過ぎです。(23:20)