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.

How to modify the AMMU address in DM8168 DVRRDK

Other Parts Discussed in Thread: SYSBIOS

I have modified the config2G.bld in DM8168 DVRRDK, and also modified some address in M3.

Now I need to modify the  AMMU address, but I do not know how to modify them.

Such as:

    AMMU.largePages[3].pageEnabled = AMMU.Enable_YES;
    AMMU.largePages[3].logicalAddress = 0x20000000;
    AMMU.largePages[3].translatedAddress = 0x80000000;
    AMMU.largePages[3].translationEnabled = AMMU.Enable_YES;
    AMMU.largePages[3].size = AMMU.Large_512M;
    AMMU.largePages[3].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
    AMMU.largePages[3].L1_posted = AMMU.PostedPolicy_POSTED;
    AMMU.largePages[3].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
    AMMU.largePages[3].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
    AMMU.largePages[3].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
    AMMU.largePages[3].L2_posted = AMMU.PostedPolicy_NON_POSTED;

What do them(logicalAddress and translatedAddress ) mean?

Could TI friends give me some links about them? Thanks.

  • Modifying memory map has lot of constraints. Pls explain what you want to achieve and why you cannot use the 2G memory map that is part of DVR RDK as is . For AMMU documentation you can refer the sysbios API guide under

    ti_tools\bios\bios_6_xx_xx_xx\docs\bios6.chm See module ti.sysbios.hal.ammu.AMMU module API documentation

  • I want to increase the SR1 and SR2 memory(but the memory address could not be after 0xC0000000, so I will adjust it before  0xC0000000), and delete the SR3_FRAME_BUFFER_EXTRA_ADDR to increase  Linux memory, completing some specified functions in our products.

    Meanwhile Linux memory address starts from 0xD0000000, and tiler memory starts from 0xC0000000.

    Of course, I also want to understand the memory map of DM8168 in deep, which would to be used for some custom products.

    After the modification, the running result is OK, but there are some errors in the log as follows:

    Attached to slave procId 2.
    Loaded file ../firmware/dvr_rdk_BUG: Your driver calls ioremap() on system memory.  This leads
    to architecturally unpredictable behaviour on ARMv6+, and ioremap()
    will fail in the next kernel release.  Please fix your driver.
    fw_m3vpss.xem3 o------------[ cut here ]------------
    n slave procId 2WARNING: at arch/arm/mm/ioremap.c:211 __arm_ioremap_pfn_caller+0x58/0x190()
    .
    Started slaveModules linked in: procId 2.
     syslink
    Backtrace:
    [<c0049bdc>] (dump_backtrace+0x0/0x110) from [<c03c597c>] (dump_stack+0x18/0x1c)
     r7:00000000 r6:c004d78c r5:c0493423 r4:000000d3
    [<c03c5964>] (dump_stack+0x0/0x1c) from [<c006d1c8>] (warn_slowpath_common+0x54/0x6c)
    [<c006d174>] (warn_slowpath_common+0x0/0x6c) from [<c006d204>] (warn_slowpath_null+0x24/0x2c)
     r9:00000002 r8:00000000 r7:bf036094 r6:00088000 r5:15080000
    r4:00000002
    [<c006d1e0>] (warn_slowpath_null+0x0/0x2c) from [<c004d78c>] (__arm_ioremap_pfn_caller+0x58/0x190)
    [<c004d734>] (__arm_ioremap_pfn_caller+0x0/0x190) from [<c004d948>] (__arm_ioremap_caller+0x64/0x6c)
    [<c004d8e4>] (__arm_ioremap_caller+0x0/0x6c) from [<c005fdbc>] (omap_ioremap+0x60/0x64)
     r6:00000002 r5:15080000 r4:88000000
    [<c005fd5c>] (omap_ioremap+0x0/0x64) from [<bf036094>] (MemoryOS_map+0x1f0/0x3a8 [syslink])
     r7:cdfd1e28 r6:00000001 r5:cdfd1d48 r4:d0891000
    [<bf035ea4>] (MemoryOS_map+0x0/0x3a8 [syslink]) from [<bf004594>] (_ProcMgr_map+0x1cc/0x4ac [syslink])
     r8:cdfd1e28 r7:cdfd1e28 r6:00000001 r5:d302e000 r4:d0abb000
    [<bf0043c8>] (_ProcMgr_map+0x0/0x4ac [syslink]) from [<bf004990>] (ProcMgr_map+0x11c/0x1b4 [syslink])
    [<bf004874>] (ProcMgr_map+0x0/0x1b4 [syslink]) from [<bf019954>] (Platform_loadCallback+0x4a0/0x7a0 [syslink])
    [<bf0194b4>] (Platform_loadCallback+0x0/0x7a0 [syslink]) from [<bf04d42c>] (Ipc_control+0x68/0x14c [syslink])
    [<bf04d3c4>] (Ipc_control+0x0/0x14c [syslink]) from [<bf086958>] (IpcDrv_drvioctl+0x68/0x298 [syslink])
     r7:00000004 r6:bf0facd0 r5:c014f497 r4:bee40adc
    [<bf0868f0>] (IpcDrv_drvioctl+0x0/0x298 [syslink]) from [<c00d27e8>] (vfs_ioctl+0x28/0x44)
     r6:00000004 r5:cd007a80 r4:00000000
    [<c00d27c0>] (vfs_ioctl+0x0/0x44) from [<c00d2ef8>] (do_vfs_ioctl+0x500/0x540)
    [<c00d29f8>] (do_vfs_ioctl+0x0/0x540) from [<c00d2f90>] (sys_ioctl+0x58/0x7c)
    [<c00d2f38>] (sys_ioctl+0x0/0x7c) from [<c0045e00>] (ret_fast_syscall+0x0/0x30)
     r8:c0045fa8 r7:00000036 r6:0007e2b4 r5:c014f497 r4:bee40adc
    ---[ end trace 2f79170ab92a8908 ]---
     [m3vpss ] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 280000000
     [m3vpss ] notify_attach  rtnVal  0
     [m3vpss ] initProxyServer  rtnVal  0
     [m3vpss ] 
     [m3vpss ]  *** UTILS: CPU KHz = 560000 Khz ***
     [m3vpss ] 
     [m3vpss ]  210: SYSTEM  : System Common Init in progress !!!
     [m3vpss ]  210: SYSTEM: IPC init in progress !!!
     [m3vpss ]  210: SYSTEM: Attaching to [HOST] ...
    After Ipc_loadcallback status [0x00000000]
     [m3vpss ]  1209: SYSTEM: Attaching to [HOST] ...
     [m3vpss ]  1212: SYSTEM: Attaching to [HOST] ... SUCCESS !!!
     [m3vpss ]  1212: SYSTEM: Attaching to [DSP] ...
    After Ipc_startcallback status [0x097d2000]
    Attached to slave procId 1.
    Loaded file ../firmware/dvr_rdk_fw_m3video.xem3 on slave procId 1.
    Started slave procId 1.
    After Ipc_loadcallback status [0x00000000]
     [m3video] ***** SYSTEM  : Frequency <ORG> - 250000000, <NEW> - 280000000
     [m3vpss ]  2211: SYSTEM: Attaching to [DSP] ...
     [m3video] 
     [m3video]  *** UTILS: CPU KHz = 560000 Khz ***

    Now I want to know what cause the errors, and doubt that the memory modification has some errors.

     

     

     

  • The warning indicates SharedRegion physical address is overlapping memory allocated to Linux which means you have built kernel for wrong base address or wrong mem= configuration. Share you map file.I don't see any need to increase SR1/SR2. If more memory is required it will automatically allocate from SR3_FRAME_BUFFER_EXTRA_ADDR so the change you are doing is not needed. If you want to increase Linux size just reduce size of SR3_FRAME_BUFFER_EXTRA_ADDR

  • Thanks for the useful help.

    The main problem would not be in the Config2G.bld. The modification would not cause this error.

    According to the document "TI81XX PSP VPSS Video Driver User Guide", the reason causing the problem may be in the PSP, such as "kernel for wrong base address or wrong mem= configuration",as you said.

    The error would be raised in transferring the demo to our boards. Our development takes us for long time, most of our codes transferred to DVR_RDK4.0, except display drivers and linux Kernal. Especially, our linux kernal comes from DVR_RDK3.0,and many drivers are modified.

    the document "TI81XX PSP VPSS Video Driver User Guide" says:"The addresses of notifyk.vpssm3_sva and vpss.sbufaddr mentioned in this userguide apply only to the M3 firmware inside PSP package"

    I modified the uboot entry point and load address. Do notifyk.vpssm3_sva and vpss.sbufaddr need to modified, and others need to be rebuilt? and how could I do? Moreover, when I executed "./slaveloader startup VPSS-M3 ti816x_hdvpss.xem3", I didn't find the file ti816x_hdvpss.xem3.

  • If you require support on this issue please provide the following info previously requested:

    1. Attach the map file. It will be present under /dvr_rdk/build/dvr_rdk/bin/ti816x-evm and have extension *.map

    2. Attach env_*.sh. It will be present on your target file system under /opt/dvr_rdk/ti816x/ folder

    3. Attach console logs from output of following commands that should be executed on the target before running init.sh

      cat /proc/cmdline

      cat /proc/iomem

    4. If you have done any modification to AMMU configuration,attach the file.

     

     

  • Thanks, I have solved the problem.