Highpoint RocketRAID 3xxx/4xxx 介面卡驅動 (hptiop)¶
控制器暫存器對映¶
對於基於 RR44xx Intel IOP 的介面卡,控制器 IOP 透過 PCI BAR0 和 BAR2 訪問
BAR0 偏移
暫存器
0x11C5C
連結介面 IRQ 設定
0x11C60
連結介面 IRQ 清除
BAR2 偏移
暫存器
0x10
入站訊息暫存器 0
0x14
入站訊息暫存器 1
0x18
出站訊息暫存器 0
0x1C
出站訊息暫存器 1
0x20
入站門鈴暫存器
0x24
入站中斷狀態暫存器
0x28
入站中斷遮蔽暫存器
0x30
出站中斷狀態暫存器
0x34
出站中斷遮蔽暫存器
0x40
入站佇列埠
0x44
出站佇列埠
對於基於 Intel IOP 的介面卡,控制器 IOP 透過 PCI BAR0 訪問
BAR0 偏移
暫存器
0x10
入站訊息暫存器 0
0x14
入站訊息暫存器 1
0x18
出站訊息暫存器 0
0x1C
出站訊息暫存器 1
0x20
入站門鈴暫存器
0x24
入站中斷狀態暫存器
0x28
入站中斷遮蔽暫存器
0x30
出站中斷狀態暫存器
0x34
出站中斷遮蔽暫存器
0x40
入站佇列埠
0x44
出站佇列埠
對於基於 Marvell 非 Frey IOP 的介面卡,IOP 透過 PCI BAR0 和 BAR1 訪問
BAR0 偏移
暫存器
0x20400
入站門鈴暫存器
0x20404
入站中斷遮蔽暫存器
0x20408
出站門鈴暫存器
0x2040C
出站中斷遮蔽暫存器
BAR1 偏移
暫存器
0x0
入站佇列頭指標
0x4
入站佇列尾指標
0x8
出站佇列頭指標
0xC
出站佇列尾指標
0x10
入站訊息暫存器
0x14
出站訊息暫存器
0x40-0x1040
入站佇列
0x1040-0x2040
出站佇列
對於基於 Marvell Frey IOP 的介面卡,IOP 透過 PCI BAR0 和 BAR1 訪問
BAR0 偏移
暫存器
0x0
IOP 配置資訊。
BAR1 偏移
暫存器
0x4000
入站列表基地址低位
0x4004
入站列表基地址高位
0x4018
入站列表寫入指標
0x402C
入站列表配置和控制
0x4050
出站列表基地址低位
0x4054
出站列表基地址高位
0x4058
出站列表複製指標影子基地址低位
0x405C
出站列表複製指標影子基地址高位
0x4088
出站列表中斷原因
0x408C
出站列表中斷使能
0x1020C
PCIe Function 0 中斷使能
0x10400
PCIe Function 0 到 CPU 訊息 A
0x10420
CPU 到 PCIe Function 0 訊息 A
0x10480
CPU 到 PCIe Function 0 門鈴
0x10484
CPU 到 PCIe Function 0 門鈴使能
非 Marvell Frey 的 I/O 請求工作流¶
所有排隊的請求都透過入站/出站佇列埠處理。請求包可以分配在 IOP 或主機記憶體中。
要將請求傳送到控制器:
透過讀取入站佇列埠獲取空閒請求包,或者在主機 DMA 一致性記憶體中分配一個空閒請求。
從入站佇列埠返回的值是相對於 IOP BAR0 的偏移量。
在主機記憶體中分配的請求必須在 32 位元組邊界上對齊。
填充資料包。
透過將資料包寫入入站佇列,將其釋出到 IOP。對於在 IOP 記憶體中分配的請求,將偏移量寫入入站佇列埠。 對於在主機記憶體中分配的請求,將 (0x80000000|(bus_addr>>5)) 寫入入站佇列埠。
IOP 處理請求。 請求完成後,它將被放入出站佇列。 將生成出站中斷。
對於在 IOP 記憶體中分配的請求,請求偏移量將釋出到出站佇列。
對於在主機記憶體中分配的請求,(0x80000000|(bus_addr>>5)) 將釋出到出站佇列。 如果在請求中設定了 IOP_REQUEST_FLAG_OUTPUT_CONTEXT 標誌,則將釋出低 32 位上下文值。
主機讀取出站佇列並完成請求。
對於在 IOP 記憶體中分配的請求,主機驅動程式透過將其寫入出站佇列來釋放該請求。
非佇列請求(重置/重新整理等)可以透過入站訊息暫存器 0 傳送。 具有相同值的出站訊息表示入站訊息已完成。
Marvell Frey 的 I/O 請求工作流¶
所有排隊的請求都透過入站/出站列表處理。
要將請求傳送到控制器:
在主機 DMA 一致性記憶體中分配一個空閒請求。
在主機記憶體中分配的請求必須在 32 位元組邊界上對齊。
使用請求的索引填充請求中的標誌。
使用請求的物理地址和大小填充一個空閒的入站列表單元。
使用上一個單元的索引設定入站列表寫入指標,如果索引達到支援的請求計數,則四捨五入為 0。
將入站列表寫入指標釋出到 IOP。
IOP 處理該請求。 請求完成後,帶有 or-ed IOPMU_QUEUE_MASK_HOST_BITS 的請求標誌將被放入一個空閒的出站列表單元中,並且出站列表單元的索引將被放入複製指標影子暫存器中。 將生成出站中斷。
主機讀取出站列表複製指標影子暫存器,並與先前儲存的讀取指標 N 進行比較。如果它們不同,則主機將讀取第 (N+1) 個出站列表單元。
主機從第 (N+1) 個出站列表單元獲取請求的索引並完成請求。
非佇列請求(重置通訊/重置/重新整理等)可以透過 PCIe Function 0 到 CPU 訊息 A 暫存器傳送。 具有相同值的 CPU 到 PCIe Function 0 訊息暫存器表示訊息已完成。
使用者級介面¶
該驅動程式公開以下 sysfs 屬性
名稱
R/W
描述
driver-version
R
驅動程式版本字串
firmware-version
R
韌體版本字串
版權所有 © 2006-2012 HighPoint Technologies, Inc. 保留所有權利。
此檔案分發目的是希望它有用,但沒有任何保證; 甚至沒有對適銷性或特定用途適用性的暗示保證。 有關更多詳細資訊,請參見 GNU 通用公共許可證。