PCカードATA
の編集
http://oswiki.osask.jp/?PC%E3%82%AB%E3%83%BC%E3%83%89ATA
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(AT)BIOS
(AT)iomap
(AT)keyboard
(AT)memorymap
(DMAC)8237A
(FDC)765A
(PCI)class
(PCI)vendor
(PCI)vendor/1000
(PCMCIA)CIS
(PIC)8259A
(PIT)8254
(TOWNS)iomap
(TOWNS)memorymap
(serial)PC16550
.mjt
APM
ASKA
ATA
BackerOS
BayOS
BracketName
CardAdapter
CardBus
CompactFlash
DOMOO
DiskExplorer
ECC
FirstStep
FormattingRules
FrontPage
GO
GO/nask
GRUB
Help
IMGTOL
IPL
InterWiki
InterWikiName
InterWikiSandBox
K
KHBIOS
KHDOS
KONOX
KOZOS
Kernel
Kohのページ
M59
MenuBar
MiSt
Mona
Mono
Muleon
NOS
OSASK
PCI
PCIC
PCMCIA
PCカードATA
PHP
ProjectArcadia
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RTL8139
RecentDeleted
SF16
SF32
SandBox
Sero
SitePolicy
TI
TOWNS
TOWNSのメモリカードスロット
VESA
VGA
VGA/text
Virtual8086_mode
WikiEngines
WikiName
WikiWikiWeb
Wisteria
X DOS
YukiWiki
Zakky
administration
algorithms
backup/Lights計画
bo
bochs
deskmanta
dsk
e-bios
ecural
formats
hardwares
henoheno
impressions
introduction
licenses
links
m0v3
maintenance
members
memcard
memcard/speed
microkernel
microkernel/log0
nkenkou
others
paging
pcctol
pcecho
pekon
populars
projects
qemu
segmentation
seiya
softwares
tyama501
名無しさん
*PCカードATA -[[PCMCIA]]を使ったATAデバイス。 -[[CompactFlash]]やそのほかのメモリカード([[memcard]])も、たいていはアダプタをつけるとPCカードATA相当になる。 *基礎知識 -コンパクトフラッシュのメモリカードにはPCカードATAのほかにTrueIDEモードという特別なモードがあるが、これはPCMCIAスロットではなく、専用のATAコネクタにつないだときにのみ移行するモードであり、この場合は以下のような方法ではなく、普通のATAデバイスとしてアクセスする -PCカードATAの中にもTrueIDEモードをサポートしているカードがそこそこある -PCカード接続の場合のATAカードは、PCMCIAの規則にのっとってコンフィギュレーションしないとATAアクセスできない --もちろんATAアクセス以外でアクセスする方法もない(バンク切り替え式ダイレクトアクセスみたいなことはできない) -ATAカードにもちゃんとCISタプルがあるので、それを読んでATAカードかどうかを判別するわけである *設定方法 -以下の4種類から選ぶ --PCMCIAのコモンメモリ空間へのマッピング(16バイト) (CFでは必須だがPCカードATAではオプション) --連続したI/Oアドレス空間へのマッピング(16バイト) (必須) --I/Oアドレス空間の0x1f0~1f7と0x3f6へのマッピング (マスターモードは必須、スレーブモードはオプション) --I/Oアドレス空間の0x170~177と0x376へのマッピング (マスターモードは必須、スレーブモードはオプション) --[[K]]がアセンブラでドライバを作ってみたところでは、コモンメモリ空間へのマッピングが一番使いやすかったです。 -このどれにするかを具体的に設定するのは各カードの仕様に依存する --しかし[[CompactFlash]]ではこの設定方法も規定されている --これについては、[[CompactFlash]]の項を参照のこと -[[CompactFlash]]でコモンメモリ空間へマッピングした場合、アドレス0x000~0x00fにマップされる --実は0x400~7ffにもデータレジスタがマップされる ---でもまあ使わないと思うから説明は省略 -[[CompactFlash]]の場合、属性メモリ空間の0x206も設定用の8bitレジスタになっている --bit4でATAデバイス番号(マスターかスレーブ)を表わす --他のbitはリザーブなので0を書き込むこと --このレジスタはリードしてもよい *アクセス方法 -ATAでのアクセス方法は既知であるとする -0x1f0~1f7&0x3f6か0x0170~177&0x376にI/Oマップした場合は、普通のATAデバイスと同じようにアクセスすればよい -16バイトマッピングの場合: --最初の8バイトの部分[0-7]が0x1f0~1f7と全く同じ挙動になる --後半8バイトのうち、[e]の部分が0x3f6と同じ挙動になる --後半8バイトのうちの残り7バイトは未定だったり意味があったりするが、別に分からなくてもドライバを書く上では困らないだろう *こめんと欄 -0x400-0x7ffにマップされたデータレジスタを使うと, ストリング命令で読み書きできて便利ですよ。 -- [[I.Tak.]] SIZE(10){2003-11-10 (月) 10:10:30} #comment
タイムスタンプを変更しない
*PCカードATA -[[PCMCIA]]を使ったATAデバイス。 -[[CompactFlash]]やそのほかのメモリカード([[memcard]])も、たいていはアダプタをつけるとPCカードATA相当になる。 *基礎知識 -コンパクトフラッシュのメモリカードにはPCカードATAのほかにTrueIDEモードという特別なモードがあるが、これはPCMCIAスロットではなく、専用のATAコネクタにつないだときにのみ移行するモードであり、この場合は以下のような方法ではなく、普通のATAデバイスとしてアクセスする -PCカードATAの中にもTrueIDEモードをサポートしているカードがそこそこある -PCカード接続の場合のATAカードは、PCMCIAの規則にのっとってコンフィギュレーションしないとATAアクセスできない --もちろんATAアクセス以外でアクセスする方法もない(バンク切り替え式ダイレクトアクセスみたいなことはできない) -ATAカードにもちゃんとCISタプルがあるので、それを読んでATAカードかどうかを判別するわけである *設定方法 -以下の4種類から選ぶ --PCMCIAのコモンメモリ空間へのマッピング(16バイト) (CFでは必須だがPCカードATAではオプション) --連続したI/Oアドレス空間へのマッピング(16バイト) (必須) --I/Oアドレス空間の0x1f0~1f7と0x3f6へのマッピング (マスターモードは必須、スレーブモードはオプション) --I/Oアドレス空間の0x170~177と0x376へのマッピング (マスターモードは必須、スレーブモードはオプション) --[[K]]がアセンブラでドライバを作ってみたところでは、コモンメモリ空間へのマッピングが一番使いやすかったです。 -このどれにするかを具体的に設定するのは各カードの仕様に依存する --しかし[[CompactFlash]]ではこの設定方法も規定されている --これについては、[[CompactFlash]]の項を参照のこと -[[CompactFlash]]でコモンメモリ空間へマッピングした場合、アドレス0x000~0x00fにマップされる --実は0x400~7ffにもデータレジスタがマップされる ---でもまあ使わないと思うから説明は省略 -[[CompactFlash]]の場合、属性メモリ空間の0x206も設定用の8bitレジスタになっている --bit4でATAデバイス番号(マスターかスレーブ)を表わす --他のbitはリザーブなので0を書き込むこと --このレジスタはリードしてもよい *アクセス方法 -ATAでのアクセス方法は既知であるとする -0x1f0~1f7&0x3f6か0x0170~177&0x376にI/Oマップした場合は、普通のATAデバイスと同じようにアクセスすればよい -16バイトマッピングの場合: --最初の8バイトの部分[0-7]が0x1f0~1f7と全く同じ挙動になる --後半8バイトのうち、[e]の部分が0x3f6と同じ挙動になる --後半8バイトのうちの残り7バイトは未定だったり意味があったりするが、別に分からなくてもドライバを書く上では困らないだろう *こめんと欄 -0x400-0x7ffにマップされたデータレジスタを使うと, ストリング命令で読み書きできて便利ですよ。 -- [[I.Tak.]] SIZE(10){2003-11-10 (月) 10:10:30} #comment
テキスト整形のルールを表示する