Annotation of sys/arch/hppa/dev/mongoosereg.h, Revision 1.1
1.1 ! nbrk 1: /* $OpenBSD: mongoosereg.h,v 1.1 2004/10/29 20:23:37 miod Exp $ */
! 2:
! 3: /*
! 4: * Copyright (c) 1998-2003 Michael Shalayeff
! 5: * All rights reserved.
! 6: *
! 7: * Redistribution and use in source and binary forms, with or without
! 8: * modification, are permitted provided that the following conditions
! 9: * are met:
! 10: * 1. Redistributions of source code must retain the above copyright
! 11: * notice, this list of conditions and the following disclaimer.
! 12: * 2. Redistributions in binary form must reproduce the above copyright
! 13: * notice, this list of conditions and the following disclaimer in the
! 14: * documentation and/or other materials provided with the distribution.
! 15: *
! 16: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
! 17: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
! 18: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
! 19: * IN NO EVENT SHALL THE AUTHOR OR HIS RELATIVES BE LIABLE FOR ANY DIRECT,
! 20: * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
! 21: * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
! 22: * SERVICES; LOSS OF MIND, USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
! 23: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
! 24: * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
! 25: * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
! 26: * THE POSSIBILITY OF SUCH DAMAGE.
! 27: */
! 28:
! 29: /* EISA Bus Adapter registers definitions */
! 30: #define MONGOOSE_MONGOOSE 0x10000
! 31: struct mongoose_regs {
! 32: u_int8_t version;
! 33: u_int8_t lock;
! 34: u_int8_t liowait;
! 35: u_int8_t clock;
! 36: u_int8_t reserved[0xf000 - 4];
! 37: u_int8_t intack;
! 38: };
! 39:
! 40: #define MONGOOSE_CTRL 0x00000
! 41: #define MONGOOSE_NINTS 16
! 42: struct mongoose_ctrl {
! 43: struct dma0 {
! 44: struct {
! 45: u_int32_t addr : 8;
! 46: u_int32_t count: 8;
! 47: } ch[4];
! 48: u_int8_t command;
! 49: u_int8_t request;
! 50: u_int8_t mask_channel;
! 51: u_int8_t mode;
! 52: u_int8_t clr_byte_ptr;
! 53: u_int8_t master_clear;
! 54: u_int8_t mask_clear;
! 55: u_int8_t master_write;
! 56: u_int8_t pad[8];
! 57: } dma0;
! 58:
! 59: u_int8_t irr0; /* 0x20 */
! 60: u_int8_t imr0;
! 61: u_int8_t iack; /* 0x22 -- 2 b2b reads generate
! 62: (e)isa Iack cycle & returns int level */
! 63: u_int8_t pad0[29];
! 64:
! 65: struct timers {
! 66: u_int8_t sysclk;
! 67: u_int8_t refresh;
! 68: u_int8_t spkr;
! 69: u_int8_t ctrl;
! 70: u_int32_t pad;
! 71: } tmr[2]; /* 0x40 -- timers control */
! 72: u_int8_t pad1[16];
! 73:
! 74: u_int16_t inmi; /* 0x60 NMI control */
! 75: u_int8_t pad2[30];
! 76: struct {
! 77: u_int8_t pad0;
! 78: u_int8_t ch2;
! 79: u_int8_t ch3;
! 80: u_int8_t ch1;
! 81: u_int8_t pad1;
! 82: u_int8_t pad2[3];
! 83: u_int8_t ch0;
! 84: u_int8_t pad4;
! 85: u_int8_t ch6;
! 86: u_int8_t ch7;
! 87: u_int8_t ch5;
! 88: u_int8_t pad5[3];
! 89: u_int8_t pad6[16];
! 90: } pr; /* 0x80 */
! 91:
! 92: u_int8_t irr1; /* 0xa0 */
! 93: u_int8_t imr1;
! 94: u_int8_t pad3[30];
! 95:
! 96: struct dma1 {
! 97: struct {
! 98: u_int32_t addr : 8;
! 99: u_int32_t pad0 : 8;
! 100: u_int32_t count: 8;
! 101: u_int32_t pad1 : 8;
! 102: } ch[4];
! 103: u_int8_t command;
! 104: u_int8_t pad0;
! 105: u_int8_t request;
! 106: u_int8_t pad1;
! 107: u_int8_t mask_channel;
! 108: u_int8_t pad2;
! 109: u_int8_t mode;
! 110: u_int8_t pad3;
! 111: u_int8_t clr_byte_ptr;
! 112: u_int8_t pad4;
! 113: u_int8_t master_clear;
! 114: u_int8_t pad5;
! 115: u_int8_t mask_clear;
! 116: u_int8_t pad6;
! 117: u_int8_t master_write;
! 118: u_int8_t pad7;
! 119: } dma1; /* 0xc0 */
! 120:
! 121: u_int8_t master_req; /* 0xe0 master request register */
! 122: u_int8_t pad4[31];
! 123:
! 124: u_int8_t pad5[0x3d0]; /* 0x4d0 */
! 125: u_int8_t pic0; /* 0 - edge, 1 - level */
! 126: u_int8_t pic1;
! 127: u_int8_t pad6[0x460];
! 128: u_int8_t nmi;
! 129: u_int8_t nmi_ext;
! 130: #define MONGOOSE_NMI_BUSRESET 0x01
! 131: #define MONGOOSE_NMI_IOPORT_EN 0x02
! 132: #define MONGOOSE_NMI_EN 0x04
! 133: #define MONGOOSE_NMI_MTMO_EN 0x08
! 134: #define MONGOOSE_NMI_RES4 0x10
! 135: #define MONGOOSE_NMI_IOPORT_INT 0x20
! 136: #define MONGOOSE_NMI_MASTER_INT 0x40
! 137: #define MONGOOSE_NMI_INT 0x80
! 138: };
! 139:
! 140: #define MONGOOSE_IOMAP 0x100000
CVSweb