Skip navigation

Monthly Archives: March 2011

When the PandaBoard boots it reserves 33554432 bytes (32MB) of RAM for VRAM. As these is no need for video this RAM can be better used by the builder so I went about removing the video drivers from the kernel.

I have successfully compiled a kernel that has no video drivers in it for the purpose of build machines. Thus I was able to reach over 900MB of RAM in the operating system along with the my previously built MLO and u-boot.bin files. How I disabled the drivers from the kernel is that I ran the command

make ARCH=arm CROSS_COMPILE=/path/to/cross/compiler menuconfig

In the menu I went to system type and under ARM System Type I selected TI OMAP. Under that option I went to TI OMAP2/3/4 Specific Features disabled TI OMAP2 and TI OMAP3 and then disabled OMAP 4430 SDP board from the list of the two remaining boards(Figure 1). I then went back to the main menu and went into the Deveice Driver subsection of the main menu. Went down to the Multimedia Support and deselected it. Then went into the graphics support sub menu, disabled all options except Backlight & LCD device support.(Figure 2)

Figure 1 Showing TI OMAP2/3/4/ Specific Features

Figure 2 Showing Graphics Support configuration.

I then exited the menuconfig and saved the config as the default. I then compiled the uImage for the kernel from the .config that got created from the menuconfig with the make command below.

make ARCH=arm CROSS_COMPILE=/path/to/cross/compiler uImage

A copy of the full boot files can be downloaded from here.
The .config that got generated can be downloaded from here

The output from the free -m command that should 907MB available to Fedora is below.

[root@cdot-panda-5-1 kernel]# free -m
Unknown HZ value! (94) Assume 100.
             total       used       free     shared    buffers     cached
Mem:           907         15        892          0          0          3
-/+ buffers/cache:         11        895
Swap:            0          0          0

To avoid errors on boot about not finding modules I copied the /lib/modules/2.6.35-g6d019da-dirty to /lib/modules/2.6.35.3

To test the stablilty of my uImage with the 900MB of RAM I did a native compile of the kernel on the PandaBoard. I successfully got the compile without the board crashing that process took about 74 minutes. I am not sure if that is normal for native compiles but I am happy that my board did not seem to have stability issues

This is a update to the 1GB limit. Using armin76’s source guideline , available here, I was successfully able to build a MLO, u-boot.bin that is able to see the full 1GB of the PandaBoard. I had problems getting it to work at first because I had so much variations and failed attempts at these files floating around my machine so I would get confused with which file to use. So after cleaning up after myself I rebuilt the x-loader and u-boot.  When I built the boot.scr file I used the boot parameters from the omappedia release notes for l24.9 Release with the modification of the mem args from PandaBoard FAQ . When trying to boot to was getting a error “mmcinit is not a valid command”. So it turns out that the parameters on the wiki do not work in the boot.scr file. After using the command below to rebuild the boot.scr file with the contents from arm76’s  from source link it now boots.

mkimage -A arm -T script -C none -n "Pandaboard boot script" \
 -d boot.script boot.scr

The memory available to the board after this was originally 421MB with the initial boot.scr of mem=460 and mem=256, the amount of memory available in Fedora was 672MB. The modified boot.scr file with the arguments for both mem to be 460 I was able to get Fedora too see 874MB

I then tested by modifying the second mem parameter to 512 not 256 the board would start but not complete to boot I can only assume the error sig falut because i dont have kernel debug on. Tried to boot a couple more times and it failed at the same point again. So I then edited the boot.scr file and changed the second mem parameter to 460M recreated the boot.scr file I was able to boot the PandaBoard with out any problems, and fedora was able to see 874MB of ram.

I didnt do any heavy load work on the PandaBoard with these settings so I am not sure if there is any instability on the board with this configuration.  The boot folder with all the files that give the OS 874 MB is available for download here.

Output of free -m with  original MLO and u-boot.bin
[root@cdot-panda-5-1 ~]# free -m
 total       used       free     shared    buffers     cached
Mem:           421         43        377          0          2         26
-/+ buffers/cache:         14        407
Swap:            0          0          0

Output of free -m with  mem=460M@0x80000000 mem=256M@0xA0000000
set in the boot.scr
[root@cdot-panda-5-1 ~]# free -m
Unknown HZ value! (87) Assume 100.
 total       used       free     shared    buffers     cached
Mem:           672         45        627          0          2         26
-/+ buffers/cache:         15        656
Swap:            0          0          0

Output of free -m with  mem=460M@0x80000000 mem=460M@0xA0000000
set in the boot.scr
[root@cdot-panda-5-1 ~]# free -m
total       used       free     shared    buffers     cached
Mem:           874         45        828          0          2         27
-/+ buffers/cache:         16        858
Swap:            0          0          0
Total:         874         45        828



My next task is to remove video from the uImage so that specifically the approximately 300 MB of ram doesn’t get reserved for vram, which could potentially allow for fedora to access more of the ram for the build process.