Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Linux/AM3352: If mem parameter is removed from u-boot and memory node is removed from device tree, how kernel devices amount of RAM available

Part Number: AM3352

Tool/software: Linux

We have beaglebone black based custom board running kernel 3.12.

We have a board with 512MB DDR and 4GB eMMC.

Now for testing I removed "mem=512" from kernel command line parameter passed by U-Boot to kernel..

I also removed "memory" node from device and put that on the board.

Now when I am booting the board kernel is still able to boot and it detects 256MB of RAM.

I don't know from where it is detecting 256MB of RAM,

Is there any fall back mechanism in kernel for memory detection ? where does that reside ?

Thank you,

Regards,

Ankur

  • I think I got the answer,
    It is none other than U-Boot,

    U-Boot had following define
    #define CONFIG_MAX_RAM_BANK_SIZE (1024 << 18) /* 256M */
    To make sure I changed it to 512 as below.
    #define CONFIG_MAX_RAM_BANK_SIZE (1024 << 19) /* 512M */

    I flashed the same and when I boot, I see RAM size 512M, again this time also there was no kernel commadline parameter (i.e. removed mem param). and memory node in device tree also removed. Still kernel saw 512MB RAM.

    So I concluded that it is none other than U-Boot.

    Updated here hoping, it helps someone who has same question as me.

    Regards,
    Ankur
  • Hi Ankur,

    Thanks for sharing the solution.

    Regards,
    Pavel