1 /* 2 * Intel MIC Platform Software Stack (MPSS) 3 * 4 * Copyright(c) 2013 Intel Corporation. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License, version 2, as 8 * published by the Free Software Foundation. 9 * 10 * This program is distributed in the hope that it will be useful, but 11 * WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * General Public License for more details. 14 * 15 * The full GNU General Public License is included in this distribution in 16 * the file called "COPYING". 17 * 18 * Intel MIC driver. 19 * 20 */ 21 #ifndef __MIC_DEV_H__ 22 #define __MIC_DEV_H__ 23 24 /* The maximum number of MIC devices supported in a single host system. */ 25 #define MIC_MAX_NUM_DEVS 128 26 27 /** 28 * enum mic_hw_family - The hardware family to which a device belongs. 29 */ 30 enum mic_hw_family { 31 MIC_FAMILY_X100 = 0, 32 MIC_FAMILY_X200, 33 MIC_FAMILY_UNKNOWN, 34 MIC_FAMILY_LAST 35 }; 36 37 /** 38 * struct mic_mw - MIC memory window 39 * 40 * @pa: Base physical address. 41 * @va: Base ioremap'd virtual address. 42 * @len: Size of the memory window. 43 */ 44 struct mic_mw { 45 phys_addr_t pa; 46 void __iomem *va; 47 resource_size_t len; 48 }; 49 50 /* 51 * Scratch pad register offsets used by the host to communicate 52 * device page DMA address to the card. 53 */ 54 #define MIC_DPLO_SPAD 14 55 #define MIC_DPHI_SPAD 15 56 57 /* 58 * These values are supposed to be in the config_change field of the 59 * device page when the host sends a config change interrupt to the card. 60 */ 61 #define MIC_VIRTIO_PARAM_DEV_REMOVE 0x1 62 #define MIC_VIRTIO_PARAM_CONFIG_CHANGED 0x2 63 64 /* Maximum number of DMA channels */ 65 #define MIC_MAX_DMA_CHAN 4 66 67 #endif 68