sdmmc
マルチユーザモードで動作するようになった。 しかし T-SH7706LAN に比べて SD へのアクセスが速くなったなぁ。
MES >mount mmc0 SDHC Card:SDC :SDC Ver2. Disk capacity 4024958976[Byte] MES >mesboot.exe NetBSD boot loader ver.0.2 NetBSD kernel loading................. Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007…
まあ、こんなもんかな。 Index: ld_sdmmc.c =================================================================== RCS file: /cvs/cvsroot/src/sys/dev/sdmmc/ld_sdmmc.c,v retrieving revision 1.2 diff -u -r1.2 ld_sdmmc.c --- ld_sdmmc.c 6 May 2009 0…
workqueue(9) を使うとこんな感じですかね。 カードが刺さっている間はカーネルスレッドが増えてしまうのが気になるところ。 Index: ld_sdmmc.c =================================================================== RCS file: /cvs/cvsroot/src/sys/dev/s…
attach 時に出てくるエラーは sdmmc のスレッド上から sdmmc に対して読み込みを行おうとしているのが原因だった。そりゃタスクキュー取得処理にたどり着かなきゃ読み込みは処理できねーよな。 どうすればいいのかなぁ。色々処理されてしまう ld_attach() を…
直した。
SDHC のフラグを見てる処理があるのに、フラグを立てている処理が無いのは此如何に。 これで直る筈。 Index: sdmmc_mem.c =================================================================== RCS file: /cvsroot/src/sys/dev/sdmmc/sdmmc_mem.c,v retrie…
OpenBSD も mount できたし、PBR もちゃんと読めた。 あー、これって SDHC の場合にアドレス指定が間違ってるんじゃないのかなぁ。そこらを確認した方が良さそうだ。
src/sys/fs/msdosfs/msdosfs_vfsops.c で debug print を有効にして、SDHC を mount しようとすると以下の様になる。 tpx40$ sudo mount -t msdos /dev/ld0e /mnt bootsig0 0 bootsig1 0 msdosfs_mountfs 22 mount_msdos: /dev/ld0e on /mnt: Invalid argume…
あとは attach 時に出てくるエラーが何が原因なのかを調べないとなぁ…。
Linux は Ubuntu 8.10 で試してみたら mount してくれました。流石だ。
MBR の値がおかしい、もしくは PBR を作成する位置がおかしいから mount できない。 MAGIC(0x55aa) をチェックしていて存在しないから Invalid Argument になってる、筈。 Linux, FreeBSD, OpenBSD はどうなってるんだろ。
もしかして 8192 sector じゃなくて 8192 bytes の位置にあったりしないよな…。 tpx40$ dd if=/dev/rld0d skip=8192/512 count=1 | hexdump -C dd: skip blocks `8192/512': illegal number tpx40$ dd if=/dev/rld0d skip=16 count=1 | hexdump -C 1+0 recor…
次は 16GB の SDHC カード。 tpx40$ fdisk ld0 fdisk: Cannot determine the number of heads Disk: /dev/rld0d NetBSD disklabel disk geometry: cylinders: 7962, heads: 64, sectors/track: 63 (4032 sectors/cylinder) total sectors: 32104448 BIOS dis…
まずは 4GB の SD カードから。 tpx40$ fdisk ld0 Disk: /dev/rld0d NetBSD disklabel disk geometry: cylinders: 1940, heads: 64, sectors/track: 63 (4032 sectors/cylinder) total sectors: 7825408 BIOS disk geometry: cylinders: 971, heads: 128, se…
SDHC カードが mount できないと言うのでちょっと調べてみた。使用したカードは以下のもの。panasonic の SD formatter でフォーマットしてある。 SD カード (4GB) ld0: 3821 MB, 1940 cyl, 64 head, 63 sec, 512 bytes/sect x 7825408 sectors SDHC カード …
SCI のボーレートを 27.5kbps から 125 kbps に変えたら 5 分程度で起動する様になった。 これ以上速くしようとすると先頭のデータが落ちるんで、ここら辺が妥協点っぽい。
テストで使っていたカード以外を使おうとしたら ld0 が認識されないだと…。
マルチユーザモードで動作するようになった。 でも SD カードへのアクセス速度が現状だと 4KBytes/s も出なくて、起動するだけで数十分かかったりする;-) ld0 at sdmmc0 ld0: 954 MB, 969 cyl, 32 head, 63 sec, 512 bytes/sect x 1953792 sectors root devi…
READ BLOCK SINGLE でも 1 バイト目が落ちる時があるなぁ…。デバッグ用の printf が多すぎたりするのかなぁ。
元にしたソースをちゃんと調査してみたらずれてるデータを使っている事に気づいた。なんだそれ。 まあ、それで良いんだったらそれで良いけどさ。
なんで最初の 1 バイト目が読み取れないんだろ…。他の機器の SD モードで読むと 0x1a の前に 0x00 が読み取れてるんだよなぁ。どうしてかなぁ。 READ BLOCK SINGLE の動作は正常なので、ここさえ直れば後は書き込みだけなんだけどな。 00000000: 1a 50 51 53…
正しい OCR が取れないと思っていたら、関数呼び出しする筈が関数のアドレスを使っていた…。キャストしてたからワーニングが出なかったのが痛恨。俺の数時間を返せよぅ、うゎゎゎ〜ん。 cmd->c_resp[1] = (uint32_t) scimci_getc << 24; cmd->c_resp[1] |= (…
色々な後押しがあって、遂に commit した。 また後になると余裕が無くなるのが判っているので、今この状況しかないなぁと。
安定しないなぁ。
kiyohara 2009/01/19 17:58 SDHC 対応って始めてます? こっちでローカルのソースに入れてみたので、今週中にはテストしてみようかと。 あとこっちでは 32M の MMC への dd bs=64k とかで書き込むと ld0e: error writing fsbn 43821 of 43821-43948 (ld0 bn 4…
kiyohara 2009/01/17 23:26 メールに応答が無くて寂しいのでとりあえずこっちに。 sdmmc に、これと http://mail-index.netbsd.org/current-users/2008/09/15/msg004622.html これの http://mail-index.netbsd.org/current-users/2008/09/25/msg004880.html …
SDHC カードサポートとな。
MALLOC/FREE マクロが削除されたので対応。 あれー、SD/MMC テスト用に使ってる ThinkPad X40 の HDD が無いよー? 前に不要 HDD を売ったときに一緒に売っちゃったのかなぁ、いいけど(←よくない
lockmgr(9) が無くなってしまったので、mutex(9) を使用する様に修正。