Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I have an embedded board with 512MB of RAM running Linux 2.6.29 and UBoot bootloader. But the kernel is able to utilize only 128MB of RAM.

I tried changing the value of XCODE_MEMSIZE, which I think determines how much RAM the kernel uses.

When I set it to 512, the kernel crashes while booting up. Is there any other configuration parameter that needs to be changed?

share|improve this question
    
Can you be more specific regarding the crash you mention? What do you see on screen? Any errors? –  Straphka Sep 26 '11 at 8:47
    
And what board is it? –  Gilles Sep 26 '11 at 23:27
    
Really need to provide more details about 'only able to use 128MB'. It sounds like something has been limited somewhere (stack size per user, etc). –  polynomial Oct 2 '11 at 4:43
    
how much memory is u-boot detecting? Does it detect the whole of 512MB? –  freethinker Dec 8 '11 at 8:22
    
What does cat /proc/cmdline tell you on your board? –  abc May 25 '12 at 2:00
add comment

3 Answers

I guess you should increase RAM Disk size in your kernel.

share|improve this answer
add comment

In addition to the other posts about being more specific, I would also suggest unmounting /dev/shm if it is mounted. That is a ramdisk filesystem and eats into your ram.

Also take a look at the sysctl command in linux. Doing something like sysctl -w kernel.shmmax="<some number>" changes the kernel while it's running.

share|improve this answer
4  
/dev/shm uses barely any memory if its empty. It will only start using ram once files are loaded into it. –  Patrick Jan 6 '12 at 0:35
    
/dev/shm is nothing but implementation of traditional shared memory concept. It is an efficient means of passing data between programs. One program will create a memory portion, which other processes (if permitted) can access. This will result into speeding up things on Linux. –  Satish Jan 3 '13 at 16:05
add comment

Without more specific knowledge of your embedded board two things come to mind.

  1. Try kernel mem= boot parameter. (I think sometimes the memory might be available from non-continous address so you might have to use something like this, but the addresses will be have to be checked per you mobo.

    mem=512M@0 mem=256M@0x80000000 mem=256M=0xc0000000

  2. Do you have embedded graphics card? That might take out a chunk of your available ram. If you can get to the bios or equivalent, check that.

@see Kernel paramters for more information on mem=

share|improve this answer
    
You may need to specify a value less than 512M - perhaps there's a device or something at or near physical address 0x20000000 (512M) in the board's memory map, which, you should get a copy of to know where the RAM lives on your board. –  ultrasawblade Sep 18 '12 at 19:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.