USL-5P

HDL シリーズの発表日は 2003/11/25。 USL-5P の発売日は 2004/11/10。

bootblock の magic

募集中。 LANDISK が発売されたのっていつだろ。

TODO

更新した。

NetBSD/sh3

cvsweb で変更点を見てみました。 sh3/cache_sh4.c, include/cache_sh4.h に EMODE 対応(したつもり)のものが checkin されてますけど、これは EMODE ではまだ正常に動作しませんし、dreamcast で問題がある*1ので 元に戻すか、20050628 版のものにした方が…

TODO

キャッシュ EMODE 対応 [USL-5P] 電源ボタン、ボタン、ブザー、LED [LANDISK, LAN Tank] 電源スイッチ bootblock の magic を決める (現在、手抜きのため i386 と同じ magic) bootxx と kernel のロードアドレスを決める (linux のカーネルが読める様にする…

known problem

リブートできない 現状では 0xa0000000 にジャンプしているだけ。起動時の設定を保持しておいて、リセット時に復元してあげれば良い?

NetBSD/landisk ブートローダ 20050628版

3.99.7 向け。USL-5P でもカーネルを NFS 越しにビルドできるくらいにはなりました。LAN Tank でも動作します。LANDISK では試してませんが多分動作する筈。 前回からの変更点。ただしかなり適当。 acardide 搭載機種でブートローダからカーネルの読み出しで…

もう、だめだ

rtk が動作しない理由が判った…。 rtk と echi で IRL5 (INTEVT: 0x2A0) を共有 デバイスの attach は rtk → echi の順番 echi は何故かまともに使える 結論、IRL 毎に一つしか割り込みハンドラが登録できない処理になってました。ぅぁ。 元々どこかから持っ…

0xb0000006

ボタンの割り込み解除レジスタ、らしい。って事はレジスタの内容は 0xb0000002 と一緒かな。

割り込み処理

RTC CE を触った時に電源断してしまう原因判ったー。 0xb0000003 は write-only なレジスタである 0xb0000003 からデータを読み出そうとすると、前回デバイスから読み出し(書き込みも?)を行った値が取得できる 0xb0000003 の bit1 が RTC CE 制御ビットであ…

続 割り込み

割り込み処理を見直したらやっぱりバグってて、直したらまた RTC CE 触ったところで電源断。

割り込み

ifconfig で固まるの直ったかと思ったら遅過ぎ。 # ping 192.168.0.2 PING koharu (192.168.0.2): 56 data bytes ping: sendto: Host is down ping: sendto: Host is down rtk0: watchdog timeout Jun 17 02:31:48 usl-5p /netbsd: rtk0: watchdog timeout r…

割り込み処理修正失敗その1

_cpu_intr_{raise,suspend,resume} を乗っ取って外部割り込みのマスクで制御できるか試してみたけど、何故か RTC の CE を叩いたところで電源が落ちる現象が発生。CPU リセットじゃないんだよな…。とりあえずステ。

NetBSD/landisk ブートローダ 20050522版

とは言ってもブートローダ部分に変更はありませんが。今回もアーカイブ内にバイナリを入れてあります。

telnet で接続できたけど

shutdown しようと思ったら panic した…。

rtk

数時間弄ってたら、とりあえず動くようになった。ただ、割り込み周りを修正しないとまだ他のデバイスとは共存できない感じ。 SH7751R PCIC の bus_dma(9) は dreamcast の g2 bus の実装を基にして、i386 のものを参照しながら適当に修正したんだけど、今見…

まだ再開しません

シリアルコンソール用のケーブルが断線してしいたので直しただけ。 割り込み処理の修正案をひらめいたので試してみたいなー。まあ、それよりも前に PCI デバイスを動かすのが先か。

NetBSD/landisk ブートローダ 20050404版

20050305 版から機能の追加、修正は無しで current へ追従のみ。コンパイル済みバイナリ同梱。

NetBSD/landisk ブートローダ 20050305版

もしかしたら当分触らなくなるかもしれないので、とりあえず現状のものを晒しておいてみる。 arch/sh3 に修正を入れているので、arch/sh3 ディレクトリもアーカイブしました。 sys/bootblock.h へのパッチが更新されています。 boot を NetBSD/i386 ベースで…

SH7751R

PCIC rtk がまともに probe されるくらいの能力は実装した。 キャッシュ 2-way set-associative で動作している気はしている…。 cpu0 at mainbus0: HITACHI SH4 266.666MHz PCLOCK 33.333 MHz 16KB/32B 2-way set-associative Instruction cache. 32KB/32B 2…

0xb0000002

まあ、そういうデータは CPLD から出力されている訳だ。 bit0: 選択 (0: 押されている, 1: 離されている) bit1: コピー (0: 押されている, 1: 離されている) bit2: 取り外し (0: 押されている, 1: 離されている) bit3: 不明 bit4: 電源 (0: 押されている, 1:…

ボタン

USL-5P には五つのボタンがある。 電源 リセット 選択 取り外し コピー んで、それぞれのボタンを押したときに割り込みが入る。離したときに入るかはまだ判らん。 INTEVT == 0x360 電源 INTEVT == 0x380 リセット、選択、取り外し、コピー さすがに電源だけ…

マルチユーザモード起動

何か知らんけどマルチユーザモードで起動するようになってた。今日いろいろいじりすぎたおかげで昨日は何が原因で駄目だったのか全然判らないよ…。 CF の読み込みはとりあえず大丈夫みたいだけど、書き込みはまだ駄目なんかね。 NetBSD/landisk ffsv1 Primar…

CF 付きカーネル

とりあえずカーネルを作ってみた。まだマルチユーザモードに到達してない。 カーネル起動直後の SCIF 出力がおかしい現象は arch/sh3/dev/scif.c:InitializeScif() の delay() する値を 2000 に増やしたら収まった。 SH 固有の仕様で bus_space(9) 周辺でハ…

CF 割り込み

INTEVT == 0x340 らしい。優先度は良く判らないなぁ。

0xb0000005

CPLD に接続されているデバイスの割り込みマスクっぽい。 bit0: PCI rtk, ehci0 [0: mask, 1: unmask] bit1: PCI acardide bit2: PCI ohci0 bit3: PCI ohci1 bit4: unknown bit5: CF bit6: power button bit7: another button

0xb0000001

LED とブザー制御。さすがに LANDISK とは違うのね。 bit0: POWER LED (GREEN) [0: off, 1: on] bit1: POWER LED (RED) [0: off, 1: on] bit2: USB1 LED [0: off, 1: on] bit3: USB2 LED [0: off, 1: on] bit4: USB3 LED [0: off, 1: on] bit5: USB4 LED [0:…

続 CF

そんな訳でレジスタは多分こんな感じで配置されているみたい。 CS5: 0x14000000 (P2: 0xb4000000) +00h-01h: Data Register +02h: (Error | Feauture) Register +04h: Sector Count Register +06h: Sector Number Register +08h: Cylinder Low Register +0Ah…

CF

どうやら CS5 領域の先頭に接続されている様だ。これって TrueIDE なのかな、んー。 db> dump -h 0xb4000000 0x40 0xb4000000: 0001 0000 0000 0026 0005 0000 0040 0050 0xb4000010: 0001 0000 0000 0026 0005 0000 0040 0050 0xb4000020: 0050 0050 0050 0…

続 NetBSD/landisk ブートローダ

ブートローダのコンパイルとインストール方法。 前提 作業は NetBSD/i386 上で行う ブートローダインストール先は sd0 とする インストール作業は root 権限を持つアカウントで行う インストール作業は $(NETBSDSRCDIR)/sys/arch/landisk/stand で行う コン…