1
0
Files
2022-09-29 17:59:04 +03:00

111 lines
3.9 KiB
C

/**************************************************************************
* *
* Copyright (C) 1990, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
**************************************************************************/
#ident "sys/giobus.h: $Revision: 1.5 $"
#ifndef _SYS_GIOBUS_H
#define _SYS_GIOBUS_H
/*
* GIObus definitions defined in IP12.h/IP20.h/IP22.h are copied to this
* file for Everest usage.
*/
/* Local IO Segment */
#define LIO_ADDR 0x1f000000
#define LIO_GFX_SIZE 0x00400000 /* 4 Meg for graphics boards */
#define LIO_GIO_SIZE 0x00600000 /* 6 Meg for GIO Slots */
/* GIO Interrupts */
#define GIO_INTERRUPT_0 0
#define GIO_INTERRUPT_1 1
#define GIO_INTERRUPT_2 2
/* GIO Slots */
#define GIO_SLOT_0 0
#define GIO_SLOT_1 1
#define GIO_SLOT_GFX 2
/* K1 seg addresses mapping to these slots */
#if _MIPS_SIM == _ABI64
#define GIO_SLOTGFX 0x900000001F000000
#define GIO_SLOT0 0x900000001F400000
#define GIO_SLOT1 0x900000001F600000
#else
#define GIO_SLOTGFX 0xBF000000 /* Valid only for IP22 */
#define GIO_SLOT0 0xBF400000
#define GIO_SLOT1 0xBF600000
#endif
#define GIOLEVELS 3 /* GIO 0 (FIFO), GIO 1 (GE), GIO 2 (VR) */
#define GIOSLOTS 3 /* Graphics = 0, GIO 1 & 2 */
/* GIO config register Address */
#define GIO_SLOT0_ADDR 0x1fa20000 /* Slot 0 config register (w) */
#define GIO_SLOT1_ADDR 0x1fa20004 /* Slot 1 config register (w) */
/* GIO bus IDs
*
* Each GIO bus device identifies itself to the system by answering a
* read with an "ID" value. IDs are either 8 or 32 bits long. IDs less
* than 128 are 8 bits long, with the most significant 24 bits read from
* the slot undefined.
*
* 32-bit IDs are currently divided into
* bits 0-6 the product ID; ranges from 0x00 to 0x7F.
* bit 7 0=GIO Product ID is 8 bits wide
* 1=GIO Product ID is 32 bits wide.
* bits 15-8 manufacturer's version for the product.
* bit 16 0=GIO32 and GIO32-bis, 1=GIO64.
* bit 17 0=no ROM present
* 1=ROM present on this board AND next three words
* space define the ROM.
* bits 31-18 up to manufacturer.
* Note that this may change in future 32-bit IDs
*
* IDs above 0x50/0xd0 are for 3rd party boards.
*
* Contact the Developer Program to allocate new IDs, recently Rick McLeod.
*
* This list must match the list in system.gen.
*/
#define GIO_SID_MASK 0xff /* only 8 bits valid for IDs<0x80 */
#define GIO_LID_MASK 0xff /* only 8 bits of IDs for others */
/* Short, 8-bit IDs */
#define GIO_ID_XPI 0x01 /* XPI low cost FDDI */
#define GIO_ID_GTR 0x02 /* GTR TokenRing */
/* 0x04 Synchronous ISDN */
/* 0x06 Canon Interface */
/* 0x08 JPEG (Double Wide) */
/* 0x09 JPEG (Single Wide) */
#define GIO_ID_XPI_M0 0x0a /* XPI mez. FDDI device 0 */
#define GIO_ID_XPI_M1 0x0b /* XPI mez. FDDI device 1 */
#define GIO_ID_EP 0x0e /* E-Plex 8-port Ethernet */
#define GIO_ID_IVAS 0x30 /* Lyon Lamb IVAS */
/* Long, 32-bit IDs */
#define GIO_ID_ATM 0x85 /* ATM board */
/* 0x87 16 bit SCSI Card */
/* 0x8c SMPTE 259M Video */
/* 0x8d Babblefish Compression */
#ifdef _KERNEL
#include <sys/hwgraph.h>
graph_error_t hpc_hwgraph_lookup(vertex_hdl_t *);
graph_error_t gio_hwgraph_lookup(caddr_t, vertex_hdl_t *);
#endif
#endif /* _SYS_GIOBUS_H */