<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 6410平臺上配置Linux的DDR參數(shù)

          6410平臺上配置Linux的DDR參數(shù)

          作者: 時間:2016-11-20 來源:網(wǎng)絡 收藏
          前段時間為了解決一個從128M升級到256M的DDR問題,搞的是焦頭爛額。最后在別人討論的情況下終于試出來了正確結果,下來還得自己總結下。

          自己的硬件平臺才采用的是6410的DMC1即32位的DRAM控制器,兩個16位128M的DDR的地址線是共在一起連在6410的16根地址線上,數(shù)據(jù)線是并在一起成32位連在6410上,其它控制腳對應接上。軟件之前寫入128M運行OK,改成256M出現(xiàn)頁面分配錯誤導致fatal error而死機。最后發(fā)覺是少改了一個地方。

          本文引用地址:http://www.ex-cimer.com/article/201611/319060.htm

          綜合起來有以下三個地方要確認:

          1,UBOOT中的smdk6410.h
          #define MEMORY_BASE_ADDRESS 0x50000000
          ....
          #define CONFIG_NR_DRAM_BANKS 1 //rico 1016
          #define PHYS_SDRAM_1 MEMORY_BASE_ADDRESS
          #define PHYS_SDRAM_1_SIZE 0x10000000 //rico for DDR size
          首先只用了DMC1一個BANK,其次SDRAM的大小要改成256M。

          2,UBOOT中的smdk6410.h
          #define DMC1_MEM_CFG ((1<<30)+(0<<21)+(0<<18)+(2<<15)+(0<<14)+(0<<13)+(0<<7)+(0<<6)+(3<<3)+(2<<0))
          #define DMC1_MEM_CFG2 ((1<<11)+(3<<8)+(1<<6)+(0<<4)+(0<<2)+(1<<0))
          #define DMC1_CHIP0_CFG ((1<<16)+(
          0x50<<8)+(0xF0<<0))
          #define DMC_DDR_32_CFG 0x0
          DDR的時序參數(shù)照規(guī)格書確認即可。此處說明的是DDR初始化時要寫入DDR控制器的幾個寄存器參數(shù),包括位寬,片選要求等等。我之前導致死機的錯誤在于片選有錯誤,所以改成256M后導致頁面地址尋址錯誤。

          3,Kernel中的.config

          可以用vi .config進入。保證CONFIG_SMDK6410_RAMSIZE_256M打開,替換掉CONFIG_SMDK6410_RAMSIZE_128M即可。體現(xiàn)在archarmmach-s3c6400includemachMemory.h:
          #ifdef CONFIG_SMDK6410_RAMSIZE_256M
          #define PHYS_SIZE (256 * 1024 * 1024)
          #else
          #define PHYS_SIZE (128 * 1024 * 1024)



          關鍵詞: 6410平臺LinuxDDR參

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();