[BACK]Return to elroyreg.h CVS log [TXT][DIR] Up to [local] / sys / arch / hppa64 / dev

Annotation of sys/arch/hppa64/dev/elroyreg.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: elroyreg.h,v 1.1 2005/04/01 10:40:47 mickey Exp $     */
        !             2:
        !             3: /*
        !             4:  * Copyright (c) 2005 Michael Shalayeff
        !             5:  * All rights reserved.
        !             6:  *
        !             7:  * Permission to use, copy, modify, and distribute this software for any
        !             8:  * purpose with or without fee is hereby granted, provided that the above
        !             9:  * copyright notice and this permission notice appear in all copies.
        !            10:  *
        !            11:  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
        !            12:  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
        !            13:  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
        !            14:  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
        !            15:  * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
        !            16:  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
        !            17:  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
        !            18:  */
        !            19:
        !            20: struct elroy_regs {
        !            21:                        /* std PCI bridge header */
        !            22:        u_int32_t       pci_id;         /* 0x000 rw PCI_ID */
        !            23:        u_int32_t       pci_cmdstat;    /* 0x004 rw PCI_COMMAND_STATUS_REG */
        !            24:        u_int32_t       pci_class;      /* 0x008 ro PCI_CLASS_REG */
        !            25:        u_int32_t       pci_bhlc;       /* 0x00c rw PCI_BHLC_REG */
        !            26:        u_int32_t       res0[0x30/4];   /* 0x010 */
        !            27:
        !            28:                        /* HW Bridge registers */
        !            29:        u_int32_t       pci_conf_addr;  /* 0x040 rw config space address */
        !            30:        u_int32_t       pad040;
        !            31:        u_int32_t       pci_conf_data;  /* 0x048 rw config space data */
        !            32:        u_int32_t       pad048;
        !            33:        u_int64_t       elroy_mtlt;     /* 0x050 */
        !            34:        u_int32_t       busnum;         /* 0x058 bus number/scratch */
        !            35:        u_int32_t       par058;
        !            36:        u_int64_t       res1;           /* 0x060 */
        !            37:        u_int64_t       rope;           /* 0x068 rope parity, loopback */
        !            38:        u_int64_t       err_addr;       /* 0x070 error log: address */
        !            39:        u_int64_t       suspend;        /* 0x078 rw suspend control */
        !            40:        u_int32_t       arb_mask;       /* 0x080 rw arbitration mask */
        !            41:        u_int32_t       pad080;
        !            42: #define        ELROY_ARB_ENABLE        0x01            /* enable arbitration */
        !            43: #define        ELROY_ARB_PCIDEVA       0x02            /* PCI device A allow */
        !            44: #define        ELROY_ARB_PCIDEVB       0x04            /* PCI device A allow */
        !            45: #define        ELROY_ARB_PCIDEVC       0x08            /* PCI device A allow */
        !            46: #define        ELROY_ARB_PCIDEVD       0x10            /* PCI device A allow */
        !            47: #define        ELROY_ARB_PCIDEVE       0x20            /* PCI device A allow */
        !            48: #define        ELROY_ARB_PCIDEVF       0x40            /* PCI device A allow */
        !            49: #define        ELROY_ARB_PCIDEVG       0x80            /* PCI device A allow */
        !            50:        u_int64_t       arb_pri;        /* 0x088 arbitration priority */
        !            51:        u_int64_t       arb_mode;       /* 0x090 arbitration mode */
        !            52:        u_int64_t       mtlt;           /* 0x098 */
        !            53:        u_int64_t       res2[12];       /* 0x0a0 */
        !            54:        u_int64_t       mod_info;       /* 0x100 */
        !            55:        u_int32_t       control;        /* 0x108 */
        !            56: #define        ELROY_CONTROL_RF        0x01            /* reset pci */
        !            57: #define        ELROY_CONTROL_VE        0x08            /* VGA enable */
        !            58: #define        ELROY_CONTROL_CL        0x10            /* clear error log */
        !            59: #define        ELROY_CONTROL_CE        0x20            /* clear error log enable */
        !            60: #define        ELROY_CONTROL_HF        0x40            /* hard fail enable */
        !            61:        u_int32_t       status;         /* 0x10c */
        !            62: #define        ELROY_STATUS_RC         0x01            /* reset complete */
        !            63: #define        ELROY_STATUS_BITS       "\020\01RC"
        !            64:        u_int64_t       res3[30];       /* 0x110 */
        !            65:        u_int64_t       lmmio_base;     /* 0x200 */
        !            66:        u_int64_t       lmmio_mask;     /* 0x208 */
        !            67:        u_int64_t       gmmio_base;     /* 0x210 */
        !            68:        u_int64_t       gmmio_mask;     /* 0x218 */
        !            69:        u_int64_t       wlmmio_base;    /* 0x220 */
        !            70:        u_int64_t       wlmmio_mask;    /* 0x228 */
        !            71:        u_int64_t       wgmmio_base;    /* 0x230 */
        !            72:        u_int64_t       wgmmio_mask;    /* 0x238 */
        !            73:        u_int32_t       io_base;        /* 0x240 */
        !            74:        u_int32_t       pad240;
        !            75:        u_int32_t       io_mask;        /* 0x248 */
        !            76:        u_int32_t       pad248;
        !            77:        u_int32_t       res4[4];        /* 0x250 */
        !            78:        u_int32_t       eio_base;       /* 0x260 */
        !            79:        u_int32_t       pad260;
        !            80:        u_int32_t       eio_mask;       /* 0x268 */
        !            81:        u_int32_t       pad268;
        !            82: #define        ELROY_BASE_RE   0x01                    /* range enable */
        !            83:        u_int64_t       res5;           /* 0x270 */
        !            84:        u_int64_t       dmac_ctrl;      /* 0x278 DMA connection control */
        !            85:        u_int64_t       res6[16];       /* 0x280 */
        !            86:        u_int64_t       ibase;          /* 0x300 */
        !            87:        u_int64_t       imask;          /* 0x308 */
        !            88:        u_int64_t       hint_cfg;       /* 0x310 */
        !            89:        u_int64_t       res7[13];       /* 0x318 */
        !            90:        u_int64_t       hints[14];      /* 0x380 */
        !            91:        u_int64_t       res8[2];        /* 0x3f0 */
        !            92:        u_int64_t       res9[64];       /* 0x400 */
        !            93:        u_int64_t       pad0;           /* 0x600 */
        !            94:        u_int64_t       pci_drive;      /* 0x608 */
        !            95:        u_int64_t       rope_cfg;       /* 0x610 */
        !            96:        u_int64_t       clk_ctl;        /* 0x618 */
        !            97:        u_int32_t       pad1;           /* 0x620 */
        !            98:        u_int32_t       res10[23];      /* 0x624 */
        !            99:        u_int32_t       err_cfg;        /* 0x680 error config */
        !           100:        u_int32_t       pad680;
        !           101: #define        ELROY_ERRCFG_PW         0x01            /* PIO writes parity errors */
        !           102: #define        ELROY_ERRCFG_PR         0x02            /* PIO reads parity errors */
        !           103: #define        ELROY_ERRCFG_DW         0x04            /* DMA writes parity errors */
        !           104: #define        ELROY_ERRCFG_DR         0x08            /* DMA reads parity errors */
        !           105: #define        ELROY_ERRCFG_CM         0x10            /* no fatal on config space */
        !           106: #define        ELROY_ERRCFG_SMART      0x20            /* smart bus mode */
        !           107:        u_int64_t       err_stat;       /* 0x688 error status */
        !           108:        u_int64_t       err_mid;        /* 0x690 error log: master id */
        !           109:        u_int64_t       rope_estat;     /* 0x698 rope error status */
        !           110:        u_int64_t       rope_eclr;      /* 0x6a0 rope error clear */
        !           111:        u_int64_t       res11[42];      /* 0x6a8 */
        !           112:        u_int64_t       regbus;         /* 0x7f8 reads 0x3ff */
        !           113:        u_int32_t       apic_addr;      /* 0x800 APIC address register */
        !           114:        u_int32_t       pad800;
        !           115:        u_int64_t       res12;
        !           116:        u_int32_t       apic_data;      /* 0x810 APIC data register */
        !           117:        u_int32_t       pad808;
        !           118:        u_int64_t       res13[5];
        !           119:        u_int32_t       apic_eoi;       /* 0x840 APIC interrupt ack */
        !           120:        u_int32_t       pad840;
        !           121:        u_int32_t       apic_softint;   /* 0x850 write generates softint */
        !           122:        u_int32_t       pad850;
        !           123:        u_int64_t       res14[123];     /* 0x858 */
        !           124:                                        /*0x1000 */
        !           125: } __packed;
        !           126:
        !           127: /* APIC registers */
        !           128: #define        APIC_VERSION    0x01
        !           129: #define        APIC_VERSION_MASK       0xff
        !           130: #define        APIC_VERSION_NENT       0xff0000
        !           131: #define        APIC_VERSION_NENT_SHIFT 16
        !           132: #define        APIC_ENT0(i)    (0x10 + (i)*2)
        !           133: #define        APIC_ENT0_VEC   0x000ff
        !           134: #define        APIC_ENT0_MOD   0x00700 /* delivery mode */
        !           135: #define        APIC_ENT0_FXD   0x00000
        !           136: #define        APIC_ENT0_RDR   0x00100
        !           137: #define        APIC_ENT0_PMI   0x00200
        !           138: #define        APIC_ENT0_NMI   0x00400
        !           139: #define        APIC_ENT0_INI   0x00500
        !           140: #define        APIC_ENT0_EXT   0x00700
        !           141: #define        APIC_ENT0_PEND  0x01000 /* int is pending */
        !           142: #define        APIC_ENT0_LOW   0x02000 /* polarity */
        !           143: #define        APIC_ENT0_LEV   0x08000 /* edge/level */
        !           144: #define        APIC_ENT0_MASK  0x10000 /* mask int */
        !           145: #define        APIC_ENT1(i)    (0x11 + (i)*2)
        !           146:

CVSweb