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/TDA2SX: Regarding How much memory is configured to Linux in TDA2XX EVM

Part Number: TDA2SX
Other Parts Discussed in Thread: DRA742, DRA752

Tool/software: Linux

Hii all,

I am using the TDA2XX EVM board.I have one doubt regarding the memory part in the TDA2XX.

1. If I booted my board with visionsdk_03_03 version images and type the command at root prompt "cat /proc/meminfo".The memtotal it is displaying around 550MB

2.If I booted my borad with visionsdk_03_04 version images and see the same "cat /proc/meminfo" at root prompt it is displaying the memtotal as around 2GB

here,My question was when I compared the dra7-evm-infoadas.dts & related dra7-evm.dts files in kernel and mem_segment_definition_linux.xs files in vision sdk,in both versions 03.03 & 03.04. Both are same regarding the memory configuration.Then where the Linux memory is configured to 550MB in 03.03 version and 2GB in 03.04 version??

a) I think the above mentioned mem_segment_definition_linux.xs files are configuring/partitioning the memory to other remote cores not for linux.Is it correct??

b) In the kernel dra7-evm.dts file only i found the data regarding the memory of linux,this file is same in both versions 03.03 & 03.04 regarding the memory.

memory {
                device_type = "memory";
                reg = <0x0 0x80000000 0x0 0x60000000>; /* 1536 MB */
        };
c) I think in u-boot only we need to configure our SDRAM & DRAM & DDR3 , because in u-boot only those initializations will happen.is it right??

if yes,then where can I limit our board linux memory to 550MB in 03.04 version or in any version.If the changes regarding to memory part are not in u-boot means then where I need to change to limit the memory.

Thanks & Regards,

