max min
Simics Reference Manual  /  3 Commands  /  3.2 Command List  / 

memory-map

Synopsis

memory-map [object] ["class"] ["interface"] [-r|-w|-x] [-recurse|-local] [max-regions] ([ exclude ... ] | list of exclude) [start] [end] ["substr"] [-add-atoms]

Description

Displays the physical memory map for a processor or a translator (e.g. a memory-space). The map of the currently selected frontend processor is shown, unless the object argument selects another processor or a specific translator in the system.

The interface, class and exclude arguments can be used to filter the output, only including objects of a certain class, or implementing a certain interface. The exclude argument is a list holding objects and/or classes to filter out.

Example excluding RAM objects, memory spaces and object board.foo:
memory-map object = board.phys_mem exclude = ram memory-space board.foo
or with the list syntax:
memory-map object = board.phys_mem exclude = ["ram", "memory-space", board.foo]

If the optional substr argument is specified, only objects with a name matching this sub-string will be printed. The current namespace part of the object name will not be included in the name matched against.

If possible, the memory map will be probed using 'rwx' access mode. Otherwise, the mode specified by either of the -r, -w or -x flags is used, default is -r.

The command can probe the memory map recursively, or it can show the local map only. This can be controlled using the flags -recurse and -local. The default behavior of the non-namespaced version of this command is to probe recursively, while the default behaviour of the namespaced version is to probe the local memory map only.

Transaction atoms can be used for routing rules and access rights in a platform. The -add-atoms flag opens up the capability to set transaction atoms on the command line: once the flag is set the command accepts additional arguments that have names starting with ATOM_ prefix. Tab complete after setting the -add-atoms flag to see the available atoms. These arguments are used by the command to pass in atom values to the translators it passes through during the transaction probing.

Please note that the ATOM_... arguments can be used only to specify values for transaction atoms that have integer values and provide Python wrappings. Complex atoms such as pointers and structures are not available from CLI.

The output table minimally shows these columns:
- Start and End are the start and the end of the mapping
- Device is the destination device

Optional columns, which are shown when required, are:
- Offset is the offset in the destination device
- Access is the access type for which the entry is valid
- Fn is the (deprecated) function number for the entry
- Target is the default target of the entry, which is used when device is a translator. This can only occur if -local was used or the command ended prematurely

Argument max-regions can be used to increase the number of rows presented. Default is a maximum of 256 rows.

Arguments start and end can be used to view a subrange of the memory map. The subrange spans [start, end).

When the command is used in an expression, a list is returned with entries describing individual mappings. Each entry describing an individual mapping is a list in the form [start, end, device, offset, access].

The list items are:
- start and end are the start and the end of the mapping
- device is the destination device
- offset is the offset in the destination device
- access is the bitmap of the access_t values showing for which access types the entry is valid.

Please note that the list describing an individual mapping may grow in future Simics versions, but the currently defined fields will not change.

Please note that the command can in some cases take a long time to execute. Long execution times happen when there is a high occurrence of small map segments in a platform. The memory-map command has to iterate over all these segments.

Provided By

Simics Core

See Also

probe-address
max min