Tool: mp_dma2objdump

Overview

The mp_dma2objdump tool provides an interface to disassemble raw DMA files. DMA file format is a simple format that specifies contents for each address of memory. E.g. each line of the file contains D <address> <contents>. This format is used during early stages of bring-up and characterization to set up the contents of the processors cache directly, without requiring a fully operational system.

Basic usage

> mp_dma2objdump -T TARGET -i INPUT_DMA_FILE > OBJDUMP_FILE

where:

Flag/Argument Description
-T TARGET, --target TARGET Target definition string. Check: Command line target definition scheme.
-i INPUT_DMA_FILE, --input-dma-file INPUT_BIN_FILE Input DMA file.

Full usage

usage: mp_dma2objdump.py [-h] [-P SEARCH_PATH [SEARCH_PATH ...]] [-V] [-v]
                         [-d] [-c CONFIG_FILE [CONFIG_FILE ...]]
                         [-C FORCE_CONFIG_FILE]
                         [--dump-configuration-file OUTPUT_CONFIG_FILE]
                         [--dump-full-configuration-file OUTPUT_CONFIG_FILE]
                         [-A ARCHITECTURE_PATHS] [-M MICROARCHITECTURE_PATHS]
                         [-E ENVIRONMENT_PATHS] -T TARGET
                         [--list-architectures] [--list-microarchitectures]
                         [--list-environments] [--traceback]
                         [--profile PROFILE_OUTPUT] -i INPUT_DMA_FILE
                         [-w WIDTH_BYTES] [-s]

Microprobe DMA to Objdump tool

optional arguments:
  -h, --help            show this help message and exit
  -P SEARCH_PATH [SEARCH_PATH ...], --default_paths SEARCH_PATH [SEARCH_PATH ...]
                        Default search paths for microprobe target definitions
  -V, --version         Show Microprobe version and exit
  -v, --verbosity       Verbosity level (Values: [0,1,2,3,4]). Each time this
                        argument is specified the verbosity level is
                        increased. By default, no logging messages are shown.
                        These are the four levels available:
                        
                          -v (1): critical messages
                          -v -v (2): critical and error messages
                          -v -v -v (3): critical, error and warning messages
                          -v -v -v -v (4): critical, error, warning and info messages
                        
                        Specifying more than four verbosity flags, will
                        default to the maximum of four. If you need extra
                        information, enable the debug mode (--debug or -d
                        flags).
  -d, --debug           Enable debug mode in Microprobe framework. Lots of
                        output messages will be generated

Configuration arguments:

  Command arguments related to configuration file handling

  -c CONFIG_FILE [CONFIG_FILE ...], --configuration CONFIG_FILE [CONFIG_FILE ...]
                        Configuration file. The configuration files will be
                        readed in order of appearance. Values are reset by the
                        last configuration file in case of non-list values.
                        List values will be appended (not reset)
  -C FORCE_CONFIG_FILE, --force-configuration FORCE_CONFIG_FILE
                        Force configuration file. Use this configuration file
                        as the default start configuration. This disables any
                        system-wide, or user-provided configuration.
  --dump-configuration-file OUTPUT_CONFIG_FILE
                        Dump a configuration file with the actual
                        configuration used
  --dump-full-configuration-file OUTPUT_CONFIG_FILE
                        Dump a configuration file with the actual
                        configuration used plus all the configuration options
                        not set

Target path arguments:

  Command arguments related to target paths

  -A ARCHITECTURE_PATHS, --architecture-paths ARCHITECTURE_PATHS
                        Search path for architecture definitions. Microprobe
                        will search in these paths for architecture
                        definitions
  -M MICROARCHITECTURE_PATHS, --microarchitecture-paths MICROARCHITECTURE_PATHS
                        Search path for microarchitecture definitions.
                        Microprobe will search in these paths for
                        microarchitecture definitions
  -E ENVIRONMENT_PATHS, --environment-paths ENVIRONMENT_PATHS
                        Search path for environment definitions. Microprobe
                        will search in these paths for environment definitions

Target arguments:

  Command arguments related to target specification and queries

  -T TARGET, --target TARGET
                        Target tuple. Microprobe follows a GCC-like target
                        definition scheme, where a target is defined by a
                        tuple as following:
                        
                          <arch-name>-<uarch-name>-<env-name>
                        
                        where:
                        
                          <arch-name>: is the name of the architecture
                          <uarch-name>: is the name of the microarchitecture
                          <env-name>: is the name of the environment
                        
                        One can use --list-* options to get the list of
                        definitions available in the default search paths or
                        the paths specified by the different --*-paths options
  --list-architectures  Generate a list of architectures available in the
                        defined search paths and exit
  --list-microarchitectures
                        Generate a list of microarchitectures available in the
                        defined search paths and exit
  --list-environments   Generate a list of environments available in the
                        defined search paths and exit

Debug arguments:

  Command arguments related to debugging facilities

  --traceback           show a traceback and starts a python debugger (pdb)
                        when an error occurs. 'pdb' is an interactive python
                        shell that facilitates the debugging of errors
  --profile PROFILE_OUTPUT
                        dump profiling information into given file (see
                        'pstats' module)

DMA to Objdump arguments:

  Command arguments related to DMA to Objdump tool

  -i INPUT_DMA_FILE, --input-dma-file INPUT_DMA_FILE
                        DMA file to process
  -w WIDTH_BYTES, --width-bytes WIDTH_BYTES
                        Maximum data width in bytes
  -s, --strict          Do not allow unrecognized binary

Environment variables:

  MICROPROBETEMPLATES    Default path for microprobe templates
  MICROPROBEDEBUG        If set, enable debug
  MICROPROBEDEBUGPASSES  If set, enable debug during passes
  MICROPROBEASMHEXFMT    Assembly hexadecimal format. Options:
                         'all' -> All immediates in hex format
                         'address' -> Address immediates in hex format (default)
                         'none' -> All immediate in integer format