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