OK6410 FLASH RAM 網口地址分析

首先,來了解一下s3c6410的memory。

Memory,又叫主內存,分爲4大區域,分別是啓動鏡像區、內部內存區、靜態內存區、動態內存區。

 啓動鏡像區物理地址爲0x00000000~0x07ffffff,共128MB。這個區域的作用正如它的名字所述,是用來啓動系統的。但是這個範圍內並沒有實際的存儲介質與之對應,只能在通過OM[4:0]選擇具體的啓動介質後再把相應介質的物理地址映射到這個啓動區,比如說選擇了IROM啓動方式後,就把IROM所佔的地址空間映射爲0x00000000開始的空間。

 內部內存區物理地址爲0x08000000~0x0fffffff,共128MB。這個區域對應着內部的內存地址,內部的ROM和SRAM都是分佈在這個 區間。其中,0x08000000~0x0bffffff對應着內部ROM,當然實際上內部的ROM也並沒有64MB這麼多,只有32KB是有實際存儲介 質的,這32KB是一個只讀區,放的是IROM方式下的啓動代碼,選擇IROM啓動的時候首先運行 的 代碼就是這一部分,稱爲BL0,這部分代碼由廠家固化。0x0c000000~0x0fffffff對應內部SRAM,實際可用的SRAM按照三星的手冊 是4KB,其實這就是用於nandflash啓動的Steppingstone(但是這個Steppingstone是8KB,這2者似乎有矛盾,不知道是不是我的理解不對)。

 靜態內存區物理地址爲0x10000000~0x3fffffff,共6*128MB。這個區域用於訪問掛在外部總線上的設備,比如說SRAM、NOR flash、oneNand等。這個區域被分割爲6個bank,每個bank爲128MB,數據寬度最大支持16bit,每個bank通過 Xm0CS[5:0]來劃定。和S3C2410 不 一樣的是,bank2~bank5能映射到nand flash、CF等非線性存儲器,這並不是說可以通過bank2~bank5的地址段就能直接訪問nand flash、CF內部的地址,相反,當映射到這些器件的時候這些bank的地址也不能再使用了,訪問這些非線性存儲器還是得通過Pheriperal空間 的AHB總線進行,和S3C2410中的訪問方式是一樣的。不過有一個特例是,當Xm0CS2被映射到nand flash的時候,Steppingstone的4KB(or 8K?)SRAM被映射到bank2開始的4KB,而在以nand flash方式啓動的時候bank2被映射到0x00000000開始的地方,實際上就是把Steppingstone映射到0x0000000了,這和 S3C2410的情況還是相似的。

 動態內存區物理地址爲0x40000000~0x6fffffff,共3*256MB。其中第一個256MB爲保留區,實際使用的動態內存區爲 0x50000000~0x6fffffff,又分爲2個區間,分別佔256MB,可以通過DMC的Xm1CS[1:0]來進行着2個區間的選擇。這個內存區主要是擴展DRAM,最大可以擴展512MB的DRAM。

上面四段轉載於:http://blog.csdn.net/eagle_lzt/article/details/6310094

                                                   
再附上一張圖便於理解。

 

 

1.     nand flash

下面來看OK6410 nand flash電路圖。

上圖左側爲S3C6410,右側爲nand flash,可以看到片選信號用了CSN2和CSN3,但我查看K9G8G08的數據手冊,10腳是NC,這裏卻接了CSN3,原因是什麼?我也沒搞明白,希望有明白的可以留言告訴我一下,哈哈。不過我看到OK6410硬件手冊上說“爲方便擴展容量,OK6410設計支持雙片選架構的NANDFLASH芯片,片選信號使用CSn2和CSn3,客戶可以根據需求定製選用128M-2GB空間大小的NAND FLASH。OK6410開發板使用NANDFLASH存儲器,當使用NANDFLASH 啓動時,S3C6410處理器同時配置了CSn2、CSn3爲NAND FLASH存儲器片選信號,因此在這種情況下CSn3不可以連接NANDFLASH以外的總線設備。”

這樣nand flash是不是就佔用了20000000~30000000的地址空間了呢?有待以後確認。

 

2.     RAM

OK6410採用了256M DDR,其CS接在了XM1CSN0上,則基地址爲50000000。但是如何尋址到256M的呢?

先看下接法:6410ADDR[0:12]接RAM的A [0:12],6410ADDR[14:15]接RAM的BA[0:1],6410MDDR_CSN1接RAM的CS1(芯片手冊上是A13)。這裏需要說明的是,OK6410這裏做了一個選擇,即如果是128M的RAM則R36\R21\R22\R23都不焊,如果是256M的RAM,只焊R36。我的是256M的RAM。

                                                   
則行地址爲A[0:13],列地址爲A[0:9],總共24位,64M,位寬爲16,共2片,則總大小爲64M*32。就是256M byte。

 

3.     100M網口芯片

採用DM9000芯片,其CS接在CSN1上,則基地址爲18000000。ADDR2接CMD,則地址爲18000000和18000004。

 

 

參考:

http://www.cnblogs.com/chenyuren/articles/2171746.html

http://www.cnblogs.com/chenyuren/articles/2171755.html

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章