作者askacis (ASKA)
看板LinuxDev
標題Re: [問題] 使用alloc_bootmem發生問題?
時間Sun Jun 28 00:50:59 2009
又來自己回自己了XD
後來發現是硬體的問題。
發現問題的方式是在start_kernel函式裡
不做alloc_bootmen,而是直接指定實體位置然後ioremap
16MB size的記憶體(0xa1000000~0xaf000000)
然後再做memset 16MB為0x5A的動作,進而發現到某些區塊的記憶體
memset之後會造成kernel死當,才查出來是硬體那邊的關係
所以我原先的問題也可能是因為alloc_bootmen的記憶體加大之後
造成initramfs解壓縮解到有問題的記憶體區塊造成的。
修正完硬體設定之後,alloc_bootmen快樂使用中^^
※ 引述《askacis (ASKA)》之銘言:
: 目前因為硬體的需求
: 需要allocate一塊很大的連續記憶體空間出來給硬體使用
: 目前查到的方式是在開機的時候使用alloc_bootmen保留出一塊記憶體
: 但是目前實驗的結果是如果我配置在20MB左右的時候開機一切都會正常
: 但是到了30MB時,kernel就會掛點並且顯示指到Null Point的訊息,我用KGDB下去看
: 發覺是死在解壓縮initramfs的時候死在ungzip函式中。
: 有可能我配置出來的記憶體空間與initramfs要用的記憶體空間相衝突嗎?
: 目前查到在System.map中有關initramfs的區域如下
: c001b300 T __initramfs_start
: c034c4cf T __initramfs_end
: 這兩個symbol包的應該是我的initramfs資料,那麼不曉得在解壓縮的時候
: 解出來的資料會放到哪邊?
: 我也有check我配置出來的point位置,也不在initramfs的範圍裏面
: 不曉得有大大有相關的經驗可以指導小弟一條明路嗎?
: 還是說,還有別的方式可以配置出一塊很大的記憶體空間(>100MB)?
: 感謝大家的幫忙~~小弟感激不盡~~^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.91.20
推 kaioukilu:幫推一下 06/28 12:58
→ Neo1978:那硬體問題怎麼辦? =_= 06/28 19:15