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.

Expanding DDR

Other Parts Discussed in Thread: OMAP3530

hi.....

I'm using DM3730 with Linux PSP 04.02.00.07..... kernel version 2.6.37..... we have a custom board with 512 MB RAM.... can any one tell the software changes that has to be done in PSP to increase my RAM to 512 MB from 256 MB(default)...... i also want to make a point that i already used this custom board with WINCE OS and i have done successful changes to  WINCE BSP to support 512 MB of RAM...so there is no problem from hardware point of view....

pls share any patches that are available for xldr ,u-boot ,uImage to increase RAM to 512MB

thnx in advance....... :)

  • Suhas,

    Try passing the bootargs "mem=" with a higher value? Check the current value and increase it, if it is in 256MB range.

  • Thnx for ur timely reply Renjith.... :)

    as per /etc/init.d/loadmodules-rc , cmem (34MB)  require memory from  0x83700000 to  0x85900000 and codec server(39MB) require memory from 0x85900000 to 0x88000000.. i partitioned my RAM for linux memory into 55MB and 256MB chunks @ 0x80000000 and 0x88000000 respectively.....

    so i passed the mem settings as below in the boot args....

    mem=55M@0x80000000 mem=256M@0x88000000

    then i did a dmesg after boot up... i got the following messages ...

    1.reserving 4MB for VRAM 

    2.Memory 55MB 252MB = 307MB

    so im able to achieve a total memory of 384MB (4MB+55MB+252MB+34MB+39MB)(VRAM + Linux + Linux + CMEM + Codec Server)

    but if i try to pass below mem args in  boot args..

    mem=55M@0x80000000 mem=257M@0x88000000

    the kernel wont boot.. it hangs @ starting kernel....................

    so im not able to increase even 1MB after 384MB... where is the remaining 128MB of RAM????

     im i missing anything?????????

  • You also might want to look at your MLO/u-boot source and make sure the register SDRC_MCFG is set correctly. There is a field in there for the RAMSIZE that has the number of 2MB chunks.

    Steve K.

  • Suhas,

    Can you a memory dump from u-boot by using the command for the offset 0x9800_0000 like "md 0x98000000"? If this fails, then you can be sure that some thing is wrong with your DDR config as steve pointed out.

  • here is my mem dump at uboot cmd prompt....

    OMAP3_EVM # md 97ffff00
    97ffff00: 00000000 00000000 00000000 00000000    ................
    97ffff10: 00000000 00000000 00000000 00000000    ................
    97ffff20: 00000000 00000000 00000000 00000000    ................
    97ffff30: 00000000 00000000 00000000 00000000    ................
    97ffff40: 00000000 00000000 00000000 00000000    ................
    97ffff50: 00000000 00000000 00000000 00000000    ................
    97ffff60: 00000000 00000000 00000000 00000000    ................
    97ffff70: 00000000 00000000 00000000 00000000    ................
    97ffff80: 00000000 00000000 00000000 00000000    ................
    97ffff90: 00000000 00000000 00000000 00000000    ................
    97ffffa0: 00000000 00000000 00000000 00000000    ................
    97ffffb0: 00000000 00000000 00000000 00000000    ................
    97ffffc0: 00000000 00000000 00000000 00000000    ................
    97ffffd0: 00000000 00000000 00000000 00000000    ................
    97ffffe0: 00000000 00000000 00000000 00000000    ................
    97fffff0: 00000000 00040000 00000000 00000000    ................
    OMAP3_EVM # md 97ffff10
    97ffff10: 00000000 00000000 00000000 00000000    ................
    97ffff20: 00000000 00000000 00000000 00000000    ................
    97ffff30: 00000000 00000000 00000000 00000000    ................
    97ffff40: 00000000 00000000 00000000 00000000    ................
    97ffff50: 00000000 00000000 00000000 00000000    ................
    97ffff60: 00000000 00000000 00000000 00000000    ................
    97ffff70: 00000000 00000000 00000000 00000000    ................
    97ffff80: 00000000 00000000 00000000 00000000    ................
    97ffff90: 00000000 00000000 00000000 00000000    ................
    97ffffa0: 00000000 00000000 00000000 00000000    ................
    97ffffb0: 00000000 00000000 00000000 00000000    ................
    97ffffc0: 00000000 00000000 00000000 00000000    ................
    97ffffd0: 00000000 00000000 00000000 00000000    ................
    97ffffe0: 00000000 00000000 00000000 00000000    ................
    97fffff0: 00000000 00040000 00000000 00000000    ................
    98000000:
    OMAP3_EVM # md 98000000

    98000000:

    after this cmd the system hangs here ... i need to reboot.. frm this i suspect that RAM is not init after 0x98000000.....

    how can i solve this prob... ???

  • Suhas,

    There is some problem with your DDR controller configuration. But we need to analyze the configuration more to figure out what exactly is the configuration mistake. Can you send me the DDR controller register dump, the DDR part number, if possible share the portion of schmetics?

  • canu pls tell me how to do a DDR controller register DUMP......as im a newbe... i have very little idea on this...

  • Suhas,

    Can you go to the chapter 11 "Memory Subsystem" of OMAP3530 TRM. You'll be able to see the sections 

    SMS register manual (11.2.7) 

    SDRC register manual (11.2.7) 

    By doing a "md 0xaddress" from u-boot again with the proper addresses you'll be able to see the register values.

  • dump of SDRC registers is below....

    OMAP3_EVM # md 0x6D000000


    6d000000: 00000050 00000000 00000000 00000000    P...............
    6d000010: 00000000 00000001 00000000 00000000    ................
    6d000020: 00000000 00000000 00000000 00000000    ................
    6d000030: 00000000 00000000 00000000 00000000    ................
    6d000040: 00000002 00000100 00000000 00000008    ................
    6d000050: 00000000 00000000 00000000 00000000    ................
    6d000060: 0000000a 00000004 00000000 00000000    ................
    6d000070: 00000081 00000000 00000000 00000000    ................
    6d000080: 03588099 00000032 00000000 00000000    ..X.2...........
    6d000090: 00000000 00000000 00000000 92e1c4c6    ................
    6d0000a0: 0002111c 0004dc01 00000002 00000000    ................
    6d0000b0: 02584099 00000032 00000000 00000000    .@X.2...........
    6d0000c0: 00000000 aa9db4c6 00011517 00000000    ................
    6d0000d0: 00000000 0004e201 00000002 00000000    ................
    6d0000e0: 00000000 00000000 00000000 00000000    ................
    6d0000f0: 00000000 00000000 00000000 00000000    ................

    dump of SMS registers are below.....

    OMAP3_EVM # md 0x6c000000                                                      
    6c000000: 00000040 00000000 00000000 00000000    @...............              
    6c000010: 00000001 00000001 00000000 00000000    ................              
    6c000020: 00000000 00000000 00000000 00000000    ................              
    6c000030: 00000000 00000000 00000000 00000000    ................              
    6c000040: 00000000 00000000 ffffffff 00000000    ................              
    6c000050: 0000ffff 00000000 0000ffff 00000000    ................   

    im not able to access  addresses frm 6c000060 to 6c000080.... if i give this cmd.....md 6c000060...... system will hang.........


    OMAP3_EVM # md 6c000080
    6c000080: 00000000 00000000 00000000 00000000    ................
    6c000090: 00000000 00000000 00000000 00000000    ................
    6c0000a0: 00000000 00000000 00000000 00000000    ................
    6c0000b0: 00000000 00000000 00000000 00000000    ................
    6c0000c0: 00000000 00000000 00000000 00000000    ................
    6c0000d0: 00000000 00000000 00000000 00000000    ................
    6c0000e0: 00000000 00000000 00000000 00000000    ................
    6c0000f0: 00000000 00000000 00000000 00000000    ................
    6c000100: 00000000 00000000 00000000 00000000    ................
    6c000110: 00000000 00000000 00000000 00000000    ................
    6c000120: 00000000 00000000 00000000 00000000    ................
    6c000130: 00000000 00000000 00000000 00000000    ................
    6c000140: 00000010 00000000 00000000 00000000    ................
    6c000150: 00500000 00000500 00055000 00000000    ..P......P......
    6c000160: 00400040 00000001 00000001 00000001    @.@.............
    6c000170: 00000000 00000000 00000080 00000000    ................
    6c000180: 00000000 00000000 00000000 00000000    ................
    6c000190: 00000000 00000000 00000000 00000000    ................
    6c0001a0: 00000000 00000000 00000000 00000000    ................
    6c0001b0: 00000000 00000000 00000000 00000000    ................
    6c0001c0: 00000000 00000000 00000000 00000000    ................
    6c0001d0: 00000000 00000000 00000000 00000000    ................
    6c0001e0: 00000000 00000000 00000000 00000000    ................
    6c0001f0: 00000000 00000000 00000000 00000000    ................

  • Suhas,

    What is the DDR part number?

  • its a pop from hynix (512MB RAM and 512MB NAND)

    part no.   H27UEGYEA

  • Suhas,

    Your SDRC configuration is totally wrong. I'm not able to suggest the right values as I couldn't find the datasheet of the DDR part online. Could you please send me the datasheet by mail?

  • sorry for the wrong part number......... here's is the correct part number H8KES0UU0MER-4EM

    and the data sheet attached.... 1731.H8KES0UU0MER_Series_(Rev2[1].1).pdf

  • Suhas,

    Change the values of the following registers like this and see the behavior.

    6d0000b0 -> should be 0358_8099 Instead of 0258_4099 0x40 means 128MB and 0x80 is 256MB
    6d0000cc -> should be 92e1_c4c6 Instead of 0000_0000
    6d0000d0 -> should be 0002_111c Instead of 0000_0000
    6d0000d0 -> should be 0002_111c Instead of 0000_0000
    6d0000d0 -> should be 0004_dc01 Instead of 0004_e201

  • can u pls be clear on the reg values????

    6d0000b0 -> should be 0358_8099 Instead of 0258_4099 0x40 means 128MB and 0x80 is 256MB
    6d0000cc -> should be 92e1_c4c6 Instead of 0000_0000
    6d0000d0 -> should be 0002_111c Instead of 0000_0000
    6d0000d0 -> should be 0002_111c Instead of 0000_0000 // same line as above ?????
    6d0000d0 -> should be 0004_dc01 Instead of 0004_e201  //same address as above line ????

    can u pls reprovide the above values

  • Sorry, made mistake at midnight.

    6d0000b0 -> should be 0358_8099 Instead of 0258_4099 0x40 means 128MB and 0x80 is 256MB
    6d0000cc -> should be 92e1_c4c6 Instead of 0000_0000
    6d0000d0 -> should be 0002_111c Instead of 0000_0000
    6d0000e4 -> should be 0004_dc01 Instead of 0004_e201

  • i had to make slight adjustment to ur above addresses... they were faulty......

    finally 512MB RAM achieved by using the following register values.........

    0x6D0000B0 = 0x03588099
    0x6D0000C4 = 0x92e1c4c6
    0x6D0000C8 = 0x0002111c
    0x6D0000D4 = 0x0004dc01

    thnx renjith for ur guidance...... :)

  • Glad that its working for you!