亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
12下一頁(yè)
最近訪問(wèn)板塊 發(fā)新帖
查看: 8007 | 回復(fù): 16
打印 上一主題 下一主題

PCI映射內(nèi)存讀寫(xiě)求助 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2008-11-07 12:56 |只看該作者 |倒序?yàn)g覽
自己做的板子,linux2.6.20,host mpc8313,pci device dm642,dm642外接64MB的SDRAM。

Base 0: 4M-byte prefetchable maps to all of DSP memory with the DSP page register (DSPP).

驅(qū)動(dòng)里,我用pci_resource_start獲得base0的物理地址,ioremap到虛擬地址mmio上。

在read和write函數(shù)里,我使用ioread(mmio + offset)和iowrite(mmio + offset)來(lái)讀寫(xiě)內(nèi)存。

按照我的理解,4MB的開(kāi)窗范圍,那么offset的范圍是0—3fffff,超過(guò)這個(gè)范圍的話,就要挪動(dòng)窗的位置,即重新設(shè)置DSPP的值,64MB的外設(shè)內(nèi)存,DSPP的范圍就是0—F。

現(xiàn)在的情況是:
1、offset的范圍是0— 47ffff 的時(shí)候,都可以正常讀寫(xiě)。
2、DSPP為0時(shí),可以正常讀寫(xiě)。DSPP設(shè)置其余值時(shí)候,讀出的數(shù)據(jù)全高。

請(qǐng)問(wèn)我對(duì)于的讀寫(xiě)理解是不是有問(wèn)題,正確的是怎么樣的呢?謝謝。

論壇徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
2 [報(bào)告]
發(fā)表于 2008-11-07 14:27 |只看該作者
原帖由 illeggy 于 2008-11-7 12:56 發(fā)表
自己做的板子,linux2.6.20,host mpc8313,pci device dm642,dm642外接64MB的SDRAM。

Base 0: 4M-byte prefetchable maps to all of DSP memory with the DSP page register (DSPP).

驅(qū)動(dòng)里,我用pci_r ...


我不能確定是不是你ioremap的時(shí)候,雖然映射了4M,但實(shí)際上你得設(shè)備,這4M訪問(wèn)是有限制的。

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2008-11-07 15:33 |只看該作者
應(yīng)該沒(méi)有限制。

DSPP register (bits 9−0) Current PCI address (bits 21−0)
sdram的物理地址是0x80000000,映射后是0xc9080000。

比如,我要讀寫(xiě)0xc9080000這個(gè)地址,即設(shè)置DSPP為0x324,ioread32(0xc9080000)讀出來(lái)全高。

請(qǐng)問(wèn)上面的Current PCI address 是不是ioread里面的參數(shù)的低22位?

論壇徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
4 [報(bào)告]
發(fā)表于 2008-11-07 15:51 |只看該作者
我有幾個(gè)疑問(wèn):
DSPP在里面起什么作用?他應(yīng)該和內(nèi)核沒(méi)有關(guān)系,怎么能影響io映射呢?

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2008-11-07 16:01 |只看該作者
DSPP設(shè)置sdram開(kāi)窗的位置。我映射的內(nèi)存大小只有4MB,實(shí)際的sdram有64MB,就需要DSPP。

PCI Base Slave Address = DSPP register (bits 9-0) Current PCI address (bits 21-0),這里的PCI Base Slave Address是物理地址?

DSPP bits 9-0 是根據(jù)要訪問(wèn)的物理地址得到的,那么我理解Current PCI address (bits 21-0)也應(yīng)該是一個(gè)物理地址。

可是,ioread的參數(shù)應(yīng)該是一個(gè)映射后的虛擬地址,即Current PCI address不是ioread的參數(shù)。

那么Current PCI address 是在哪里定義的呢,或者說(shuō)以什么形式出現(xiàn)的呢?

我這樣理解對(duì)么?謝謝。

ps,我對(duì)io端口、io內(nèi)存這類(lèi)定義理解的比較模糊,我的理解是,sdram屬于io內(nèi)存,所以對(duì)sdram的訪問(wèn)是通過(guò)ioread來(lái)完成的。不知道對(duì)不對(duì)。

論壇徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
6 [報(bào)告]
發(fā)表于 2008-11-07 16:10 |只看該作者
原帖由 illeggy 于 2008-11-7 16:01 發(fā)表
DSPP設(shè)置sdram開(kāi)窗的位置。我映射的內(nèi)存大小只有4MB,實(shí)際的sdram有64MB,就需要DSPP。

PCI Base Slave Address = DSPP register (bits 9-0) Current PCI address (bits 21-0),這里的PCI Base Slave Addres ...



你得內(nèi)核跑的那個(gè)內(nèi)存是主內(nèi)存,其它的要通過(guò)iomap這樣的方式映射到主內(nèi)存上去的,都屬于io內(nèi)存,訪問(wèn)被映射的內(nèi)存,可以直接通過(guò)訪問(wèn)主內(nèi)存的虛擬地址來(lái)實(shí)現(xiàn)。
至于PCI這個(gè),我現(xiàn)在不是特別清楚。

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2008-11-07 16:13 |只看該作者
謝謝版主,你這么解釋內(nèi)存的話,我現(xiàn)在的問(wèn)題就集中在從哪里獲取Current PCI address了。

論壇徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
8 [報(bào)告]
發(fā)表于 2008-11-07 16:31 |只看該作者
原帖由 illeggy 于 2008-11-7 16:13 發(fā)表
謝謝版主,你這么解釋內(nèi)存的話,我現(xiàn)在的問(wèn)題就集中在從哪里獲取Current PCI address了。


PCI這塊我不是很熟悉。io映射這塊情景分析上講得很詳細(xì),你可以看看,呵呵。

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2008-11-07 18:47 |只看該作者
問(wèn)題解決了。

Current PCI address是cpu自動(dòng)從虛擬地址轉(zhuǎn)換得到的。

論壇徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
10 [報(bào)告]
發(fā)表于 2008-11-07 21:26 |只看該作者
原帖由 illeggy 于 2008-11-7 18:47 發(fā)表
問(wèn)題解決了。

Current PCI address是cpu自動(dòng)從虛擬地址轉(zhuǎn)換得到的。



恭喜,恭喜
建議你寫(xiě)個(gè)總結(jié)跟在這個(gè)帖子后面,分享一下你的經(jīng)驗(yàn),包括如何解決的,以及相關(guān)技術(shù)知識(shí),這樣有助于你鞏固經(jīng)驗(yàn),又有利于他人學(xué)習(xí)借鑒,呵呵。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專(zhuān)區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP