USL-5Pのハードウェア解析 †
- 解析というほどのモノでもないが…
mizore wikiさんのページを参考にして、
LANDISKに付属するgioコマンドを使ってレジスタを直接さわってみた
- 但しそのままでは動かないので
landisk mini root 構築作業メモを参考にして、
ライブラリを誤魔化して動作させた。(そこの管理人もかなり腕の立つ人だ…)
- 使用例
LD_PRELOAD=./libfpscrtab.so ./gio b0000001 1
- fpscrtab.S
/* gcc -shared -nodefaultlibs -Wl,--soname=libfpscrtab.so.0
* -o libfpscrtab.so fpscrtab.S
*/
.data
.align 2
.type __fpscr_values,@object
.global __fpscr_values
__fpscr_values:
.long 0
.long 0x80000
- その他
USL-5Pのカーネルソースを入手した方、配布条件がGPLならば(だよね?)、譲ってください。
レジスタマップ †
- LED (0xb000_0001)
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|
機能 | buzzer | USB5 | USB4 | USB3 | USB2 | USB1 | STATUS | POWER |
---|
- ボタン (0xb000_0002)
- Read可能
- 押下時 '0'
- '-'は'1'が読める
- bit4はLANDISKでも電源ボタン
- bit5はLANDISKから推測するにリセットボタン?…未検証
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|
機能 | - | - | - | 電源 | - | 取外し | コピー | 選択 |
---|
- ボタンの割り込み?それとも割り込みマスク? (0x000_0005) … あまり自信ないです。
- '選択'、'取消し'、'コピー'をボタンのいずれかを押下すると、bit7に'0'が立つ。
- '1'に戻すにはソフトで書き込む必要がある?。
btrdrv.oがinsmodされた状態では、ボタンを離すと'1'に戻るが
rmmodすると'0'のままなので。
これで何をやるかというと †
- ブートセレクタ
liloブート時、ボタンで起動パーティションを選択できたら、便利だと思いませんか?
mizore wiki さん作 lilo-sel に本機能を実装してみようと思います。
|