Difference between revisions of "Memory organization (Naon)"

From DAVE Developer's Wiki
Jump to: navigation, search
(Created page with "{{InfoBoxTop}} {{AppliesToNaon}} {{InfoBoxBottom}}")
 
Line 1: Line 1:
 +
 
{{InfoBoxTop}}
 
{{InfoBoxTop}}
 
{{AppliesToNaon}}
 
{{AppliesToNaon}}
 
{{InfoBoxBottom}}
 
{{InfoBoxBottom}}
 +
 +
=== Introduction ===
 +
 +
Memory Map for Naon Module is quite complex, due it's multiprocessor nature.
 +
 +
Before start reading regarding memory map in details, please take a look at generic [http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map EZSDK Memory Map] on Texas Instruments Wiki.
 +
 +
=== RAM Memory Map ===
 +
 +
RAM memory map is the most complex part of this architecture, because the user should allocate the different area used by Cortex-A8 processor (which runs the [[:Category:Linux|Linux]] OS), the two media controller (Cortex-M3, that take care of the whole video processing subsystem) and DSP.
 +
 +
This memory map is statically defined in various places, so the user has a limited options in changing this. Anyway it's useful to know how this memory is shared between the various processors to develop correctly the end-user multimedia application and to know exactly how much memory a processor can use.
 +
 +
Please download the [[File:NELK Memory Map.zip|NELK Memory Map]] spreadsheet to view the memory map. The region are named exactly as in [http://processors.wiki.ti.com/index.php/EZSDK_Memory_Map EZSDK Memory Map]
 +
 +
=== Non-Volatile Memory Map ===
 +
 +
=== User Options ===
 +
 +
Without rebuilding Media Controller Firmware (which needs NDA from TI or Dave support) user can change some memory map parameter on the fly.
 +
 +
==== Change FB size ====
 +
 +
Current LELK support up to 3 Frame Buffers. See [[Frame Buffer Management -Naon-]] for more information regarding NELK Frame Buffers.
 +
 +
User can choose how much of Linux kernel memory give to the frame buffer driver and how to divide this memory into the 3 available frame buffer.
 +
 +
The amount of memory that the kernel reserve to the FB is given by the ''vram'' command line parameter. For more information in how to change kernel command like parameter see [[Change Linux Command Line Parameter from U-boot]]
 +
 +
The amount of memory given away to each frame buffer is described by ''vram'' ti81xxfb's module parameter.
 +
 +
E.g. to use 46MiB of RAM for 3 frame buffer, divided in 24MiB for fb0, 16MiB for fb1 and 6MiB for fb2, use:
 +
* <code>vmem=46M</code> as command line parameter
 +
* <code>modprobe ti81xxfb vram=0:24M,1:16M,2:6M</code> command to load fb module
 +
 +
User that needs more Linux user space memory and needs only one frame buffer, can, for example, use 6MiB of RAM used only by the first FB, so:
 +
* <code>vmem=6M</code> as command line parameter
 +
* <code>modprobe ti81xxfb vram=0:6M</code> command to load fb module
 +
 +
Please note that <code>ti81xxfb</code> is usually loaded at startup from <code>/etc/init.d/load-hd-firmware.sh</code>: user that would like to change the default configuration should change this file.

Revision as of 12:40, 2 May 2012

Info Box
Naon am387x-dm814x.png Applies to Naon

Introduction[edit | edit source]

Memory Map for Naon Module is quite complex, due it's multiprocessor nature.

Before start reading regarding memory map in details, please take a look at generic EZSDK Memory Map on Texas Instruments Wiki.

RAM Memory Map[edit | edit source]

RAM memory map is the most complex part of this architecture, because the user should allocate the different area used by Cortex-A8 processor (which runs the Linux OS), the two media controller (Cortex-M3, that take care of the whole video processing subsystem) and DSP.

This memory map is statically defined in various places, so the user has a limited options in changing this. Anyway it's useful to know how this memory is shared between the various processors to develop correctly the end-user multimedia application and to know exactly how much memory a processor can use.

Please download the NELK Memory Map spreadsheet to view the memory map. The region are named exactly as in EZSDK Memory Map

Non-Volatile Memory Map[edit | edit source]

User Options[edit | edit source]

Without rebuilding Media Controller Firmware (which needs NDA from TI or Dave support) user can change some memory map parameter on the fly.

Change FB size[edit | edit source]

Current LELK support up to 3 Frame Buffers. See Frame Buffer Management -Naon- for more information regarding NELK Frame Buffers.

User can choose how much of Linux kernel memory give to the frame buffer driver and how to divide this memory into the 3 available frame buffer.

The amount of memory that the kernel reserve to the FB is given by the vram command line parameter. For more information in how to change kernel command like parameter see Change Linux Command Line Parameter from U-boot

The amount of memory given away to each frame buffer is described by vram ti81xxfb's module parameter.

E.g. to use 46MiB of RAM for 3 frame buffer, divided in 24MiB for fb0, 16MiB for fb1 and 6MiB for fb2, use:

  • vmem=46M as command line parameter
  • modprobe ti81xxfb vram=0:24M,1:16M,2:6M command to load fb module

User that needs more Linux user space memory and needs only one frame buffer, can, for example, use 6MiB of RAM used only by the first FB, so:

  • vmem=6M as command line parameter
  • modprobe ti81xxfb vram=0:6M command to load fb module

Please note that ti81xxfb is usually loaded at startup from /etc/init.d/load-hd-firmware.sh: user that would like to change the default configuration should change this file.