/* | |

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