A.Kavya Harini

  • Hi Alapati,

    can you check chapter "6.6 How To - Modify 1GB Linux Memory map to 512MB Linux Memory map" in PROCESSOR_SDK_VISION_03_04_00_00\vision_sdk\docs\FeatureSpecificUserGuides\VisionSDK_UserGuide_MemoryMap.pdf
    There you can find which files in VisionSDK and in the Kernel needs to be modified and what changes has to be done to change the memory.

    Regards,
    Yordan
  • Hi Yordan,

    I read VisionSDK_UserGuide_MemoryMap.pdf section 6.6 telling Modify 1GB Linux Memory map to 512MB Linux Memory map. In that patch "All EVE cores and IPU1 are disabled". But in our case "All EVE cores and IPU1 are enabled".

    I think mem_segment_definition_linux.xs files are configuring/partitioning the memory to other remote cores not for linux?

    As per the document if Linux memory map is configured in mem_segment_definition_linux.xs. Then, how both versions of 3.03 &3.04 vision sdk having same data regarding memory map and How it is showing the memtotal (cat /proc/meminfo) as around 550MB in 3.03 and 2Gb in 3.04.

    Please tell me how can i change/limit the memory. In which files I need to modify (u-boot,kernel,vision_sdk files) ?

    I have a doubt , whether "cat /proc/meminfo" displays all core memories including A15?? Is it correct? if not, how to check A15 core memory ?

    Could you please help me to solve this issue.

    Thanks & Regards,
    A. Kavya Harini
  • Hi Kavya,

    Can you check your uenv.txt file present in the boot partition? There is a kernel bootarg which limits the DDR size to 1024MB (there will be a bootarg indicating mem=1024M). This is what limits the DDR size to 1GB (even if there is more than 1GB available on your board).
    If you remove this argument, you can use all the available RAM on your setup.

    Regards
    Shravan
  • Hi Shravan,

    Thanks for the reply, it is very useful information to us.

    1. a) I checked with that mem argument in uenv.txt,if I put mem=1024M after booting if i give "cat /proc/meminfo" it is displaying 601MB what about the remaining 423 MB?Who is consuming that remaining memory?
    b)if I put mem=1536M after booting if i give "cat /proc/meminfo" it is displaying 1.08GB what about the remaining 0.5GB around memory?Who is consuming that remaining memory?
    2. If I remove that mem argument,In "cat /proc/meminfo" it is showing around 1.5GB, here my doubt was in TDA2SX the DRAM size is 4GB it is diaplaying while booting then, how it displays around 1.5GB in the meminfo .so, some where else it is configured and limited.Could you please tell me where exactly the Linux memory is configured from uboot,kernel or in vision_sdk files.

    Here I'm attaching the log for the DRAM info.

    U-Boot 2016.05-00010-g9551b3d (May 16 2019 - 11:05:10 +0530)

    CPU : DRA752-GP ES2.0
    Model: TI DRA742
    Board: DRA74x EVM REV H.0
    DRAM: 4 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1


    The log for "cat /proc/meminfo" after removing the "mem" argument in uenv.txt

    root@dra7xx-evm:~# cat /proc/meminfo
    MemTotal: 1640092 kB
    MemFree: 1579108 kB
    MemAvailable: 1594084 kB
    Buffers: 4072 kB
    Cached: 28864 kB
    SwapCached: 0 kB
    Active: 18860 kB
    Inactive: 20496 kB
    Active(anon): 7784 kB
    Inactive(anon): 8328 kB
    Active(file): 11076 kB
    Inactive(file): 12168 kB
    Unevictable: 0 kB
    Mlocked: 0 kB
    HighTotal: 1292288 kB
    HighFree: 1256996 kB
    LowTotal: 347804 kB
    LowFree: 322112 kB
    SwapTotal: 0 kB
    SwapFree: 0 kB
    Dirty: 288 kB
    Writeback: 0 kB
    AnonPages: 6444 kB
    Mapped: 9364 kB
    Shmem: 9676 kB
    Slab: 16452 kB
    SReclaimable: 6548 kB
    SUnreclaim: 9904 kB
    KernelStack: 824 kB
    PageTables: 340 kB
    NFS_Unstable: 0 kB
    Bounce: 0 kB
    WritebackTmp: 0 kB
    CommitLimit: 820044 kB
    Committed_AS: 36496 kB
    VmallocTotal: 245760 kB
    VmallocUsed: 0 kB
    VmallocChunk: 0 kB
    CmaTotal: 204800 kB
    CmaFree: 203624 kB
    root@dra7xx-evm:~#

    Please help me to resolve the issue.


    Thanks & Regards,
    A.Kavya Harini
  • Hi Kavya,

    1. If you observe your reserved node entries in your kernel DTB they will occupy roughly 400+MB. This is why Linux indicates only 600+ MB is available even though you have 1GB. Reserved memory node indicates kernel can't use these regions for its allocation. 

    2. This is similar to #1, reserved node entries occupy more space. 1.5GB - 400MB ~1.1GB.

    3. Are you using a TDA2X EVM or is this a custom board? The configuration for EMIF on the EVM done in the function emif_get_dmm_regs defined in board/ti/dra7xx/evm.c in u-boot. For different EVM revisions, we have different DDR available, and the EMIF is configured accordingly.

    Regards

    Shravan

  • Hi Shravan,

    Sorry for the late reply.

    Thanks for your valuable information.It is very useful to us.

    Presently We are working on TI TDA2X EVM board only.In future we are going to use our custom board for that board we are going to change DDR3 chip,because "MT41K512M16"(used in TDA2X EVM) chip is obsolete,So we are going to plan to use this "MT41K512M8DA-107" chip for our custom board.So Now what i'm doing is checking the DDR3 configurations in u-boot & related memory configurations in u-boot,kernel &  in vision_sdk in our TDA2X EVM board.So that this analyses is helpful for me to configure the DDR3 to our custom board.

    1. As You said "The configuration for EMIF on the EVM done in the function emif_get_dmm_regs defined in board/ti/dra7xx/evm.c in u-boot", I gone through this code, so for " DRA752_ES2_0"  rev board,I think  it is going to this structure.

    const struct dmm_lisa_map_regs lisa_map_dra7_2GB = {
            .dmm_lisa_map_0 = 0x0,
            .dmm_lisa_map_1 = 0x0,
            .dmm_lisa_map_2 = 0x80740300,
            .dmm_lisa_map_3 = 0xFF020100,
            .is_ma_present  = 0x1
    };

    so As per this structure the configuration for EMIF is done to 2GB. Am I right?

    Is it going to this structure only for this "DRA752_ES2_0" board?or some other structure?

    2. If EMIF is configured to 2GB for cpu board " DRA752_ES2_0" ,Then why it is displaying the DRAM to 4GB in the log.

    U-Boot 2016.05-00010-g9551b3d (May 16 2019 - 11:05:10 +0530)

    CPU : DRA752-GP ES2.0
    Model: TI DRA742
    Board: DRA74x EVM REV H.0
    DRAM: 4 GiB
    MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1

    I'm little bit confused now whether it is 4GB configured Linux memory or 2GB configured Linux memory?

    Please clear my confusion and help me to understand the DDR3 configuration.

    Thanks & Regards,

    A.kavya harini.

  • Hi Kavya,

    1. The lisa map config depends on the amount of DDR available. It is independent of the vendor of the DDR used. The config lisa_map_dra7_2GB sets the DDR configuration for a 4GB DDR configuration (2G for each EMIF).

    2. As indicated in #1, the EMIF configuration is for each EMIF (2 * 2GB = 4GB).

    Regards

    Shravan

  • Hi Shravan,

    1. So as per the above discussion the DDR is configured to 4GB right.

    Then If I remove that mem argument in uenv.txt,it must and should display the total available RAM setup in the board.But,In "cat /proc/meminfo" it is displaying the memtotal as 1.5GB only.Then where it is limited and configured?

    2. In the kernel dra7-evm.dts file

    memory {
                    device_type = "memory";
                    reg = <0x0 0x80000000 0x0 0x60000000>; /* 1536 MB */    ////here configured to 1.5GB
            };

    So,I modified this to 2GB(0x80000000),3GB(0xC0000000),4GB(0xFFFFFFFF) in the kernel dts file.I checked with all these memory configurations.

    Note: below testcases are with respect to point no.2

    testcase-a) In uenv.txt,If I removed mem argument and see the cat /proc/meminfo but no use still it is displaying 1.5GB.In this case board booted successfully

    testcase-b) In uenv.txt I modified mem=2048M,3072M,4096M In this case while booting kernel panic happened.why it is happened?Here is the log.I tried with all the combinations in this case,I'm getting kernel panic.

    [    2.383833] input: gpio_keys as /devices/platform/gpio_keys/input/input0
    [    2.390735] hctosys: unable to open rtc device (rtc0)
    [    2.403979] evm_1v8: disabling
    [    2.407054] aic_dvdd: disabling
    [    2.410228] vmmcwl_fixed: disabling
    [    2.413910] ldousb: disabling
    [    2.417305] ALSA device list:
    [    2.420302]   #0: DRA7xx-EVM
    [    2.423843] Waiting for root device PARTUUID=5b601bb7-02...
    [    2.606129] mmc2: host does not support reading read-only switch, assuming write-enable
    [    2.621374] mmc2: new ultra high speed SDR104 SDHC card at address aaaa
    [    2.628448] mmcblk1: mmc2:aaaa SC16G 14.8 GiB
    [    2.636801]  mmcblk1: p1 p2
    [    2.649749] EXT4-fs (mmcblk1p2): couldn't mount as ext3 due to feature incompatibilities
    [    2.660346] EXT4-fs (mmcblk1p2): couldn't mount as ext2 due to feature incompatibilities
    [    2.709879] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [    2.718059] VFS: Mounted root (ext4 filesystem) on device 179:50.
    [    2.729513] devtmpfs: mounted
    [    2.732734] Freeing unused kernel memory: 332K
    [    2.737198] This architecture does not have kernel memory protection.
    [    2.751545] Unhandled fault: external abort on non-linefetch (0x008) at 0xffeee000
    [    2.759149] pgd = c0004000
    [    2.761864] [ffeee000] *pgd=affa6861, *pte=ffffe65f, *ppte=ffffe45f
    [    2.768184] Internal error: : 8 [#1] PREEMPT SMP ARM
    [    2.773167] Modules linked in:
    [    2.776242] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.84-00027-g018eb62-dirty #108
    [    2.784192] Hardware name: Generic DRA74X (Flattened Device Tree)
    [    2.790311] task: ee880000 ti: ee87c000 task.ti: ee87c000
    [    2.795737] PC is at memcpy+0x48/0x330
    [    2.799503] LR is at copy_to_iter+0x1c8/0x308
    [    2.803877] pc : [<c02b24a8>]    lr : [<c02c5160>]    psr: 60000013
    [    2.803877] sp : ee87dd0c  ip : 00000000  fp : ee87dd5c
    [    2.815403] r10: 00000000  r9 : ffeee080  r8 : ee87de2c
    [    2.820648] r7 : 00000080  r6 : ee87de34  r5 : 00000080  r4 : 00000080
    [    2.827203] r3 : 00000002  r2 : 00000000  r1 : ffeee000  r0 : ee3a0600
    [    2.833757] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
    [    2.840920] Control: 10c5387d  Table: 8000406a  DAC: 00000051
    [    2.846687] Process swapper/0 (pid: 1, stack limit = 0xee87c210)
    [    2.852717] Stack: (0xee87dd0c to 0xee87e000)
    [    2.857093] dd00:                            00000080 ee87de34 00000080 ee87de2c ee3a0600
    [    2.865305] dd20: 00000080 c02c5160 eed99a30 ee87dd74 ee87dd64 00001000 ee87de34 ffeee000
    [    2.873517] dd40: 00000000 ee57b5b0 ee87c000 00000000 ee87dd9c ee87dd60 c02c5454 c02c4fa4
    [    2.881730] dd60: c00d1bb8 c0684ec8 eff9ffb8 eff9ffb8 00000000 eff9ffb8 ee57b694 edc12780
    [    2.889942] dd80: 00000000 ee57b5b0 ee87c000 00001000 ee87de1c ee87dda0 c00d3580 c02c52ac
    [    2.898154] dda0: 00000001 ee3d2cc0 00000000 c0936664 00080001 00000000 ffffffff 00000001
    [    2.906367] ddc0: edc127e8 00000fff 00000000 ffffe000 ee87de48 ee87de34 c01cbe0c c01c5fd4
    [    2.914579] dde0: 00000014 00000014 ee87de24 ee87ddf8 c0143aec edc12780 ee87dec0 00000000
    [    2.922790] de00: 00000000 00000080 00000000 edc1a000 ee87de8c ee87de20 c011ffe4 c00d331c
    [    2.931003] de20: 00000080 c0143aa4 c0110e50 ee3a0600 00000080 00000002 00000000 00000080
    [    2.939216] de40: ee87de2c 00000001 edc12780 00000000 00000000 00000000 00000000 00000000
    [    2.947430] de60: 00000000 00000000 ee3a0600 edc12780 ee87dec0 c0939668 ee3a0600 edc08000
    [    2.955640] de80: ee87debc ee87de90 c01207a4 c011ff3c 0000003f 00000000 ffffe000 00000000
    [    2.963853] dea0: c09395e0 c0939668 ee3a0600 edc08000 ee87dedc ee87dec0 c0125be0 c0120730
    [    2.972064] dec0: 00000000 00000000 ee3a0600 ee57b5b0 ee87df04 ee87dee0 c012674c c0125bac
    [    2.980277] dee0: ee3a0600 00000080 00000003 ee1b4000 c09395e0 c0939668 ee87df4c ee87df08
    [    2.988489] df00: c0127030 c0126698 c0985e18 00000000 ffffe000 00000000 00000000 00000000
    [    2.996702] df20: c09395e0 c09395e0 c0939668 00000000 00000000 00000000 00000000 00000000
    [    3.004912] df40: ee87df64 ee87df50 c0127200 c0126bb4 00000000 00000000 ee87df7c ee87df68
    [    3.013124] df60: c00097ac c01271e0 c0985000 c08196a8 ee87df94 ee87df80 c00097c4 c000978c
    [    3.021334] df80: c0985000 c06836c4 ee87dfac ee87df98 c0683768 c00097bc 00000000 c06836c4
    [    3.029549] dfa0: 00000000 ee87dfb0 c000fd18 c06836d0 00000000 00000000 00000000 00000000
    [    3.037758] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [    3.045972] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
    [    3.054178] Backtrace:
    [    3.056645] [<c02c4f98>] (copy_to_iter) from [<c02c5454>] (copy_page_to_iter+0x1b4/0x3bc)
    [    3.064854]  r10:00000000 r9:ee87c000 r8:ee57b5b0 r7:00000000 r6:ffeee000 r5:ee87de34
    [    3.072759]  r4:00001000
    [    3.075314] [<c02c52a0>] (copy_page_to_iter) from [<c00d3580>] (generic_file_read_iter+0x270/0x67c)
    [    3.084394]  r10:00001000 r9:ee87c000 r8:ee57b5b0 r7:00000000 r6:edc12780 r5:ee57b694
    [    3.092291]  r4:eff9ffb8
    [    3.094845] [<c00d3310>] (generic_file_read_iter) from [<c011ffe4>] (__vfs_read+0xb4/0xdc)
    [    3.103139]  r10:edc1a000 r9:00000000 r8:00000080 r7:00000000 r6:00000000 r5:ee87dec0
    [    3.111033]  r4:edc12780
    [    3.113585] [<c011ff30>] (__vfs_read) from [<c01207a4>] (vfs_read+0x80/0x10c)
    [    3.120746]  r9:edc08000 r8:ee3a0600 r7:c0939668 r6:ee87dec0 r5:edc12780 r4:ee3a0600
    [    3.128564] [<c0120724>] (vfs_read) from [<c0125be0>] (kernel_read+0x40/0x54)
    [    3.135725]  r9:edc08000 r8:ee3a0600 r7:c0939668 r6:c09395e0 r5:00000000 r4:ffffe000
    [    3.143546] [<c0125ba0>] (kernel_read) from [<c012674c>] (prepare_binprm+0xc0/0x120)
    [    3.151317]  r5:ee57b5b0 r4:ee3a0600
    [    3.154921] [<c012668c>] (prepare_binprm) from [<c0127030>] (do_execveat_common+0x488/0x62c)
    [    3.163390]  r7:c0939668 r6:c09395e0 r5:ee1b4000 r4:00000003
    [    3.169108] [<c0126ba8>] (do_execveat_common) from [<c0127200>] (do_execve+0x2c/0x34)
    [    3.176967]  r10:00000000 r9:00000000 r8:00000000 r7:00000000 r6:00000000 r5:c0939668
    [    3.184863]  r4:c09395e0
    [    3.187415] [<c01271d4>] (do_execve) from [<c00097ac>] (run_init_process+0x2c/0x30)
    [    3.195106] [<c0009780>] (run_init_process) from [<c00097c4>] (try_to_run_init_process+0x14/0x44)
    [    3.204011]  r5:c08196a8 r4:c0985000
    [    3.207618] [<c00097b0>] (try_to_run_init_process) from [<c0683768>] (kernel_init+0xa4/0xf4)
    [    3.216087]  r5:c06836c4 r4:c0985000
    [    3.219695] [<c06836c4>] (kernel_init) from [<c000fd18>] (ret_from_fork+0x14/0x3c)
    [    3.227293]  r5:c06836c4 r4:00000000
    [    3.230898] Code: ba000002 f5d1f03c f5d1f05c f5d1f07c (e8b151f8)
    [    3.237018] ---[ end trace b13b7eb20e755d08 ]---
    [    3.241654] note: swapper/0[1] exited with preempt_count 1
    [    3.247273] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    [    3.247273]
    [    3.256449] CPU0: stopping
    [    3.259174] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D         4.4.84-00027-g018eb62-dirty #108
    [    3.268343] Hardware name: Generic DRA74X (Flattened Device Tree)
    [    3.274463] Backtrace:
    [    3.276936] [<c0013b1c>] (dump_backtrace) from [<c0013d18>] (show_stack+0x18/0x1c)
    [    3.284533]  r7:c0935f00 r6:20000193 r5:00000000 r4:c0953590
    [    3.290254] [<c0013d00>] (show_stack) from [<c02b39a8>] (dump_stack+0x8c/0xa0)
    [    3.297510] [<c02b391c>] (dump_stack) from [<c0016e64>] (handle_IPI+0x184/0x198)
    [    3.304933]  r7:c0935f00 r6:00000000 r5:00000000 r4:c093140c
    [    3.310650] [<c0016ce0>] (handle_IPI) from [<c0009528>] (gic_handle_irq+0x78/0x7c)
    [    3.318246]  r7:fa212000 r6:c0935f00 r5:fa21200c r4:c09368e4
    [    3.323966] [<c00094b0>] (gic_handle_irq) from [<c0014854>] (__irq_svc+0x54/0x90)
    [    3.331479] Exception stack(0xc0935f00 to 0xc0935f48)
    [    3.336553] 5f00: 00000001 00000000 fe600000 00000000 c0934000 c09364a4 00000000 00000000
    [    3.344767] 5f20: c0935f70 c068c284 c0936504 c0935f5c c0935f3c c0935f50 c00284e8 c00107a0
    [    3.352978] 5f40: 60000013 ffffffff
    [    3.356477]  r9:c068c284 r8:c0935f70 r7:c0935f34 r6:ffffffff r5:60000013 r4:c00107a0
    [    3.364302] [<c0010778>] (arch_cpu_idle) from [<c0072800>] (default_idle_call+0x28/0x34)
    [    3.372430] [<c00727d8>] (default_idle_call) from [<c0072a60>] (cpu_startup_entry+0x200/0x260)
    [    3.381084] [<c0072860>] (cpu_startup_entry) from [<c06836c0>] (rest_init+0x90/0x94)
    [    3.388855]  r7:c0936400
    [    3.391412] [<c0683630>] (rest_init) from [<c08e1d60>] (start_kernel+0x3d8/0x3e4)
    [    3.398921]  r5:c0985000 r4:c0985040
    [    3.402529] [<c08e1988>] (start_kernel) from [<8000807c>] (0x8000807c)
    [    3.409088] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    [    3.409088]
                           

    So,According to these scenarios,some where else the memory is configured please help me to understand,I'm totally confused.

    Thanks & Regards,

    A.Kavya Harini.                                                   

  • Hi Kavya,


    Please don't modify the kernel DTS memory node. 

    Are you using the TI EVM or a custom board? If you're using the TI EVM then the macro board_ti_get_emif_size() defined in board/ti/dra7xx/evm.c in u-boot will return the DDR available on the board.

    If its a custom board, you need to modify this macro to return the DDR available on the board. This is the only change necessary. With this change, the lisa_map registers will be configured correctly and thus kernel will be able to correctly retrieve the DDR available.

    Regards

    Shravan

  • Hi Shravan,

    We are working on TI EVM only.

    I already debug the u-boot code regarding the macro " board_ti_get_emif_size()" & DDR. This macro is returning 4GB in TI EVM.You can see the debug log below.

    The config lisa_map_dra7_2GB sets the DDR configuration for a 4GB DDR configuration (2G for each EMIF).(As you said in the previous discussion)

    U-Boot 2016.05-00012-ge3ae5d3-dirty (Jun 17 2019 - 12:54:45 +0530)

    CPU  : revision=7520200
    DRA752-GP ES2.0
    Model: TI DRA742
    Board: DRA74x EVM REV H.0
    DRAM:

    gd->ram_size in dram_init() arch/arm/cpu/armv7/omap-common/hwinit-common.c =2130706432
    ep->emif1_size = 2147483648
    ep->emif2_size = 2147483648

    ram_size in dram_init_banksize() in board/ti/dra7xx/evm.c = 4294967296    /////////////////at this part only that macro is calling /////////////// here it is showing 4GB.
    (ram_size > CONFIG_MAX_MEM_MAPPED in board/ti/dra7xx/evm.c at dram_init_banksize

    size of ram is 4278190080


    4 GiB

    common/board_r.c Func:board_init_r

    board/ti/dra7xx/evm.c   Func:board_init called  from common/board_r.c

    So, the DDR is configured to 4GB for TI-EVM for CPU board "DRA752-GP ES2.0".

    As per the previous discussions,In uenv.txt if we remove that mem argument means total available RAM on board setup need to be displayed,But it is not displaying in cat /proc/meminfo. It is displaying around 1.5GB only with out mem argument.

    I tested this scenario with out modifying the kernel DTS memory node.

    Please tell me that DDR is configured to 4GB but still it is displaying 1.5GB only why?

    Thanks & Regards,

    A.kavya Harini.

  • Hi Kavya,

    Can you please run the below command on your target EVM from kernel prompt and paste the output?

    cat /proc/cmdline.

    Also can you upload the kernel DTB file (not DTS file, but the compiled DTB) being used.


    Regards

    Shravan

  • Hi Shravan,

    Thanks for the reply.

    root@dra7xx-evm:~# cat /proc/cmdline
    console=ttyO0,115200n8 vram=16M root=PARTUUID=b43f738b-02 rw rootwait ip=none
    root@dra7xx-evm:~#

    I'm attaching the kenel dtb file.

    5670.dtb.zip

    Thanks & Regards,

    A.kavya harini.

  • Hi Kavya,

    The DTB looks fine. Can you confirm if CONFIG_ARM_LPAE is enabled on your device? Please run the below command on your target EVM.

    zcat /proc/config.gz | grep -i LPAE

    If it isn't set, please rebuild your kernel with LPAE enabled. 

    Regards

    Shravan

  • Hi Shravan,

    root@dra7xx-evm:~# zcat /proc/config.gz | grep -i LPAE
    # CONFIG_ARM_LPAE is not set
    # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
    root@dra7xx-evm:~#

    Yes,The CONFIG_ARM_LPAE is not enabled in the kernel by seeing the above information from that command.I will rebuild my kernel with LPAE enabled and test it once whether, total RAM available on  set up is displaying or not.I will get back to you after testing.

    Thanks & Regards,

    A.Kavya Harini.

  • Hi Shravan,

    I rebuild the kernel with CONFIG_ARM_LPAE=y enabled then it is displaying the available RAM setup on the board.Thanks a lot for that.

    root@dra7xx-evm:~#  zcat /proc/config.gz | grep -i LPAE
    CONFIG_ARM_LPAE=y
    # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set
    root@dra7xx-evm:~# cat /proc/meminfo
    MemTotal:        3717752 kB
    MemFree:         3594560 kB
    MemAvailable:    3648380 kB
    Buffers:            8208 kB
    Cached:            68636 kB
    SwapCached:            0 kB
    Active:            31640 kB

    I have another doubt too,By enabling the LPAE Is there any chances of getting any memory map issues (from user space applications or from kernel side) and performance issues?Because in future we need to work on our custom board that why i'm bothering about the memory & performance issues.

    Could you please clarify my doubt.

    Thanks & Regards,

    A.Kavya Harini.

  • Hi Kavya,

    There are no performance hits on enabling LAPE.

    There are changes needed in memory configuration between an LPAE and non LPAE system. More specifically LPAE enabled systems require greater amount of lowmem to be available to kernel. It's recommended you leave atleast 400-500MB of lowmem (out of 768MB) free for kernel to use (i.e limit your reserved node entries to < 300MB in lowmem).

    Your question regarding DDR size is resolved. Please create a new thread for any further questions.

    Regards

    Shravan