173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Copyright 2001-2008 Texas Instruments - http://www.ti.com/ 373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Licensed under the Apache License, Version 2.0 (the "License"); 573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * you may not use this file except in compliance with the License. 673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * You may obtain a copy of the License at 773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * http://www.apache.org/licenses/LICENSE-2.0 973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 1073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Unless required by applicable law or agreed to in writing, software 1173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * distributed under the License is distributed on an "AS IS" BASIS, 1273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * See the License for the specific language governing permissions and 1473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * limitations under the License. 1573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 1673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 1973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor.h ======== 2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP-BIOS Bridge driver support functions for TI OMAP processors. 2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Description: 2273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This is the header for the DSP/BIOS Bridge processor module. 2373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Public Functions: 2573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_Attach 2673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_Detach 2773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_EnumNodes 2873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_FlushMemory 2973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_GetResourceInfo 3073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_GetState 3173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_Map 3273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_RegisterNotify 3373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_ReserveMemory 3473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_UnMap 3573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_UnReserveMemory 3673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSPProcessor_InvalidateMemory 3773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 3873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Notes: 3973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 4073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Revision History: 4173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! ================ 4273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 04-04-2007 sh Added DSPProcessor_InvalidateMemory 4373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 19-Apr-2004 sb Aligned DMM definitions with Symbian 4473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 08-Mar-2004 sb Added the Dynamic Memory Mapping APIs 4573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 23-Nov-2002 gp: Comment cleanup. 4673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 13-Feb-2001 kc: DSP/BIOS Bridge name updates. 4773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 29-Nov-2000 rr: OEM Fxns moved to DSPProcessor_OEM.h 4873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Incorporated code review changes. 4973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Oct-2000 jeh Changed uNotifyMask to uNotifyType. 5073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 28-Sep-2000 rr: Updated to Version 0.9. 5173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 07-Sep-2000 jeh Changed type HANDLE in DSPProcessor_RegisterNotify to 5273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! DSP_HNOTIFICATION. 5373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 14-Aug-2000 rr: Cleaned up. 5473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 20-Jul-2000 rr: Updated to Version 0.8 5573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 27-Jun-2000 rr: Created from DBAPI.h 5673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 5773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 5873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifndef DSPPROCESSOR_ 5973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#define DSPPROCESSOR_ 6073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 6173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 6273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinextern "C" { 6373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 6473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 6573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 6673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_Attach ======== 6773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 6873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Prepare for communication with a particular DSP processor, and return 6973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * a processor handle for subsequent operations. 7073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 7173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uProcessor: The processor index. 7273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pAttrIn: Ptr to the DSP_PROCESSORATTRIN structure. 7373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * A NULL value means use default values. 7473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * phProcessor: Ptr to location to store processor handle. 7573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 7673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 7773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Parameter phProcessor is not valid. 7873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EINVALIDARG: Parameter uProcessor is invalid 7973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to attach the processor 8073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SALREADYATTACHED: Success; Processor already attached. 8173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 8273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns DSP_EINVALIDARG if uProcessor index >= number of processors. 8373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * When pAttrIn is NULL, the default timeout value is 10 seconds. 8473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This call does not affect the actual execution state of the DSP. 8573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 8673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_Attach(UINT uProcessor, 8773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OPTIONAL CONST struct DSP_PROCESSORATTRIN * 8873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin pAttrIn, 8973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT DSP_HPROCESSOR * phProcessor); 9073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 9173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 9273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_Detach ======== 9373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 9473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Detach from a DSP processor and de-allocate all (GPP) resources reserved 9573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * for it. 9673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 9773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 9873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 9973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 10073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 10173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to detach from the processor. 10273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 10373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This call does not affect the actual execution state of the DSP. 10473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 10573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_Detach(DSP_HPROCESSOR hProcessor); 10673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 10773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 10873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_EnumNodes ======== 10973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 11073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Enumerate the nodes currently allocated on a processor. 11173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 11273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 11373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * aNodeTab: An array allocated to receive the node handles. 11473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uNodeTabSize: The number of (DSP_HNODE) handles that can be held 11573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * in aNodeTab. 11673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * puNumNodes: Location where DSPProcessor_EnumNodes will return 11773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * the number of valid handles written to aNodeTab 11873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * puAllocated: Location where DSPProcessor_EnumNodes will return 11973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * the number of nodes that are allocated on the DSP. 12073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 12173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 12273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 12373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Parameters puNumNodes or puAllocated is not valid 12473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ESIZE: The amount of memory allocated for aNodeTab is 12573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * insufficent. The number of nodes actually 12673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * allocated on the DSP is greater than the value 12773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * specified for uNodeTabSize. 12873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: A failure occurred during enumeration. 12973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 13073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 13173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_EnumNodes(DSP_HPROCESSOR hProcessor, 13273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN DSP_HNODE * aNodeTab, 13373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin IN UINT uNodeTabSize, 13473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT UINT * puNumNodes, 13573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT UINT * puAllocated); 13673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 13773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 13873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_FlushMemory ======== 13973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 14073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Flushes a buffer from the MPU data cache. 14173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 14273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor : The processor handle. 14373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pMpuAddr : Buffer start address 14473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ulSize : Buffer size 14573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ulFlags : Reserved. 14673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 14773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK : Success. 14873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE : Invalid processor handle. 14973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL : General failure. 15073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 15173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * PROC Initialized. 15273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 15373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 15473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * All the arguments are currently ignored. 15573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 15673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_FlushMemory(DSP_HPROCESSOR hProcessor, 15773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID pMpuAddr, 15873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulSize, ULONG ulFlags); 15973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 16073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 16173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_InvalidateMemory ======== 16273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 16373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Invalidates a buffer from the MPU data cache. 16473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 16573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor : The processor handle. 16673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pMpuAddr : Buffer start address 16773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ulSize : Buffer size 16873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 16973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK : Success. 17073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE : Invalid processor handle. 17173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL : General failure. 17273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 17373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * PROC Initialized. 17473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 17573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 17673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 17773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_InvalidateMemory(DSP_HPROCESSOR hProcessor, 17873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID pMpuAddr, 17973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulSize); 18073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 18173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 18273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_GetResourceInfo ======== 18373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 18473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Get information about a DSP Resources. 18573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 18673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 18773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uResourceType: Type of resource to be reported. 18873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pResourceInfo: Ptr to the DSP_RESOURCEINFO structure in which 18973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * the processor resource information will be returned. 19073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uResourceInfoSize: Size of the DSP_RESOURCEINFO structure. 19173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 19273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 19373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 19473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Parameter pResourceInfo is not valid 19573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EVALUE: Parameter uResourceType is invalid. 19673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EWRONGSTATE: The processor is not in the PROC_RUNNING state. 19773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ETIMEOUT: A timeout occured before the DSP responded to the 19873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * querry. 19973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ERESTART: A Critical error has occured and the DSP is being 20073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * restarted. 20173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ESIZE: The size of the specified DSP_RESOURCEINFO struct 20273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * is too small to hold all the information. 20373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to get Resource Information 20473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 20573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 20673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_GetResourceInfo(DSP_HPROCESSOR hProcessor, 20773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uResourceType, 20873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT struct DSP_RESOURCEINFO * 20973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin pResourceInfo, 21073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uResourceInfoSize); 21173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 21273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 21373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_GetState ======== 21473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 21573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Report the state of the specified DSP processor. 21673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 21773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 21873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pProcStatus: Ptr to location to store the DSP_PROCESSORSTATE 21973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * structure. 22073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uStateInfoSize: Size of DSP_PROCESSORSTATE. 22173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 22273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 22373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle. 22473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EPOINTER: Parameter pProcStatus is not valid. 22573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: General failure while querying processor state. 22673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ESIZE: uStateInfoSize is smaller than sizeof 22773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_PROCESSORSTATE. 22873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 22973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 23073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_GetState(DSP_HPROCESSOR hProcessor, 23173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin OUT struct DSP_PROCESSORSTATE * pProcStatus, 23273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uStateInfoSize); 23373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 23473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 23573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_Map ======== 23673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 23773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Maps a MPU buffer to DSP address space. 23873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 23973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor : The processor handle. 24073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pMpuAddr : Starting address of the memory region to map. 24173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ulSize : Size of the memory region to map. 24273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pReqAddr : Requested DSP start address. Offset-adjusted actual 24373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * mapped address is in the last argument. 24473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ppMapAddr : Ptr to DSP side mapped BYTE address. 24573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ulMapAttr : Optional endianness attributes, virt to phys flag. 24673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 24773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK : Success. 24873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE : Invalid processor handle. 24973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL : General failure. 25073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EMEMORY : MPU side memory allocation error. 25173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ENOTFOUND : Cannot find a reserved region starting with this 25273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * : address. 25373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 25473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pMpuAddr is not NULL 25573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ulSize is not zero 25673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ppMapAddr is not NULL 25773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * PROC Initialized. 25873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 25973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 26073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 26173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_Map(DSP_HPROCESSOR hProcessor, 26273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID pMpuAddr, 26373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulSize, 26473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID pReqAddr, 26573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID * ppMapAddr, ULONG ulMapAttr); 26673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 26773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 26873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_RegisterNotify ======== 26973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 27073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Register to be notified of specific processor events 27173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 27273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor: The processor handle. 27373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uEventMask: Type of event to be notified about. 27473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * uNotifyType: Type of notification to be sent. 27573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hNotification: Handle or event name to be used for notification. 27673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * about, or to de-register this notification. 27773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 27873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK: Success. 27973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE: Invalid processor handle or hNotification. 28073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EVALUE: Parameter uEventMask is Invalid 28173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ENOTIMP: The notification type specified in uNotifyType 28273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * is not supported. 28373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL: Unable to register for notification. 28473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 28573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 28673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_RegisterNotify(DSP_HPROCESSOR hProcessor, 28773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uEventMask, 28873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin UINT uNotifyType, 28973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct DSP_NOTIFICATION* 29073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin hNotification); 29173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 29273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 29373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_ReserveMemory ======== 29473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 29573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Reserve a virtually contiguous region of DSP address space. 29673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 29773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor : The processor handle. 29873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ulSize : Size of the address space to reserve. 29973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ppRsvAddr : Ptr to DSP side reserved BYTE address. 30073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 30173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK : Success. 30273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE : Invalid processor handle. 30373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL : General failure. 30473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EMEMORY : Cannot reserve chunk of this size. 30573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 30673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ppRsvAddr is not NULL 30773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * PROC Initialized. 30873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 30973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 31073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 31173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_ReserveMemory(DSP_HPROCESSOR hProcessor, 31273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG ulSize, 31373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID * ppRsvAddr); 31473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 31573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 31673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_UnMap ======== 31773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 31873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Removes a MPU buffer mapping from the DSP address space. 31973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 32073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor : The processor handle. 32173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pMapAddr : Starting address of the mapped memory region. 32273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 32373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK : Success. 32473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE : Invalid processor handle. 32573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL : General failure. 32673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ENOTFOUND : Cannot find a mapped region starting with this 32773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * : address. 32873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 32973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pMapAddr is not NULL 33073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * PROC Initialized. 33173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 33273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 33373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 33473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_UnMap(DSP_HPROCESSOR hProcessor, 33573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID pMapAddr); 33673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 33773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 33873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== DSPProcessor_UnReserveMemory ======== 33973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Purpose: 34073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Frees a previously reserved region of DSP address space. 34173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Parameters: 34273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * hProcessor : The processor handle. 34373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pRsvAddr : Ptr to DSP side reservedBYTE address. 34473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Returns: 34573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_SOK : Success. 34673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EHANDLE : Invalid processor handle. 34773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_EFAIL : General failure. 34873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP_ENOTFOUND : Cannot find a reserved region starting with this 34973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * : address. 35073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Requires: 35173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * pRsvAddr is not NULL 35273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * PROC Initialized. 35373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Ensures: 35473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Details: 35573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 35673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin extern DBAPI DSPProcessor_UnReserveMemory(DSP_HPROCESSOR hProcessor, 35773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin PVOID pRsvAddr); 35873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 35973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#ifdef __cplusplus 36073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin} 36173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif 36273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#endif /* DSPPROCESSOR_ */ 363