Back to home page

OSCL-LXR

 
 

    


0001 /*
0002  * This file is subject to the terms and conditions of the GNU General Public
0003  * License. See the file "COPYING" in the main directory of this archive
0004  * for more details.
0005  *
0006  * gio.h: Definitions for SGI GIO bus
0007  *
0008  * Copyright (C) 2002 Ladislav Michl
0009  */
0010 
0011 #ifndef _SGI_GIO_H
0012 #define _SGI_GIO_H
0013 
0014 /*
0015  * GIO bus addresses
0016  *
0017  * The Indigo and Indy have two GIO bus connectors. Indigo2 (all models) have
0018  * three physical connectors, but only two slots, GFX and EXP0.
0019  *
0020  * There is 10MB of GIO address space for GIO64 slot devices
0021  * slot#   slot type address range        size
0022  * -----   --------- ----------------------- -----
0023  *   0     GFX       0x1f000000 - 0x1f3fffff   4MB
0024  *   1     EXP0      0x1f400000 - 0x1f5fffff   2MB
0025  *   2     EXP1      0x1f600000 - 0x1f9fffff   4MB
0026  *
0027  * There are un-slotted devices, HPC, I/O and misc devices, which are grouped
0028  * into the HPC address space.
0029  *   -     MISC      0x1fb00000 - 0x1fbfffff   1MB
0030  *
0031  * Following space is reserved and unused
0032  *   -     RESERVED  0x18000000 - 0x1effffff 112MB
0033  *
0034  * GIO bus IDs
0035  *
0036  * Each GIO bus device identifies itself to the system by answering a
0037  * read with an "ID" value. IDs are either 8 or 32 bits long. IDs less
0038  * than 128 are 8 bits long, with the most significant 24 bits read from
0039  * the slot undefined.
0040  *
0041  * 32-bit IDs are divided into
0042  *  bits 0:6    the product ID; ranges from 0x00 to 0x7F.
0043  *  bit 7       0=GIO Product ID is 8 bits wide
0044  *          1=GIO Product ID is 32 bits wide.
0045  *  bits 8:15   manufacturer version for the product.
0046  *  bit 16      0=GIO32 and GIO32-bis, 1=GIO64.
0047  *  bit 17      0=no ROM present
0048  *          1=ROM present on this board AND next three words
0049  *          space define the ROM.
0050  *  bits 18:31  up to manufacturer.
0051  *
0052  * IDs above 0x50/0xd0 are of 3rd party boards.
0053  *
0054  * 8-bit IDs
0055  *  0x01        XPI low cost FDDI
0056  *  0x02        GTR TokenRing
0057  *  0x04        Synchronous ISDN
0058  *  0x05        ATM board [*]
0059  *  0x06        Canon Interface
0060  *  0x07        16 bit SCSI Card [*]
0061  *  0x08        JPEG (Double Wide)
0062  *  0x09        JPEG (Single Wide)
0063  *  0x0a        XPI mez. FDDI device 0
0064  *  0x0b        XPI mez. FDDI device 1
0065  *  0x0c        SMPTE 259M Video [*]
0066  *  0x0d        Babblefish Compression [*]
0067  *  0x0e        E-Plex 8-port Ethernet
0068  *  0x30        Lyon Lamb IVAS
0069  *  0xb8        GIO 100BaseTX Fast Ethernet (gfe)
0070  *
0071  * [*] Device provide 32-bit ID.
0072  *
0073  */
0074 
0075 #define GIO_ID(x)       (x & 0x7f)
0076 #define GIO_32BIT_ID        0x80
0077 #define GIO_REV(x)      ((x >> 8) & 0xff)
0078 #define GIO_64BIT_IFACE     0x10000
0079 #define GIO_ROM_PRESENT     0x20000
0080 #define GIO_VENDOR_CODE(x)  ((x >> 18) & 0x3fff)
0081 
0082 #define GIO_SLOT_GFX_BASE   0x1f000000
0083 #define GIO_SLOT_EXP0_BASE  0x1f400000
0084 #define GIO_SLOT_EXP1_BASE  0x1f600000
0085 
0086 #endif /* _SGI_GIO_H */