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.