metaonly interface ti.catalog.c6000.IOMAP2x3x

An interface implemented by all OMAP2x3x devices

This interface is defined to factor common data about all OMAP2x3x devices into a single place; they all have the same internal memory.
XDCspec summary sourced in ti/catalog/c6000/IOMAP2x3x.xdc
metaonly interface IOMAP2x3x {  ...
    // inherits xdc.platform.ICpuDataSheet
instance:  ...
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
package ti.catalog.c6000;
 
metaonly interface IOMAP2x3x inherits ICpuDataSheet {
module-wide config parameters
    readonly config ICacheInfo.CacheDesc cacheMap// [string] = [
        [
            'l1PMode',
            {
                desc: "L1P Cache",
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L1PSRAM"
            }
        ],
        [
            'l1DMode',
            {
                desc: "L1D Cache",
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "4k",
                        0x1000
                    ],
                    [
                        "8k",
                        0x2000
                    ],
                    [
                        "16k",
                        0x4000
                    ],
                    [
                        "32k",
                        0x8000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "L1DSRAM"
            }
        ],
        [
            'l2Mode',
            {
                desc: "L2 Cache",
                map: [
                    [
                        "0k",
                        0x0000
                    ],
                    [
                        "32k",
                        0x8000
                    ],
                    [
                        "64k",
                        0x10000
                    ]
                ],
                defaultValue: "0k",
                memorySection: "IRAM"
            }
        ]
    ];
 
    config Long cacheSizeL1// [string] = [
        [
            "0k",
            0x0000
        ],
        [
            "4k",
            0x1000
        ],
        [
            "8k",
            0x2000
        ],
        [
            "16k",
            0x4000
        ],
        [
            "32k",
            0x8000
        ]
    ];
    config Long cacheSizeL2// [string] = [
        [
            "0k",
            0x00000
        ],
        [
            "32k",
            0x08000
        ],
        [
            "64k",
            0x10000
        ]
    ];
 
 
instance:
per-instance config parameters
    override config String cpuCore// A string identifying the CPU Core = "64x+";
    config IPlatform.Memory memMap// [string] = [
        [
            "IRAM",
            {
                comment: "Internal 64KB L2 UMAP0 memory",
                name: "IRAM",
                base: 0x10800000,
                len: 0x00010000,
                space: "code/data",
                access: "RWX"
            }
        ],
        [
            "L1PSRAM",
            {
                comment: "Internal 32KB L1 program memory",
                name: "L1PSRAM",
                base: 0x10E00000,
                len: 0x00008000,
                space: "code",
                access: "RWX"
            }
        ],
        [
            "L1DSRAM",
            {
                comment: "Internal 80KB L1 data memory",
                name: "L1DSRAM",
                base: 0x10F04000,
                len: 0x00014000,
                space: "data",
                access: "RW"
            }
        ]
    ];
per-instance creation
    create// Create an instance-object( String revision );
per-instance functions
}
 
config IOMAP2x3x.cacheMap  // module-wide
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
readonly config ICacheInfo.CacheDesc cacheMap[string] = [
    [
        'l1PMode',
        {
            desc: "L1P Cache",
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L1PSRAM"
        }
    ],
    [
        'l1DMode',
        {
            desc: "L1D Cache",
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "4k",
                    0x1000
                ],
                [
                    "8k",
                    0x2000
                ],
                [
                    "16k",
                    0x4000
                ],
                [
                    "32k",
                    0x8000
                ]
            ],
            defaultValue: "0k",
            memorySection: "L1DSRAM"
        }
    ],
    [
        'l2Mode',
        {
            desc: "L2 Cache",
            map: [
                [
                    "0k",
                    0x0000
                ],
                [
                    "32k",
                    0x8000
                ],
                [
                    "64k",
                    0x10000
                ]
            ],
            defaultValue: "0k",
            memorySection: "IRAM"
        }
    ]
];
 
 
config IOMAP2x3x.cacheSizeL1  // module-wide
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config Long cacheSizeL1[string] = [
    [
        "0k",
        0x0000
    ],
    [
        "4k",
        0x1000
    ],
    [
        "8k",
        0x2000
    ],
    [
        "16k",
        0x4000
    ],
    [
        "32k",
        0x8000
    ]
];
 
 
config IOMAP2x3x.cacheSizeL2  // module-wide
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config Long cacheSizeL2[string] = [
    [
        "0k",
        0x00000
    ],
    [
        "32k",
        0x08000
    ],
    [
        "64k",
        0x10000
    ]
];
 
 
per-instance config parameters

