Re: [問題] 使用alloc_bootmem發生問題?

看板LinuxDev作者 (ASKA)時間16年前 (2009/06/28 00:51), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/2 (看更多)
又來自己回自己了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
文章代碼(AID): #1AHatq-J (LinuxDev)
討論串 (同標題文章)
文章代碼(AID): #1AHatq-J (LinuxDev)