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.

Why the uboot show DRAM: 2GIB

hello,

Our board have four DDR3 chips ,two are in DDR0 channel and two are in DDR1 channel.

The chip's model is MT41J64M16JT, So the total memory is 512MB. I Modify the memory according to the EZSDK_Memory_Map.

 But when it boot up the uboot syslog is:

U-Boot 2010.06 (Oct 10 2012 - 14:08:25)

TI8148-GP rev 2.1

ARM clk: 600MHz
DDR clk: 400MHz

DRAM: 2 GiB
NAND: HW ECC BCH8 Selected
256 MiB
Using default environment

The 2nd stage U-Boot will now be auto-loaded
Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is alr eady flashed
Hit any key to stop autoboot: 0

NAND read: device 0 offset 0x20000, size 0x40000
262144 bytes read: OK
## Starting application at 0x81000000 ...


U-Boot 2010.06 (Jan 21 2013 - 15:18:51)

TI8148-GP rev 2.1

ARM clk: 600MHz
DDR clk: 400MHz

I2C: ready
DRAM: 2 GiB
NAND: HW ECC BCH8 Selected
256 MiB
MMC: OMAP SD/MMC: 0

.......................

when it boot up ,I use the command sys_top the message is:

MC.HDVPSS:

Firmware Version: 05_02_00_48
0 Heap:Size 2097152 Used 120152 MaxU 120152 Free 1977000 LarF 1977000
1 Heap:Size 28311552 Used 0 MaxU 0 Free 28311552 LarF 28311552
Num SR :4
SRIn 0 :PhyA 0x9f700000 Virt 0x0 Size 0x200000
SRHeap:Size 2095488 Used 16896 MaxU 16896 Free 2078592 LarF 2078592
SRIn 1 :PhyA 0x9a100000 Virt 0x0 Size 0x100000
SRHeap:Size 1048448 Used 0 MaxU 0 Free 1048448 LarF 1048448
SRIn 2 :PhyA 0xab000000 Virt 0x0 Size 0xbc00000
SRHeap:Size 197132160 Used 0 MaxU 0 Free 197132160 LarF 197132160

Legend:
LarF - Largest Free size SRIn - Shared Region Index
PhyA - Physical Address Virt - Virtual Address
MaxU - Maximum Used Size SR - Shared Region
MC - Media Controller
sys_top Ver : 0.2.0.0
Number Of Running Cores: 3

DSP :
Not Running or Do not integrate sys_top functionality

MC.HDVICP2:

Firmware Version: 05_02_00_48
0 Heap:Size 1572864 Used 170768 MaxU 170768 Free 1402096 LarF 1402096
1 Heap:Size 33554432 Used 0 MaxU 0 Free 33554432 LarF 33554432
Num SR :4
SRIn 0 :PhyA 0x9f700000 Virt 0x0 Size 0x200000
SRHeap:Size 2095488 Used 16896 MaxU 16896 Free 2078592 LarF 2078592
SRIn 1 :PhyA 0x9a100000 Virt 0x0 Size 0x100000
SRHeap:Size 1048448 Used 0 MaxU 0 Free 1048448 LarF 1048448
SRIn 2 :PhyA 0xab000000 Virt 0x0 Size 0xbc00000
SRHeap:Size 197132160 Used 0 MaxU 0 Free 197132160 LarF 197132160

....................

need your help.

thank you,

