|  | /* | 
|  | * (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com | 
|  | * | 
|  | * See file CREDITS for list of people who contributed to this | 
|  | * project. | 
|  | * | 
|  | * This program is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU General Public License as | 
|  | * published by the Free Software Foundation; either version 2 of | 
|  | * the License, or (at your option) any later version. | 
|  | * | 
|  | * This program is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the | 
|  | * GNU General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU General Public License | 
|  | * along with this program; if not, write to the Free Software | 
|  | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | 
|  | * MA 02111-1307 USA | 
|  | */ | 
|  |  | 
|  | #ifndef _universe_h | 
|  | #define _universe_h | 
|  |  | 
|  | typedef struct _UNIVERSE UNIVERSE; | 
|  | typedef struct _SLAVE_IMAGE SLAVE_IMAGE; | 
|  | typedef struct _TDMA_CMD_PACKET TDMA_CMD_PACKET; | 
|  |  | 
|  | struct _SLAVE_IMAGE { | 
|  | unsigned int ctl;      /* Control     */ | 
|  | unsigned int bs;       /* Base        */ | 
|  | unsigned int bd;       /* Bound       */ | 
|  | unsigned int to;       /* Translation */ | 
|  | unsigned int reserved; | 
|  | }; | 
|  |  | 
|  | struct _UNIVERSE { | 
|  | unsigned int pci_id; | 
|  | unsigned int pci_csr; | 
|  | unsigned int pci_class; | 
|  | unsigned int pci_misc0; | 
|  | unsigned int pci_bs; | 
|  | unsigned int spare0[10]; | 
|  | unsigned int pci_misc1; | 
|  | unsigned int spare1[48]; | 
|  | SLAVE_IMAGE  lsi[4]; | 
|  | unsigned int spare2[8]; | 
|  | unsigned int scyc_ctl; | 
|  | unsigned int scyc_addr; | 
|  | unsigned int scyc_en; | 
|  | unsigned int scyc_cmp; | 
|  | unsigned int scyc_swp; | 
|  | unsigned int lmisc; | 
|  | unsigned int slsi; | 
|  | unsigned int l_cmderr; | 
|  | unsigned int laerr; | 
|  | unsigned int spare3[27]; | 
|  | unsigned int dctl; | 
|  | unsigned int dtbc; | 
|  | unsigned int dla; | 
|  | unsigned int spare4[1]; | 
|  | unsigned int dva; | 
|  | unsigned int spare5[1]; | 
|  | unsigned int dcpp; | 
|  | unsigned int spare6[1]; | 
|  | unsigned int dgcs; | 
|  | unsigned int d_llue; | 
|  | unsigned int spare7[54]; | 
|  | unsigned int lint_en; | 
|  | unsigned int lint_stat; | 
|  | unsigned int lint_map0; | 
|  | unsigned int lint_map1; | 
|  | unsigned int vint_en; | 
|  | unsigned int vint_stat; | 
|  | unsigned int vint_map0; | 
|  | unsigned int vint_map1; | 
|  | unsigned int statid; | 
|  | unsigned int vx_statid[7]; | 
|  | unsigned int spare8[48]; | 
|  | unsigned int mast_ctl; | 
|  | unsigned int misc_ctl; | 
|  | unsigned int misc_stat; | 
|  | unsigned int user_am; | 
|  | unsigned int spare9[700]; | 
|  | SLAVE_IMAGE  vsi[4]; | 
|  | unsigned int spare10[8]; | 
|  | unsigned int vrai_ctl; | 
|  | unsigned int vrai_bs; | 
|  | unsigned int spare11[2]; | 
|  | unsigned int vcsr_ctl; | 
|  | unsigned int vcsr_to; | 
|  | unsigned int v_amerr; | 
|  | unsigned int vaerr; | 
|  | unsigned int spare12[25]; | 
|  | unsigned int vcsr_clr; | 
|  | unsigned int vcsr_set; | 
|  | unsigned int vcsr_bs; | 
|  | }; | 
|  |  | 
|  | #define IRQ_VOWN    0x0001 | 
|  | #define IRQ_VIRQ1   0x0002 | 
|  | #define IRQ_VIRQ2   0x0004 | 
|  | #define IRQ_VIRQ3   0x0008 | 
|  | #define IRQ_VIRQ4   0x0010 | 
|  | #define IRQ_VIRQ5   0x0020 | 
|  | #define IRQ_VIRQ6   0x0040 | 
|  | #define IRQ_VIRQ7   0x0080 | 
|  | #define IRQ_DMA     0x0100 | 
|  | #define IRQ_LERR    0x0200 | 
|  | #define IRQ_VERR    0x0400 | 
|  | #define IRQ_res     0x0800 | 
|  | #define IRQ_IACK    0x1000 | 
|  | #define IRQ_SWINT   0x2000 | 
|  | #define IRQ_SYSFAIL 0x4000 | 
|  | #define IRQ_ACFAIL  0x8000 | 
|  |  | 
|  | struct _TDMA_CMD_PACKET { | 
|  | unsigned int dctl;   /* DMA Control         */ | 
|  | unsigned int dtbc;   /* Transfer Byte Count */ | 
|  | unsigned int dlv;    /* PCI Address         */ | 
|  | unsigned int res1;   /* Reserved            */ | 
|  | unsigned int dva;    /* Vme Address         */ | 
|  | unsigned int res2;   /* Reserved            */ | 
|  | unsigned int dcpp;   /* Pointer to Numed Cmd Packet with rPN */ | 
|  | unsigned int res3;   /* Reserved                             */ | 
|  | }; | 
|  |  | 
|  | #define VME_AM_A16		0x01 | 
|  | #define VME_AM_A24		0x02 | 
|  | #define VME_AM_A32		0x03 | 
|  | #define VME_AM_Axx		0x03 | 
|  | #define VME_AM_SUP		0x04 | 
|  | #define VME_AM_DATA		0x10 | 
|  | #define VME_AM_PROG		0x20 | 
|  | #define VME_AM_Mxx		0x30 | 
|  |  | 
|  | #define VME_FLAG_D8             0x01 | 
|  | #define VME_FLAG_D16            0x02 | 
|  | #define VME_FLAG_D32            0x03 | 
|  | #define VME_FLAG_Dxx		0x03 | 
|  |  | 
|  | #define PCI_MS_MEM		0x01 | 
|  | #define PCI_MS_IO		0x02 | 
|  | #define PCI_MS_CONFIG		0x03 | 
|  | #define PCI_MS_Mxx		0x03 | 
|  |  | 
|  | #endif |