Altera_Forum
Honored Contributor
12 years agouClinux version 3.7 boot problem related to: mm bootmem.c:352 mark_bootmem()
Hi, I hope all is well and i thank you in advance for your time. In bold you find the relevant information to try and save you time reading this thread (i hope you don't find the bold lettering to be rude). Feel free to read in between to get more info.
i have been able to make images of uclinux version 3.1 for the mmu nios2 processor (Cyclone III FPGA) and have been able to boot without problems for a couple of months. However, the more that i attempted to enable new features such as ethernet and MMC/SD support, the more i realized that this version of the kernel and its drivers needed lots of work to become stable. i decided to update to the latest version of uclinux for the nios2 processor that is available through the git repositories. I did this by performing the "./update" command and by using the "nios2" branch instead of "unstable-nios2mmu". After performing the update and getting over a small hurdle of having to remove "mconf" binary file that did not allow me to get to "menuconfig", i was able to generate my first image using version 3.7 of uclinux. the system starts to boot and then i get the following error printout: linux version 3.7.0-01377-g1061bd7-dirty (ja2-bld) (gcc version 4.1.2)#757 wed jan 23 14:28:22 est 2013 bootconsole [early0] enabled early_console initialized at 0x34003968 bug: failure at /home/ja2/fresh_build_mmu/nios2-linux/linux-2.6/mm/bootmem.c352/mark_bootmem()! kernel panic -not syncing: bug! These are the things i have attempted to fix this issue: - I can rule out any hardware or FPGA configuration issues since i am able to run my previous images based on uClinux 3.1. - I enabled devicetree and provided the right path to the ".dts" file on the "make menuconfig" option. I also compare the settings on the previous 3.1 kernel with the new 3.7 to make sure that the same initial features were enabled - I looked into the "bootmem.c" file and was able to at least determine that this has to do with boot-time memory allocation. I tried to understand why the function mark_bootmem() fails but all i can guess is that the system is having a hard time either accessing memory or reserving the memory specified by "start" and "end" parameters to this function. I did not even want to attempt to modify this file since i expect this release to be much more stable. - I double checked that i am providing the proper hardware description through the .dts file to the system and re-run the previous 3.1 kernel image with no problems on same hardware settup board. My only guess is that there is some setting in "make menuconfig" that needs to be enabled or modified but after looking through all the settings i could think of, i could not find anything to help with problem. I greatly appreciate any help that you can provide.