[問題] 嵌入式系統增加記憶體的疑問
各位大大好, 小弟目前正在玩嵌入式arm linux
目前想把系統記憶體從64MB增加到128MB
接法是使用兩個memory bank, 每個bank各64MB
而兩個bank的physical addr 並不是連續的
所以小弟在uboot裡面將兩塊memory mapping到連續的virtaul address
+-----+ phy 0x30000000 -> vir 0xc0000000
| |
| |
| 64M |
| |
+-----+ phy 0x38000000 -> vir 0xc4000000
| |
| |
| 64M |
| |
+-----+
然後用mtest對這兩塊位置做讀寫測試, 順利地通過了
之後在bootarg 加上 mem=128M 進入linux kernel
執行memory allocate測試程式超過64MB後, 系統不意外的panic了
小弟回頭找 src/include/asm-arm/memory.h 看到當前code都是以線性方式做轉址
不過發現有一個 CONFIG_DISCONTIGMEM define
因此跑去 menuconfig裡面看
結果在 Kernel Features/Memory model/ 裡面只有看到 Flat Memory的選項
而對於該如何修改使linux能夠支援當前的記憶體配置
小弟仍不太有頭緒, 因此上來發問
請問有大大對相關方面有經驗, 能夠作一些方向指點嗎?
謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.248.135
→
01/31 19:55, , 1F
01/31 19:55, 1F
→
01/31 20:54, , 2F
01/31 20:54, 2F
→
02/01 23:51, , 3F
02/01 23:51, 3F
→
02/02 00:04, , 4F
02/02 00:04, 4F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章
77
188