| /* --COPYRIGHT--,EPL |
| * Copyright (c) 2008 Texas Instruments and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Texas Instruments - initial implementation |
| * |
| * --/COPYRIGHT--*/ |
| /* |
| * ======== IExeContext.xdc ======== |
| */ |
| package xdc.platform; |
| |
| /*! |
| * ======== IExeContext ======== |
| * Execution environment interface between a platform and an executable |
| * |
| * This interface describes the execution environment provided by a |
| * platform as seen by an executable on a particular CPU at the time |
| * it is loaded. |
| * |
| * Execution contexts are created by platforms via |
| * `{@link xdc.platform.IPlatform#getExeContext()}`. Execution contexts are |
| * created implicitly just prior to executing a program's configuration |
| * script. This execution context is made available to the configuration |
| * script as the global read-only `Program.cpu` configuration parameter; |
| * see `{@link xdc.cfg.Program}`. |
| */ |
| metaonly interface IExeContext |
| { |
| /*! |
| * ======== Cpu ======== |
| * CPU attributes necessary to create an execution context. |
| * |
| * Attributes that uniquely identify the CPU responsible for executing |
| * an executable image. |
| */ |
| struct Cpu { |
| string id; /*! unique id within the platform */ |
| string catalogName; /*! name of catalog package */ |
| string deviceName; /*! module name within catalog package */ |
| string revision; /*! revision of specified device */ |
| float clockRate; /*! clock rate in MHz of CPU on board */ |
| }; |
| |
| instance: |
| /*! |
| * ======== id ======== |
| * The CPU's unique id within the platform |
| * |
| * This id is the string used to identify a specific CPU within |
| * the platform that provides this execution context. |
| * |
| * @a(readonly) This parameter is set by the platform and is readonly |
| * for configuration scripts. |
| */ |
| config string id; |
| |
| /*! |
| * ======== catalogName ======== |
| * The name of the package containing the module named by deviceName |
| * |
| * This string names a package containing one or more modules that |
| * implements the `{@link xdc.platform.ICpuDataSheet}` interface. |
| * |
| * @a(readonly) This parameter is set by the platform and is readonly for |
| * configuration scripts. |
| */ |
| config string catalogName; |
| |
| /*! |
| * ======== deviceName ======== |
| * The name of a CPU device within the catalog package catalogName |
| * |
| * This string names a module in the catalog package, specified by |
| * catalogName, that represents the CPU that runs the executable; i.e., |
| * it implements the `{@link xdc.platform.ICpuDataSheet}` interface. |
| */ |
| config string deviceName; |
| |
| /*! |
| * ======== revision ======== |
| * The revision of the CPU |
| * |
| * @a(readonly) This parameter is set by the platform and is readonly for |
| * configuration scripts. |
| */ |
| config string revision = ""; |
| |
| /*! |
| * ======== clockRate ======== |
| * The clock rate in MHz of the CPU |
| * |
| * @a(readonly) This parameter is set by the platform and is readonly for |
| * configuration scripts. |
| */ |
| config float clockRate; |
| |
| /*! |
| * ======== board ======== |
| * The board-level attributes |
| * |
| * This parameter defines the static attributes of the board |
| * containing the CPU that runs the executable. |
| * |
| * @a(readonly) This parameter is set by the platform and is readonly for |
| * configuration scripts. |
| */ |
| readonly config IPlatform.Board board; |
| |
| /*! |
| * ======== attrs ======== |
| * The CPU "data-sheet" attributes |
| * |
| * This "data sheet" allows one to get information about the CPU that |
| * runs the run the executable associated with this execution context. |
| * |
| * Multi-CPU platforms provide multiple execution contexts; each |
| * context is associated with a single CPU on the platform. |
| * |
| * @a(readonly) This parameter is set by the platform and is readonly for |
| * configuration scripts. |
| */ |
| config ICpuDataSheet.Instance attrs; |
| |
| /*! |
| * ======== memoryMap ======== |
| * The memory map seen by executables at the time they are loaded |
| * |
| * @a(readonly) This parameter is set by the platform and is readonly for |
| * configuration scripts. |
| */ |
| config IPlatform.Memory memoryMap[string]; |
| }; |