XDCscript usage meta-domain
var params = new IOMAP2x3x.Params;
// Instance config-params object
    params.cpuCore = String "64x+";
    // A string identifying the CPU Core
    params.cpuCoreRevision = String undefined;
    // A string that uniquely identifies a revision of the core
    params.dataWordSize = Int 4;
    // The size of an int on the target in 8-bit bytes
    params.isa = String "64P";
    // 
    params.memMap = IPlatform.Memory[string] [
    // 
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
    params.minDataUnitSize = Int 1;
    // The minimum addressable data unit size in 8-bit bytes
    params.minProgUnitSize = Int 1;
    // The minimum addressable program unit size in 8-bit bytes
 
config IOMAP2x3x.cpuCore  // per-instance

A string identifying the CPU Core

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config String cpuCore = "64x+";
 
DETAILS
This uniquely identifies the instruction set that the CPU can decode and execute.
 
config IOMAP2x3x.cpuCoreRevision  // per-instance

A string that uniquely identifies a revision of the core

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config String cpuCoreRevision;
 
 
config IOMAP2x3x.dataWordSize  // per-instance

The size of an int on the target in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config Int dataWordSize = 4;
 
 
config IOMAP2x3x.memMap  // per-instance
XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
config IPlatform.Memory memMap[string] = [
    [
        "IRAM",
        {
            comment: "Internal 64KB L2 UMAP0 memory",
            name: "IRAM",
            base: 0x10800000,
            len: 0x00010000,
            space: "code/data",
            access: "RWX"
        }
    ],
    [
        "L1PSRAM",
        {
            comment: "Internal 32KB L1 program memory",
            name: "L1PSRAM",
            base: 0x10E00000,
            len: 0x00008000,
            space: "code",
            access: "RWX"
        }
    ],
    [
        "L1DSRAM",
        {
            comment: "Internal 80KB L1 data memory",
            name: "L1DSRAM",
            base: 0x10F04000,
            len: 0x00014000,
            space: "data",
            access: "RW"
        }
    ]
];
 
 
config IOMAP2x3x.minDataUnitSize  // per-instance

The minimum addressable data unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config Int minDataUnitSize = 1;
 
 
config IOMAP2x3x.minProgUnitSize  // per-instance

The minimum addressable program unit size in 8-bit bytes

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
override config Int minProgUnitSize = 1;
 
 
per-instance creation

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
create( String revision );
// Create an instance-object
ARGUMENTS
revision — a string that identifies revision of the CPU to be created.
DETAILS
A "data sheet" for a CPU allows one to get specific attributes for a CPU programatically; e.g., the memory map of the CPU.
Notice that we don't specify CPU registers when we create a a data-sheet; registers are provided as necessary to the other functions defined in this interface. This allows one to more easily get memory maps for several different setting of the registers, for example.
 
IOMAP2x3x.getMemoryMap( )  // per-instance

Get the memory map that corresponds to the values of the specified registers

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
function getMemoryMap( registers );
 
ARGUMENTS
registers — a hash of named registers to values at the time an executable is to be loaded (for example)
DETAILS
If a register is not specified and this register can affect the memory map, the register is assumed to be set to its reset value (the value of the register immediately after a CPU reset).
RETURNS
Returns an array of xdc.platform.IPlatform.Memory objects that represent the memory visible to an executable running on the CPU.
 
IOMAP2x3x.getRegisterSet( )  // per-instance

The set of valid register names for this CPU

XDCspec declarations sourced in ti/catalog/c6000/IOMAP2x3x.xdc
function getRegisterSet( );
 
DETAILS
This function returns the complete set of register names that may be passed to the getMemoryMap() function. This function is only used to enable one to write a "requires contract" for the getMemoryMap() function.
RETURNS
Returns an array of valid register names (strings) for this device; only names from this array are valid keys for the registers argument to getMemoryMap().
generated on Sat, 01 Aug 2009 01:24:42 GMT