s3c6410地址映射


1.1   尋址空間

ARM處理器爲32bit處理器,內部32bit地址總線理論尋址空間爲4GB,對於6410來說,尋址空間的高2GB在內部爲保留(reserved),低2GB(0x0~0x7FFFFFFF)可劃分爲2部分:主存儲區(main memory area)和外設區(peripheral area)


1.2   主存儲空間(Main memory area)

6410內核與主存儲空間通過SPINE總線連接,主存儲爲地址空間0x0~0x6FFFFFFF,大小爲1792MB的一片區域;其中主存儲空間在6410內部劃分爲以下幾部分:

  • Boot鏡像區(Boot image area)
  • 內部存儲區(Internal ROM area and internal SRAM area)
  • 靜態存儲區(Static memory area)
  • 動態存儲區(Dynamic memory area)
  • 保留區(Reserved memory area)

1.2.1           Boot鏡像區(Boot image area)

Boot鏡像區位於6410尋址空間的0x0~0x07FFFFFF(128MB)位置,這段區域並沒有真正的存儲設備,實際運行過程中是映射到內部存儲區或靜態存儲區,Boot鏡像區固定起始地址爲0x00000000。

Boot 鏡像區沒有實際的存儲設備,只是在一些特定區域的“鏡像”,之所以有這種位於0x0地址鏡像,主要是因爲ARM內核啓動之後強制PC從0x0地址開始取指有關。至於與哪些特定區域鏡像,與系統配置密切相關(關於系統啓動配置詳見後續章節說明),當系統爲:

1)       SROM (8 bit/16 bit)啓動(booting)

當系統爲SROM booting 配置,Boot鏡像區爲SROM控制器的第0個bank(128MB),即0x10000000~0x17FFFFFF地址,支持的存儲器可以是SRAM、ROM、Nor flash等,對應地址片選引腳Xm0CSn[0]。

2)       MODEM(8 bit/16 bit)啓動(booting)

當系統爲MODEM Booting配置,Boot鏡像區僅地址爲0x00000000~0x00007FFF的32KB區域有效,且對應爲6410內部的I_ROM區低32KB字節0x08000000~0x08007FFF。

3)       ONENAND 啓動(booting)

當系統爲ONENAND 模式啓動配置,整個Boot鏡像區0x0~0x07FFFFFF全部爲靜態存儲器0x20000000~0x27FFFFFF地址鏡像,128MB一一對應。

6410支持2 Bank個ONENAND 地址映射區,分別爲ONENAND0 和ONENAND1,只有ONENAND0對應的地址纔可能在啓動時候鏡像到Boot鏡像區。

4)       IROM啓動(booting)

IROM啓動設置之後,Boot鏡像區僅地址爲0x00000000~0x00007FFF的32KB區域有效,且對應爲6410內部的I_ROM區低32KB字節0x08000000~0x08007FFF。

順便提及一下,I_ROM主要實現的功能是在系統啓動之後,執行一些內核、外設初始化,搬移啓動代碼到Stepping stone區域,然後跳轉到該區域執行後續的Booting。

1.2.2           內部存儲區(Internal ROM area and internalSRAM area)

6410的內部存儲區分爲地址0x08000000~0x0BFFFFFF的64MB  I_ROM和地址0x0C000000~0x0FFFFFFF的64MB I_SRAM的兩塊區域。64MB空間的I_ROM區域實際只有低32KB有效0x08000000~0x0BFFFFFF;64MB空間的I_SRAM區域也不連續分佈在0x0C000000~0x0C005FFF區域。

1.2.3           靜態存儲區(Static memory area)

6410內部的靜態存儲區地址分佈在0x10000000~0x3FFFFFFF,一共6*128MB大小,分爲Bank0~Bank5,對應地址片選引腳Xm0CSn[0]~ Xm0CSn[5]。

靜態存儲區對應的芯片外部接口memoryport0通過外部總線接口(EBI),分別爲

SROM控制器、ONENAND控制器、NAND Flash控制器以及CF控制器分享。如下圖,memory port0分爲片選共享和外部總線接口共享兩部分。

靜態存儲區結構:

摘自《s3c6410 user’s manual REV 1.2》


EBI共享信號如下表:

摘自《s3c6410 user’s manual REV 1.2》

片選信號共享與系統啓動模式(包括XSELNAND)和存儲區控制寄存器MEM_CTL_CFG的bit5~bit0控制域(MP0_CS_CFG)共同決定。

當系統選擇爲NANDflash啓動配置(XSELNAND=1,OM[4:0]=111x),系統會忽略MP0_CS_CFG的設定,自動使Xm0CSn[2]、Xm0CSn[3]對應NAND Flash CS0、NAND Flash CS1。

當系統選擇爲ONENANDflash啓動配置,系統會忽略MP0_CS_CFG的設定,自動使Xm0CSn[2]、Xm0CSn[3]對應ONENAND Flash CS0、ONENAND Flash CS1。

當系統選擇爲SROM啓動配置,無需配置MP0_CS_CFG,系統自動使Xm0CSn[0]、Xm0CSn[1]對應SROMC CS0、SROMC CS1。

當系統選擇爲SD啓動配置,需要配置MP0_CS_CFG的bit4=1,或bit5=1,使Xm0CSn[4]、Xm0CSn[5]對應到CFCON CS0、CFCON CS1。

MP0_CS_CFG設置:


摘自《s3c6410 user’s manual REV 1.2》

1.2.4           動態存儲區(Dynamic memory area)

6410動態存儲區地址段0x50000000~0x6FFFFFFF,分爲2個bank,每個bank 256MB。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章