Hello,
I want to reserve 64M memory for display DMA data transfer. We modified the keystone-k2g-evm.dts like this:
/ {
compatible = "ti,k2g-evm", "ti,k2g", "ti,keystone";
model = "UCS SR 302";
memory@800000000 {
device_type = "memory";
reg = <0x00000008 0x00000000 0x00000000 0x40000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
dsp_common_mpm_memory: dsp-common-mpm-memory@81d000000 {
compatible = "ti,keystone-dsp-mem-pool";
reg = <0x00000008 0x1d000000 0x00000000 0x2800000>;
no-map;
status = "okay";
};
dsp_common_memory: dsp-common-memory@81f800000 {
compatible = "shared-dma-pool";
reg = <0x00000008 0x1f800000 0x00000000 0x800000>;
reusable;
status = "okay";
};
display_reserved: framebuffer@820000000 {
reg = <0x00000008 0x20000000 0x00000000 0x04000000>;
status = "okay";
};
};
I set the reserved display DMA memory starting from 0x82000,0000 for 0x4000000 size (64M)
I am wondering if my "display_reserved" in dts correct? is this address suitable for DMA?
Also, how does the Linux OS know it can not use memory from addresses higher than 0x82000 0000?
I heard one solution is to use the memmap kernel argument like "memmap=64M$0x820000000 " ,
I am wondering which file I should update? or is it necessary to use "memmap" kernel argument at all?
Tom