| /* | 
 |  * (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 |