149 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
|  * (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
 |