Re: [問題] 使用alloc_bootmem發生問題?
又來自己回自己了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
推
06/28 12:58, , 1F
06/28 12:58, 1F
→
06/28 19:15, , 2F
06/28 19:15, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章