[BACK]Return to macebus.h CVS log [TXT][DIR] Up to [local] / sys / arch / sgi / localbus

Annotation of sys/arch/sgi/localbus/macebus.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: macebus.h,v 1.7 2005/12/19 21:37:48 miod Exp $        */
                      2:
                      3: /*
                      4:  * Copyright (c) 2003-2004 Opsycon AB (www.opsycon.com).
                      5:  *
                      6:  * Redistribution and use in source and binary forms, with or without
                      7:  * modification, are permitted provided that the following conditions
                      8:  * are met:
                      9:  * 1. Redistributions of source code must retain the above copyright
                     10:  *    notice, this list of conditions and the following disclaimer.
                     11:  * 2. Redistributions in binary form must reproduce the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer in the
                     13:  *    documentation and/or other materials provided with the distribution.
                     14:  *
                     15:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
                     16:  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
                     17:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     18:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
                     19:  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     20:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     21:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     22:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     23:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     24:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     25:  * SUCH DAMAGE.
                     26:  *
                     27:  */
                     28:
                     29: #ifndef        _MACEBUS_H_
                     30: #define        _MACEBUS_H_ 1
                     31:
                     32: #include <machine/bus.h>
                     33:
                     34: /*
                     35:  *  Physical address of MACEBUS.
                     36:  */
                     37: #define        MACEBUS_BASE            0x1f000000
                     38:
                     39: /*
                     40:  *  Offsets for various I/O sections on MACEBUS
                     41:  */
                     42: #define        MACE_PCI_OFFS           0x00080000
                     43: #define        MACE_VIN1_OFFS          0x00100000
                     44: #define        MACE_VIN2_OFFS          0x00180000
                     45: #define        MACE_VOUT_OFFS          0x00200000
                     46: #define        MACE_IO_OFFS            0x00300000
                     47: #define        MACE_ISAX_OFFS          0x00380000
                     48: #define        MACE_ISAX_SIZE          0x00020000
                     49:
                     50: /*
                     51:  *  PCI control registers (relative MACE_PCI_OFFS)
                     52:  */
                     53: #define        MACE_PCI_ERROR_ADDRESS  0x0000
                     54: #define        MACE_PCI_ERROR_FLAGS    0x0004
                     55: #define        MACE_PCI_CONTROL        0x0008
                     56: #define        MACE_PCI_REVISION       0x000c
                     57: #define        MACE_PCI_FLUSH          0x000c
                     58: #define        MACE_PCI_CFGADDR        0x0cf8
                     59: #define        MACE_PCI_CFGDATA        0x0cfc
                     60:
                     61: #define        MACE_PCI_INTCTRL        0x000000ff      /* Interrupt control mask */
                     62:
                     63: /* PCI_ERROR_FLAGS Bits */
                     64: #define        PERR_MASTER_ABORT               0x80000000
                     65: #define        PERR_TARGET_ABORT               0x40000000
                     66: #define        PERR_DATA_PARITY_ERR            0x20000000
                     67: #define        PERR_RETRY_ERR                  0x10000000
                     68: #define        PERR_ILLEGAL_CMD                0x08000000
                     69: #define        PERR_SYSTEM_ERR                 0x04000000
                     70: #define        PERR_INTERRUPT_TEST             0x02000000
                     71: #define        PERR_PARITY_ERR                 0x01000000
                     72: #define        PERR_OVERRUN                    0x00800000
                     73: #define        PERR_RSVD                       0x00400000
                     74: #define        PERR_MEMORY_ADDR                0x00200000
                     75: #define        PERR_CONFIG_ADDR                0x00100000
                     76: #define        PERR_MASTER_ABORT_ADDR_VALID    0x00080000
                     77: #define        PERR_TARGET_ABORT_ADDR_VALID    0x00040000
                     78: #define        PERR_DATA_PARITY_ADDR_VALID     0x00020000
                     79: #define        PERR_RETRY_ADDR_VALID           0x00010000
                     80:
                     81:
                     82: /*
                     83:  *  MACE ISA definitions.
                     84:  */
                     85: #define        MACE_ISA_OFFS           (MACE_IO_OFFS+0x00010000)
                     86:
                     87: #define MACE_ISA_RING_BASE     0x0000
                     88: #define  MACE_ISA_RING_ALIGN   0x00010000
                     89: #define        MACE_ISA_MISC_REG       0x0008  /* Various status and controls */
                     90: #define        MACE_ISA_INT_STAT       0x0010
                     91: #define        MACE_ISA_INT_MASK       0x0018
                     92:
                     93: /* MACE_ISA_MISC_REG definitions */
                     94: #define        MACE_ISA_MISC_RLED_OFF  0x0010  /* Turns off RED LED */
                     95: #define        MACE_ISA_MISC_GLED_OFF  0x0020  /* Turns off GREEN LED */
                     96:
                     97: /* MACE_ISA_INT_* definitions */
                     98: #define        MACE_ISA_INT_AUDIO      0x000000ff      /* Audio ints */
                     99: #define  MACE_ISA_INT_AUDIO_SC       0x02
                    100: #define  MACE_ISA_INT_AUDIO_DMA1      0x04
                    101: #define  MACE_ISA_INT_AUDIO_DMA2      0x10
                    102: #define  MACE_ISA_INT_AUDIO_DMA3      0x40
                    103: #define        MACE_ISA_INT_RTC        0x00000100      /* RTC */
                    104: #define        MACE_ISA_INT_KBD        0x00000200      /* Keyboard */
                    105: #define        MACE_ISA_INT_KBD_POLL   0x00000400      /* Keyboard polled */
                    106: #define        MACE_ISA_INT_MOUSE      0x00000800      /* Mouse */
                    107: #define        MACE_ISA_INT_MOUSE_POLL 0x00001000      /* Mouse polled */
                    108: #define        MACE_ISA_INT_TIMER      0x0000e000      /* Timer/counter compare */
                    109: #define        MACE_ISA_INT_PARALLEL   0x000f0000      /* Parallel port */
                    110: #define        MACE_ISA_INT_SERIAL_1   0x03f00000      /* Serial port 1 */
                    111: #define        MACE_ISA_INT_SERIAL_2   0xfc000000      /* Serial port 2 */
                    112:
                    113:
                    114: /* ISA Peripherals */
                    115: #define        MACE_ISA_EPP_OFFS       (MACE_ISAX_OFFS+0x00000000)
                    116: #define        MACE_ISA_ECP_OFFS       (MACE_ISAX_OFFS+0x00008000)
                    117: #define        MACE_ISA_SER1_OFFS      (MACE_ISAX_OFFS+0x00010000)
                    118: #define        MACE_ISA_SER2_OFFS      (MACE_ISAX_OFFS+0x00018000)
                    119: #define        MACE_ISA_RTC_OFFS       (MACE_ISAX_OFFS+0x00020000)
                    120: #define        MACE_ISA_GAME_OFFS      (MACE_ISAX_OFFS+0x00030000)
                    121:
                    122:
                    123: extern bus_space_t macebus_tag;
                    124:
                    125: u_int8_t mace_read_1(bus_space_tag_t, bus_space_handle_t, bus_size_t);
                    126: u_int16_t mace_read_2(bus_space_tag_t, bus_space_handle_t, bus_size_t);
                    127: u_int32_t mace_read_4(bus_space_tag_t, bus_space_handle_t, bus_size_t);
                    128: u_int64_t mace_read_8(bus_space_tag_t, bus_space_handle_t, bus_size_t);
                    129:
                    130: void mace_write_1(bus_space_tag_t, bus_space_handle_t, bus_size_t, u_int8_t);
                    131: void mace_write_2(bus_space_tag_t, bus_space_handle_t, bus_size_t, u_int16_t);
                    132: void mace_write_4(bus_space_tag_t, bus_space_handle_t, bus_size_t, u_int32_t);
                    133: void mace_write_8(bus_space_tag_t, bus_space_handle_t, bus_size_t, u_int64_t);
                    134:
                    135: int mace_space_map(bus_space_tag_t, bus_addr_t, bus_size_t, int, bus_space_handle_t *);
                    136: void mace_space_unmap(bus_space_tag_t, bus_space_handle_t, bus_size_t);
                    137: int mace_space_region(bus_space_tag_t, bus_space_handle_t, bus_size_t, bus_size_t, bus_space_handle_t *);
                    138:
                    139: #endif /* _MACEBUS_H_ */

CVSweb