Tool/software: Linux
Dear Champs,
My customer tried to build lad example of IPC, and they found heapMem size would be double and want to know why double size memory was allocated.
Could you please check this?
They modified DSP1.cfg file as below.
heapMemParams.size = 0x02400000;
heapMemParams.sectionName = "EXT_CODE"
and then, they found double memory size(0x04800000) was allocated as below, and faced lack of memory.
error: program will not fit into available memory. run placement with
alignment fails for section "EXT_CODE" size 0x4800000 . Available memory
ranges:
L2SRAM size: 0x40000 unused: 0x40000 max hole: 0x40000
OCMC_RAM1 size: 0x80000 unused: 0x80000 max hole: 0x80000
OCMC_RAM2 size: 0x100000 unused: 0x100000 max hole: 0x100000
OCMC_RAM3 size: 0x100000 unused: 0xfda80 max hole: 0xfda80
EXT_CODE size: 0x4500000 unused: 0x4424566 max hole: 0x4423f60
EXT_DATA size: 0x200000 unused: 0x1ec98e max hole: 0x1ebe00
EXT_HEAP size: 0x200000 unused: 0x200000 max hole: 0x200000
TRACE_BUF size: 0x60000 unused: 0x4fffc max hole: 0x4fffc
EXC_DATA size: 0x10000 unused: 0x10000 max hole: 0x10000
PM_DATA size: 0x20000 unused: 0x20000 max hole: 0x20000
error: errors encountered during linking; "bin/release/server_dsp1.xe66" not built
Their configuration in dtsi file is as below, and dtsi file was attached.
memory@0 {
device_type = "memory";
reg = <0x0 0x80000000 0x0 0x80000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
ipu2_cma_pool: ipu2_cma@95800000 {
compatible = "shared-dma-pool";
reg = <0x0 0x95800000 0x0 0x3800000>;
reusable;
status = "okay";
};
dsp1_cma_pool: dsp1_cma@99000000 {
compatible = "shared-dma-pool";
reg = <0x0 0x99000000 0x0 0x4000000>;
reusable;
status = "okay";
};
ipu1_cma_pool: ipu1_cma@9d000000 {
compatible = "shared-dma-pool";
reg = <0x0 0x9d000000 0x0 0x2000000>;
reusable;
status = "okay";
};
dsp2_cma_pool: dsp2_cma@9f000000 {
compatible = "shared-dma-pool";
reg = <0x0 0x9f000000 0x0 0x800000>;
reusable;
status = "okay";
};
};
Thanks and Best Regards,
SI.