blob: f021fc03569b2529b66abef9de02f269b66ce298 [file] [log] [blame]
/*
* Copyright 2001-2008 Texas Instruments - http://www.ti.com/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* ======== cfgdefs.h ========
* DSP-BIOS Bridge driver support functions for TI OMAP processors.
* Purpose:
* Global CFG constants and types, shared between class and mini driver.
*
*! Revision History:
*! ================
*! 24-Feb-2003 kc Removed wIOPort* in CFG_HOSTRES.
*! 06-Sep-2000 jeh Added channel info to CFG_HOSTRES.
*! 09-May-2000 rr: CFG_HOSTRES now support multiple windows for PCI support.
*! 31-Jan-2000 rr: Comments changed after code review.
*! 06-Jan-2000 rr: Bus Type included in CFG_HOSTRES.
*! 12-Nov-1999 rr: CFG_HOSTRES member names changed.
*! 25-Oct-1999 rr: Modified the CFG_HOSTRES Structure
*! PCMCIA ISR Register/Unregister fxn removed..
*! New flag PCCARD introduced during compile time.
*! 10-Sep-1999 ww: Added PCMCIA ISR Register/Unregister fxn.
*! 01-Sep-1999 ag: Removed NT/95 specific fields in CFG_HOSTRES
*! 27-Oct-1997 cr: Updated CFG_HOSTRES struct to support 1+ IRQs per board.
*! 17-Sep-1997 gp: Tacked some NT config info to end of CFG_HOSTRES structure.
*! 12-Dec-1996 cr: Cleaned up after code review.
*! 14-Nov-1996 gp: Renamed from wsxcfg.h
*! 19-Jun-1996 cr: Created.
*/
#ifndef CFGDEFS_
#define CFGDEFS_
#ifdef __cplusplus
extern "C" {
#endif
/* Maximum length of module search path. */
#define CFG_MAXSEARCHPATHLEN 255
/* Maximum length of general paths. */
#define CFG_MAXPATH 255
/* Host Resources: */
#define CFG_MAXMEMREGISTERS 9
#define CFG_MAXIOPORTS 20
#define CFG_MAXIRQS 7
#define CFG_MAXDMACHANNELS 7
/* IRQ flag */
#define CFG_IRQSHARED 0x01 /* IRQ can be shared */
/* DSP Resources: */
#define CFG_DSPMAXMEMTYPES 10
#define CFG_DEFAULT_NUM_WINDOWS 1 /* We support only one window. */
/* A platform-related device handle: */
/*typedef struct CFG_DEVNODE *CFG_HDEVNODE;*/
struct CFG_DEVNODE;
/*
* Host resource structure.
*/
struct CFG_HOSTRES {
DWORD wNumMemWindows; /* Set to default */
/* This is the base.memory */
DWORD dwMemBase[CFG_MAXMEMREGISTERS]; /* SHM virtual address */
DWORD dwMemLength[CFG_MAXMEMREGISTERS]; /* Length of the Base */
DWORD dwMemPhys[CFG_MAXMEMREGISTERS]; /* SHM Physical address */
BYTE bIRQRegisters; /* IRQ Number */
BYTE bIRQAttrib; /* IRQ Attribute */
DWORD dwOffsetForMonitor; /* The Shared memory starts from
* dwMemBase + this offset
*/
DWORD dwBusType; /* Bus type for this device */
DWORD dwProgBase; /* DSP ProgBase */
DWORD dwProgLength; /* DSP ProgBase Length */
DWORD dwRegBase; /* DSP memory mapped register base */
DWORD dwRegLength; /* DSP Register Base Length */
DWORD ClientHandle; /* Client Handle */
DWORD SocketHandle; /* Socket and Function Pair */
DWORD CardInfo; /* This will be used as a context data in
* in the CardRequestIRQ
*/
/*
* Info needed by NODE for allocating channels to communicate with RMS:
* dwChnlOffset: Offset of RMS channels. Lower channels are
* reserved.
* dwChnlBufSize: Size of channel buffer to send to RMS
* dwNumChnls: Total number of channels (including reserved).
*/
DWORD dwChnlOffset;
DWORD dwChnlBufSize;
DWORD dwNumChnls;
#ifdef OMAP_2430
DWORD dwPrcmBase;
DWORD dwWdTimerDspBase;
DWORD dwMboxBase;
DWORD dwDmmuBase;
DWORD dwDipiBase;
DWORD dwSysCtrlBase;
#endif
#ifdef OMAP_3430
DWORD dwPrmBase;
DWORD dwCmBase;
DWORD dwPerBase;
DWORD dwWdTimerDspBase;
DWORD dwMboxBase;
DWORD dwDmmuBase;
DWORD dwDipiBase;
DWORD dwSysCtrlBase;
#endif
} ;
struct CFG_DSPMEMDESC {
UINT uMemType; /* Type of memory. */
ULONG ulMin; /* Minimum amount of memory of this type. */
ULONG ulMax; /* Maximum amount of memory of this type. */
} ;
struct CFG_DSPRES {
UINT uChipType; /* DSP chip type. */
UINT uWordSize; /* Number of bytes in a word */
UINT cChips; /* Number of chips. */
UINT cMemTypes; /* Types of memory. */
struct CFG_DSPMEMDESC aMemDesc[CFG_DSPMAXMEMTYPES];
/* DSP Memory types */
} ;
#ifdef __cplusplus
}
#endif
#endif /* CFGDEFS_ */