| /* | 
 |  * (C) Copyright 2003 Stefan Roese, stefan.roese@esd-electronics.com | 
 |  * | 
 |  * SPDX-License-Identifier:	GPL-2.0+ | 
 |  */ | 
 |  | 
 | #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 |