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.

IPNC RDK 256M Memory Map

We're using the IPNC RDK 3.50 on DM8127.  We're using the 256M memory map, but I noticed that if I change config_256M.bld:

-var DDR3_SIZE                = 1 * GB;
+var DDR3_SIZE                = 256 * MB;

To match our real board's DDR size, I get a compilation failure:

making package.mak (because of package.bld) ...
 ###
 ### Total DDR usage in MB = 256 MB ###
 ###
Generation of Shell script in progress...
Generation of Shell script in completed...
generating interfaces for package ipnc_rdk_configuro (because package/package.xdc.inc is older than package.xdc) ...
configuring MAIN_APP_m3vpss.xem3 from package/cfg/MAIN_APP_m3vpss_pem3.cfg ...
error: ti.platforms.evmTI814X.Platform: "/opt/dm8127/Source/ti_tools/xdctools_3_24_03_33/packages/xdc/platform/Utils.xs", line 365: ti.platforms.evmTI814X.Platform.Instance#0/customMemoryMap/'SR1' : Memory object SR1 does not fit into any physical memory bank.
js: "/opt/dm8127/Source/ti_tools/xdctools_3_24_03_33/packages/xdc/cfg/Main.xs", line 149: Error: Configuration failed!
gmake: *** [package/cfg/MAIN_APP_m3vpss_pem3.xdl] Error 1
js: "/opt/dm8127/Source/ti_tools/xdctools_3_24_03_33/packages/xdc/tools/Cmdr.xs", line 51: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
make[2]: *** [xdc_configuro] Error 1

I've poked around in the xdc source code, and the failure occurs in:

function checkFit(realMemMap, customMemMap, mod)

called from assembleMemoryMap:

    var map = new xdc.om['xdc.platform.IPlatform'].MemoryMap();

    /* Many platforms still allow passing instance creation arguments in the
     * second, deprecated parameter of the create() call, instead of leaving
     * it empty and using the structure 'params', which is the third parameter
     * of the create call. For such platform, we pass the content of the
     * deprecated parameter to the catalog modules.
     * If there are arguments that are not config parameters, we check for
     * them and remove them in the generated config script. However, that
     * works only for arguments coming from config.bld. If create() happens
     * inside a schema, for example in Platform Wizard created platforms,
     * that check is bypassed. We should move check here.
     */   
    if (plat.$private != undefined && plat.$private.args != undefined) {
        map.$self = cpu.attrs.getMemoryMap(plat.$private.args);
    }
    else {
        map.$self = cpu.attrs.getMemoryMap(plat);
    }

and eventually:

   this.checkFit(map, plat.customMemoryMap, plat.$module);

Where is the map variable (eventually realMemMap) popluated from?  Where do I find this "real" memory map?

Is there any danger in having the DDR3_SIZE = 1GB even though our board physically has 256MB?  I don't feel comfortable with this lie.

Thanks.

  • Hello,

    I am not an IPNC expert but you check compare again the changes which you have made for 256MB as described in the user guide. I will notify the IPNC team to help here also. 

    Best Regards,

    Margarita

  • Margarita Gashova said:
    check compare again the changes which you have made for 256MB as described in the user guide

    I'm not sure what you're referring to here.  If you are talking about IPNC_RDK_MemoryMapAnalysis.pdf then it doesn't mention anything about the variable in question.

    My question concerns the variable DDR3_SIZE in config_256M.bld.  There are no other changes to this file.

    DDR3_SIZE does not look correct.  It tells the rest of the software that there is 1GB of DDR3 when there is NOT.  On my board there is only 256MB of memory physically installed.  When I try to correct DDR3_SIZE, I get a compiler error.  Is this expected?

  • Hi Antonelli,

    When you changed the memory configuration as above the firmware is failed to load.

    Please check the links below,

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

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

    Regards,

    Mahesh

  • Mahesha Mahadevappa said:

    When you changed the memory configuration as above the firmware is failed to load.

    Actually, when I changed only DDR3_SIZE it failed to compile.

    Please check the links below,

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

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

    These links have nothing to do with the question I asked.  Please re-read the original post.  I did not change the memory map except for that one line (DDR3_SIZE) to make the error appear.


    Thanks.