NetBSD/sys/dev/ic/daicreg.h
2001-06-13 10:45:57 +00:00

151 lines
4.3 KiB
C

/*
* Copyright (c) 1997,2001 Martin Husemann <martin@duskware.de>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. The name of the author may not be used to endorse or promote products
* derived from this software without specific prior written permission
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*
* Shared memory definitions for Diehl activ isdn adapters.
*/
/*
* Values after reset, before isdn support is downloaded
*/
#define DAIC_BOOT_CTRL 0 /* byte */
#define DAIC_BOOT_CARD 1 /* byte */
#define DAIC_BOOT_MSIZE 2 /* byte */
#define DAIC_BOOT_EBIT 4 /* 2 byte */
#define DAIC_BOOT_ELOC 6 /* 4 byte */
#define DAIC_BOOT_SIGNATURE 30 /* 2 byte */
#define DAIC_BOOT_BUF 256 /* 256 bytes */
#define DAIC_SERNO 1008
#define DAIC_SWID 1016
#define DAIC_DOSIO 0x3e8
#define DAIC_MEMFREE 0x3f4
#define DAIC_SET_CARD 0x3fc
#define DAIC_IRQ 0x3fe
#define DAIC_BOOT_START 0
#define DAIC_BOOT_CODE 0x200
#define DAIC_BOOT_END 0x3ff
#define DAIC_BOOT_SET_RESET 0x400 /* byte */
#define DAIC_BOOT_CLR_RESET 0x401 /* byte */
/*
* Parameters for the microcode
*/
#define DAIC_BOOT_TEI 8
#define DAIC_BOOT_NT2 9
#define DAIC_BOOT_ZERO 10
#define DAIC_BOOT_WATCHDOG 11
#define DAIC_BOOT_PERMANENT 12
#define DAIC_BOOT_XINTERFACE 13
/*
* Response from microcode
*/
#define DAIC_SIGNATURE_VALUE 0x4447
/*
* Diagnostic interface
*/
#define DAIC_DIAG_REQ 0x380 /* byte */
#define DAIC_DIAG_RC 0x381 /* byte */
#define DAIC_DIAG_MEM 0x382 /* 4 byte */
#define DAIC_DIAG_LENGTH 0x386 /* 2 byte */
#define DAIC_DIAG_PORT 0x388 /* 2 byte */
#define DAIC_DIAG_DATA 0x390 /* 48 byte */
#define DAIC_DIAG_DATA_SIZE 48
#define DAIC_DIAG_MAXCMD 14
/*
* Values after download, with software running on card
*/
#define DAIC_COM_REQ 0 /* byte */
#define DAIC_COM_REQID 1 /* byte */
#define DAIC_COM_RC 2 /* byte */
#define DAIC_COM_RCID 3 /* byte */
#define DAIC_COM_IND 4 /* byte */
#define DAIC_COM_INDID 5 /* byte */
#define DAIC_COM_IMASK 6 /* byte */
#define DAIC_COM_RNR 7 /* byte */
#define DAIC_COM_XLOCK 8 /* byte */
#define DAIC_COM_INTERRUPT 9 /* byte */
#define DAIC_COM_REQCH 10 /* byte */
#define DAIC_COM_RCCH 11 /* byte */
#define DAIC_COM_INDCH 12 /* byte */
#define DAIC_COM_MIND 13 /* byte */
#define DAIC_COM_MLENGTH 14 /* 2 byte */
#define DAIC_COM_SIGNATURE 30 /* 2 byte */
#define DAIC_COM_XBUFFER 32 /* 272 byte */
#define DAIC_COM_RBUFFER 304 /* 272 byte */
/*
* Diagnostic commands/results
*/
#define DAIC_TEST_RDY 0
#define DAIC_TEST_MEM 1
#define DAIC_TEST_SKIP 2
#define DAIC_TEST_BUSY 3
/*
* ID's of global instances on the card
*/
#define DAIC_GLOBALID_DCHAN 0
#define DAIC_GLOBALID_ISO3 0x20
#define DAIC_GLOBALID_ISO2 0x60
#define DAIC_GLOBALID_TASKS 0x80
#define DAIC_GLOBALID_TIMER 0xa0
#define DAIC_GLOBALID_PHONE 0xc0
/*
* REQUEST codes
*/
#define DAIC_REQ_ASSIGN 0x01
#define DAIC_REQ_INDICATE 0x0a
#define DAIC_REQ_CALL 0x01
/*
* INDICATION codes
*/
#define DAIC_IND_HANGUP 0x03
#define DAIC_IND_INDICATE 0x0a
#define DAIC_IND_INFO 0x0d
/*
* return codes
*/
#define DAIC_RC_UNKNOWN_COMMAND 0x01
#define DAIC_RC_WRONG_COMMAND 0x02
#define DAIC_RC_WRONG_ID 0x03
#define DAIC_RC_WRONG_CH 0x04
#define DAIC_RC_UNKNOWN_IE 0x05
#define DAIC_RC_WRONG_IE 0x06
#define DAIC_RC_OUT_OF_RESRCS 0x07
#define DAIC_RC_ASSIGN_RC 0xe0
#define DAIC_RC_ASSIGN_MASK 0xf0
#define DAIC_RC_ERRMASK 0x0f
#define DAIC_RC_ASSIGN_OK 0xef
#define DAIC_RC_TIMER_INT 0xfe
#define DAIC_RC_OK 0xff