173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dspbridge/mpu_api/inc/DSPProcessor_OEM.h 373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP-BIOS Bridge driver support functions for TI OMAP processors. 573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Copyright (C) 2007 Texas Instruments, Inc. 773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is free software; you can redistribute it and/or modify it 973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * under the terms of the GNU Lesser General Public License as published 1073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * by the Free Software Foundation version 2.1 of the License. 1173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 1273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is distributed .as is. WITHOUT ANY WARRANTY of any kind, 1373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * whether express or implied; without even the implied warranty of 1473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Lesser General Public License for more details. 1673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 1773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 1973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_OEM.h ======== 2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Description: 2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This is the header for processor OEM fxns. 2273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Public Functions: 2473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_Ctrl (OEM-function) 2573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_GetTrace (OEM-function) 2673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_Load (OEM-function) 2773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_Start (OEM-function) 2873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Notes: 3073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 3173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Revision History: 3273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! ================ 3373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 23-Nov-2002 gp: Minor comment spelling correction. 3473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 13-Feb-2001 kc: DSP/BIOS Bridge name updates. 3573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 29-Nov-2000 rr: OEM Fxn's are seperated from DSPProcessor.h 3673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 3773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 3873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifndef DSPPROCESSOR_OEM_ 3973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPPROCESSOR_OEM_ 4073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 4173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 4273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinextern "C" { 4373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 4473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 4573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 4673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_Ctrl ======== 4773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 4873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Pass control information to the GPP device driver managing the DSP 4973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * processor. This will be an OEM-only function, and not part of the 5073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP/BIOS Bridge application developer's API. 5173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 5273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 5373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dwCmd: Private driver IOCTL cmd ID. 5473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pArgs: Ptr to a driver defined argument structure. 5573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 5673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 5773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 5873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ETIMEOUT: A timeout occured before the control information 5973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * could be sent. 6073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ERESTART: A critical error has occured and the DSP is being 6173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * restarted. 6273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to Send the control information. 6373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 6473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This function Calls the WMD_BRD_IOCTL. 6573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 6673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_Ctrl(DSP_HPROCESSOR hProcessor, 6773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG dwCmd, 6873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN OPTIONAL struct DSP_CBDATA * pArgs); 6973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 7073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 7173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_Load ======== 7273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 7373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Reset a processor and load a new base program image. 7473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This will be an OEM-only function, and not part of the DSP/BIOS Bridge 7573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * application developer's API. 7673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 7773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 7873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * iArgc: The number of arguments (strings) in aArgv[] 7973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * aArgv: An array of arguments (ANSI Strings) 8073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * aEnvp: An array of environment settings (ANSI Strings) 8173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 8273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 8373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 8473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFILE: The DSP executable was not found 8573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ECORRUTFILE: Unable to Parse the DSP Executable 8673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EINVALIDARG: iArgc should be > 0. 8773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: aArgv is invalid 8873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EATTACHED: Abort because a GPP Client is attached to the 8973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * specified processor 9073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to load the processor 9173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 9273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Does not implement access rights to control which GPP application 9373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * can load the processor. 9473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 9573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_Load(DSP_HPROCESSOR hProcessor, 9673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN CONST INT iArgc, 9773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN CONST CHAR ** aArgv, 9873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN CONST CHAR ** aEnvp); 9973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 10073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 10173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_Start ======== 10273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 10373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Start a processor running. 10473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Processor must be in PROC_LOADED state. 10573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This will be an OEM-only function, and not part of the DSP/BIOS Bridge 10673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * application developer's API. 10773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 10873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 10973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 11073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 11173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 11273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EWRONGSTATE: Processor is not in PROC_LOADED state. 11373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EACCESSDENIED: Client does not have the required access rights 11473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * to start the Processor 11573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to start the processor. 11673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 11773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 11873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_Start(DSP_HPROCESSOR hProcessor); 11973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 12073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 12173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_Stop ======== 12273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 12373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Stop a running processor. 12473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Processor must be in PROC_LOADED or PROC_RUNNIG state. 12573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This will be an OEM-only function, and not part of the DSP/BIOS Bridge 12673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * application developer's API. 12773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 12873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 12973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 13073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 13173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 13273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EWRONGSTATE: Processor is not in PROC_LOADED state. 13373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EACCESSDENIED: Client does not have the required access rights 13473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * to start the Processor 13573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to start the processor. 13673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 13773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 13873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_Stop(DSP_HPROCESSOR hProcessor); 13973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 14073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 14173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin} 14273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 14373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif /* DSPPROCESSOR_OEM_ */ 144