dm8127 記憶體分配和管理機制

smilestone322發表於2015-05-12

摘自:Memory Map in DM81xx IPNC RDK


1.Memory Sections in IPNC RDK Memory Map
IPNC RDK has multiple memory map configurations supported based on the usage scenarios and available total memory on the platform. The total system memory is divided

into various sub-systems/processors. The broad classification of the sections is listed below:

1.1)Linux Memory – Single memory partition given to linux kernel memory manager
1.2)CMEM Memory – Contiguous memory block on A8 for streaming.
1.3)Shared Regions – Different memory partitions that are shared across processors;

Bitstream Buffer (SR1) – Shared Region 1. This shared region is meant to receive encoded bitstream from Video M3 processor to A8 processor, send bitstream from A8 to

Video M3 for decoding and for sharing the buffers between A8 and DSP for Scene Change Detection algorithm results. This region is cached on A8.

Frame Buffer (SR2) – Shared Region 2. This shared region is used for allocating frame buffers for capturing video data, scaling, displaying video frames. The shared

region is accessible from A8, Video M3, VPSS M3 and DSP. This is non-tiled region.


IPC MessageQ / ListMP (SR0) – Shared Region 0. This shared region is used to allocate memory for datastructures needed for interprocessor communication. This shared

region is not cached on any of the processor cores.

IPC ListMP for M3 (InterDucati) (SR3) – Shared Region 3. This shared region is currently not used but has been left in the memory map so that it can easily be used

for M3-only IPC usage.

Slave Code and Data Section Memory
o Video M3 Data Section – Partition for data section of Video M3 executable binary
o Video M3 Code Section – Partition for code section of Video M3 executable binary
o VPSS M3 Data Section – Partition for data section of VPSS M3 executable binary
o VPSS M3 Code Section – Partition for code section of VPSS M3 executable binary
o DSP Data Section – Partition for data section of DSP executable binary
o DSP Code Section – Partition for code section of DSP executable binary

Remote Debug Memory – Memory section reserved and accessible from all processor cores to dump the debug print messages. Each processor core uses VPS_printf() to dump

the debug messages on this memory region. Remote Debug Client running on A8 reads this memory region and prints the content on the (UART) console.

從vpssM3,videoM3,dsp的日誌如何傳遞到A8,寫入檔案,這裡提供一種方法,修改Vps_printf()函式,將日誌寫入到Remote Debug Memory,從A8去讀這個日誌;

另外一種方式就是在A8建立一個link,使用System_link_control將各個核的日誌資訊傳遞到A8;

VPDMA Descriptors Memory – Memory section used by VPSS M3 processor core. It is used by HDVPSS driver for its internal descriptor data structure.


注意:
Frame Buffer Shared Region (SR2) is not mapped on A8 as it would take up lot of kernel virtual memory. User need to mmap the physical address in the application code

to map the SR2 buffers on A8. This is needed for getting the frame buffers on A8 using IPCFramesOut/In link.

 

How To – Modify the Memory Map


How to Change Memory Section Sizes for Additional Linux Memory

 

相關文章