1238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch#ifndef _VME_USER_H_ 2238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch#define _VME_USER_H_ 3238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch 40a4b6b0279d903df2d62aaf92edf360fb5312532Manohar Vanga#define VME_USER_BUS_MAX 1 5f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 6f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch/* 7f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch * VMEbus Master Window Configuration Structure 8f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch */ 9238add523bf9c89db1a191599fff2770af55e0fdMartyn Welchstruct vme_master { 10238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch int enable; /* State of Window */ 11f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch unsigned long long vme_addr; /* Starting Address on the VMEbus */ 12f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch unsigned long long size; /* Window Size */ 136af04b065b048e47bbd5a6f2d9776c08206ef26cMartyn Welch u32 aspace; /* Address Space */ 146af04b065b048e47bbd5a6f2d9776c08206ef26cMartyn Welch u32 cycle; /* Cycle properties */ 156af04b065b048e47bbd5a6f2d9776c08206ef26cMartyn Welch u32 dwidth; /* Maximum Data Width */ 16f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch#if 0 17f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch char prefetchEnable; /* Prefetch Read Enable State */ 18f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch int prefetchSize; /* Prefetch Read Size (Cache Lines) */ 19f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch char wrPostEnable; /* Write Post State */ 20f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch#endif 21238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch}; 22f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 23f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 24f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch/* 25f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch * IOCTL Commands and structures 26f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch */ 27f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 28f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch/* Magic number for use in ioctls */ 29f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch#define VME_IOC_MAGIC 0xAE 30f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 31f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 32f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch/* VMEbus Slave Window Configuration Structure */ 33238add523bf9c89db1a191599fff2770af55e0fdMartyn Welchstruct vme_slave { 34238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch int enable; /* State of Window */ 35f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch unsigned long long vme_addr; /* Starting Address on the VMEbus */ 36f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch unsigned long long size; /* Window Size */ 376af04b065b048e47bbd5a6f2d9776c08206ef26cMartyn Welch u32 aspace; /* Address Space */ 386af04b065b048e47bbd5a6f2d9776c08206ef26cMartyn Welch u32 cycle; /* Cycle properties */ 39f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch#if 0 40f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch char wrPostEnable; /* Write Post State */ 41f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch char rmwLock; /* Lock PCI during RMW Cycles */ 42f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch char data64BitCapable; /* non-VMEbus capable of 64-bit Data */ 43f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch#endif 44238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch}; 45238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch 46dca22184262de0171bafdf613a8d3992a818b70fVincent Bossierstruct vme_irq_id { 47dca22184262de0171bafdf613a8d3992a818b70fVincent Bossier __u8 level; 48dca22184262de0171bafdf613a8d3992a818b70fVincent Bossier __u8 statid; 49dca22184262de0171bafdf613a8d3992a818b70fVincent Bossier}; 50dca22184262de0171bafdf613a8d3992a818b70fVincent Bossier 51238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch#define VME_GET_SLAVE _IOR(VME_IOC_MAGIC, 1, struct vme_slave) 52238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch#define VME_SET_SLAVE _IOW(VME_IOC_MAGIC, 2, struct vme_slave) 53238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch#define VME_GET_MASTER _IOR(VME_IOC_MAGIC, 3, struct vme_master) 54238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch#define VME_SET_MASTER _IOW(VME_IOC_MAGIC, 4, struct vme_master) 55dca22184262de0171bafdf613a8d3992a818b70fVincent Bossier#define VME_IRQ_GEN _IOW(VME_IOC_MAGIC, 5, struct vme_irq_id) 56f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 57238add523bf9c89db1a191599fff2770af55e0fdMartyn Welch#endif /* _VME_USER_H_ */ 58f00a86d98a1ec3e99d352cda926fab767ba43b1fMartyn Welch 59