enson

  • Enson,

    2 GiB is hardcoded. Check the below thread for more info, it is for DM816x, but is valid also for DM814x:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/132019.aspx

    Regards,
    Pavel

  • Hi Pavel,

    I read the link you give, and the question is what's the vaule should be give to the marco

    PHYS_DRAM_2 .

    I find the picture in the EZSDK_memory_map.pdf

    But in the ipnc_sdk for dm8127,which use the 512MB DDR I find the macro is 

    /*
    * Physical Memory Map
    */
    #define CONFIG_NR_DRAM_BANKS 2 /* we have 2 banks of DRAM */
    #define PHYS_DRAM_1 0x80000000 /* DRAM Bank #1 */
    #define PHYS_DRAM_1_SIZE 0x10000000 /* 256MB */
    #define PHYS_DRAM_2 0xB0000000 /* DRAM Bank #2 */
    #define PHYS_DRAM_2_SIZE 0x10000000 /* 256MB */

    why the PHYS_DRAM_2 is 0xB0000000? And what value should I give?

     Best Regards,

     Enson

  • Enson,

    I have no access to ipnc_sdk, I work on EZSDK. For EZSDK 512MB total RAM, PHYS_DRAM_2 should be 0xA0000000. Check the below links, might be in help:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/229542.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/186056.aspx

    http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map#Changing_Memory_Map_For_512MB_DM814x_Board

    Best regards,

    Pavel

  • Hi Pavel,

    Thank you for your guidance,I have modify the uboot,and now it show the DRAM is 512MiB.

    But the question is I can't run the omx demos. I do make clean ,then rebuilt all.

    And followed the OMX_EZSDK_Examples.pdf

    # /etc/init.d/matrix-gui-e stop
    # /etc/init.d/pvr-init stop

    dm814x_hdvicp.xem3 and dm814x_hdvpss.xem3 had been loaded by load_firmware.sh when the board boot up

    the following is the syslog:

    root@dm814x-evm:/usr/share/ti/ti-omx# ./decode_display_a8host_debug.xv5T -i test
    .h264 -w 1920 -h 1080 -f 60 -g 0 -d 0 -c h264
    input file: test.h264
    width: 1920
    height: 1080
    frame_rate: 60
    gfx: fbdev disable
    codec: h264
    display_id: 0
     Decoder-Display example
    ===============================
     OMX_Init completed
     UIAClient is ready to send a UIA configuration command
    UIAClient received UIA_CONFIGURE_ACK
    UIAClient is done sending requests
    UIAClient is ready to send a UIA configuration command
    UIAClient received UIA_CONFIGURE_ACK
    UIAClient is done sending requests
     opening file
     decoder compoenent is created
    PADX: 32 PADY: 24
     level set is 12
     scalar compoenent is created
    set input port params (width = 1920, height = 1080)
    set output port params (width = 1920, height = 1080)
    set number of channels
    set input resolution
    set output resolution
    enable scalar input port
    got eventEnable/Disable Event
    enable scalar output port
    got eventEnable/Disable Event
    found handle 0x13c068 for component OMX.TI.VPSSM3.VFDC
     got display handle
    found handle 0x140070 for component OMX.TI.VPSSM3.CTRL.DC
    Buffer Size computed: 4147200
    set input port params (width = 1920, height = 1080)
    setting input and output memory type to default
    enable input port
    got eventEnable/Disable Event
     connect call for decoder-scalar
      connect call for scalar-display
      decoder inport buffers allocated
      decoder outport buffers allocated
     got eventState changed to: OMX_StateIdle
     decoder state IDLE
      Scalar input port use buffer done
      scalar outport buffers allocated
     got eventState changed to: OMX_StateIdle
     scalar state IDLE
     got eventState changed to: OMX_StateIdle
     ctrl-dc state IDLE
     got eventState changed to: OMX_StateIdle
     display state IDLE
     got eventState changed to: OMX_StateExecuting
     display control state execute
     got eventState changed to: OMX_StateExecuting
     display state execute
     got eventState changed to: OMX_StateExecuting
     scalar state execute
     got eventState changed to: OMX_StateExecuting
     decoder state execute
      file read thread created
      decoder connect thread created
      scalar connect thread created
      display connect thread created
      executing the appliaction now!!!
     No data available for Read
    got eventOMX_EventBufferFlag
    got EOS event
    got eventOMX_EventBufferFlag
    got EOS event
    got eventOMX_EventBufferFlag
    got EOS event
     tearing down the decode-display example
     exiting thread
     exiting thread
     exiting thread
     got eventState changed to: OMX_StateIdle
     decoder state idle
     got eventState changed to: OMX_StateIdle
     Scalar state idle
     got eventState changed to: OMX_StateIdle
     display state idle
     got eventState changed to: OMX_StateIdle
     display control state idle
     got eventState changed to: OMX_StateLoaded
     decoder state loaded
     got eventState changed to: OMX_StateLoaded
     Scalar state loaded
     got eventState changed to: OMX_StateLoaded
     display state loaded
     got eventState changed to: OMX_StateLoaded
     ctrl-dc state loaded
      decoder free handle
     scalar free handle
     display free handle
     ctrl-dc free handle
    IL Client deinitialized
     example exit

    why it say "no data for read"? And the HDMI screen have no reaction,no data input.

    Anywhere should I to modify?

    Best regards,

    Enson

  • Enson,

    I also have the "No data available for Read" console message, but even though, I can successfully play the h264 example on my HDMI monitor, with the following command:

    root@dm814x-evm:/usr/share/ti/ti-omx# ./decode_display_a8host_debug.xv5T -i /usr/share/ti/data/videos/dm816x_1080p_demo.264 -w 1920 -h 1080 -f 60 -g 0 -d 0  -c
    h264

    Can you try with this dm816x_1080p_demo.264 file, instead of the test.h264 file. Do you have any difference?

    Other thing you might try is to change the display from LCD to HDMI. The EZSDK supports multiple displays but by default displays on the LCD. To change the display to HDMI , you can execute the following command. In a similar manner, the display can be changed back to LCD.

    root@dm814x-evm: cd /usr/share/ti/ti-media-controller-utils
    root@dm814x-evm: ./change_display.sh hdmi
    root@dm814x-evm: reboot

    root@dm814x-evm: /etc/init.d/matrix-gui-e stop
    root@dm814x-evm: /etc/init.d/pvr-init stop
    root@dm814x-evm:/usr/share/ti/ti-omx# ./decode_display_a8host_debug.xv5T -i /usr/share/ti/data/videos/dm816x_1080p_demo.264 -w 1920 -h 1080 -f 60 -g 0 -d 0  -c

    h264

    I know you are on IPNC_SDK, and guidelines I provide you are for EZSDK, but it still should be similar.

    Regards,
    Pavel

  • Pavel,

    I have tried change the mode of display,

    root@dm814x-evm: cd /usr/share/ti/ti-media-controller-utils
    root@dm814x-evm: ./change_display.sh hdmi
    root@dm814x-evm: reboot

    But I think It changed nothing.when I reboot the board,it still load the pvrsrvkm.ko bufferclass_ti.ko,

    and I do

    root@dm814x-evm: /etc/init.d/matrix-gui-e stop
    root@dm814x-evm: /etc/init.d/pvr-init stop
    root@dm814x-evm:/usr/share/ti/ti-omx# ./decode_display_a8host_debug.xv5T -i /usr/share/ti/data/videos/dm816x_1080p_demo.264 -w 1920 -h 1080 -f 60 -g 0 -d 0  -c

    h264

    I try many times,only one time,the screen appeared the video 2 seconds.I also try other demos

     root@dm814x-evm:./display_a8host_debug.xv5T -d 0

    It's running status by random,sometimes show the picture,sometimes the screen showed "no data input".

    Is't caused by the memory map?I am very confused.

    Best Regards,

    Enson

  • Enson,

    What is the value of DMM_LISA_MAP_x (x = 0,1,2,3) registers?

    Please check the below link to understand how to generate new mm_dm81xxbm.bin file based on 512M memory map.

    http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map#Heaps_and_Shared_Regions_Configured_at_Load_Time

    Also, can you try with the below settings:

    #define PHYS_DRAM_1                     0x80000000
    #define PHYS_DRAM_1_SIZE            0x10000000
    #define PHYS_DRAM_2                     0x90000000
    #define PHYS_DRAM_2_SIZE            0x10000000

    Regards,
    Pavel

  • Pavel,

    1) DMM_LISA_MAP_0=0x00000000

         DMM_LISA_MAP_1=0x00000000

         DMM_LISA_MAP_2=0x80540300

         DMM_LISA_MAP_3=0xA0540300

    2)I have use the .bin when load the firmware,but it seems to be no help.

    3)I have changed the bootargs,but I don't know what is perfect,what value shoud be give for "mem=" "vram=" "vmalloc=".I have no idea for the function of vmalloc.

       and need the load-firmare.sh to modify? I use the EZSDK_05_05_02.

    4)I tried to 

    #define PHYS_DRAM_1                     0x80000000
    #define PHYS_DRAM_1_SIZE            0x10000000
    #define PHYS_DRAM_2                     0x90000000
    #define PHYS_DRAM_2_SIZE            0x10000000

    the omx demo still not running well.

    I think if use these setting we should modify a lot of other files,the memory map should be modify too.

    I know it is a complex question,but I really need your help.

    Thanks&Regards,

    Enson

  • Enson,

    enson Steven said:

    1) DMM_LISA_MAP_0=0x00000000

         DMM_LISA_MAP_1=0x00000000

         DMM_LISA_MAP_2=0x80540300

         DMM_LISA_MAP_3=0xA0540300

    These are correct settings.

    enson Steven said:
    2)I have use the .bin when load the firmware,but it seems to be no help.

    I do not understand what you mean here. Could you provide more details.

    enson Steven said:

    3)I have changed the bootargs,but I don't know what is perfect,what value shoud be give for "mem=" "vram=" "vmalloc=".I have no idea for the function of vmalloc.

       and need the load-firmare.sh to modify? I use the EZSDK_05_05_02.

    For "mem=", do it with "mem=176M@0x80000000"

    For "vram", do not pass it as boot argument. It is defined later, in the load-hd-firmware.sh script, and we do not have guidelines to change it in the EZSDK memory map wiki

    For "vmalloc", as we do not have guidelines to change it, keep the default value "vmalloc=500M"

    vram is the total framebuffer memory reserved for the Fbdev driver

    vmalloc is explained here: http://processors.wiki.ti.com/index.php/TI81XX_PSP_04.04.00.01_Feature_Performance_Guide#Kernel_Virtual_Memory_Layout

    No, I do not think you should modify anything in load-hd-firmware.sh script for 512MB DDR3 RAM.

    enson Steven said:

    4)I tried to 

    #define PHYS_DRAM_1                     0x80000000
    #define PHYS_DRAM_1_SIZE            0x10000000
    #define PHYS_DRAM_2                     0x90000000
    #define PHYS_DRAM_2_SIZE            0x10000000

    Keep these 0x80000000, 0x10000000, 0xA0000000, 0x10000000

    Also, make sure you are doing steps 2.2 Change Location of Video Frame Buffers and 2.4 Update memory map for Linux side app from http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map#Changing_Memory_Map_For_512MB_DM814x_Board

    Are you planning to use the DSP? If yes, do step 2.3 Update memory map for DSP

    Please provide me full log of your boot-up process.

    Regards,
    Pavel

  • Pavel,

    Now I use this setting

    #define PHYS_DRAM_1                     0x80000000
    #define PHYS_DRAM_1_SIZE            0x20000000
    #define PHYS_DRAM_2                     0xA0000000
    #define PHYS_DRAM_2_SIZE            0x20000000

    The boot-up log is 8463.teraterm.log

    I run the decode_display_a8host_debug.xv5T and display_a8host_debug.xv5T(/usr/share/ti/ti-omx)

    and run the loggerSMDump.out(/usr/share/ti/ti-uia) .

    You can see the running print message.

    In http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map#Changing_Memory_Map_For_512MB_DM814x_Board

    2.3 Update memory map for DSP,It was not clear to modify which files.


    Best Regards,

    Enson