This patch removes the MIC drivers from the kernel tree since the corresponding devices have been discontinued. Removing the dma and char-misc changes in one patch and merging via the char-misc tree is best to avoid any potential build breakage.
Showing the changes to include/uapi/linux (2 of 86 files). Show all
Unified · Split
| @@ -1,235 +0,0 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | −/* | |
| 3 | − * Intel MIC Platform Software Stack (MPSS) | |
| 4 | − * | |
| 5 | − * Copyright(c) 2013 Intel Corporation. | |
| 6 | − * | |
| 7 | − * This program is free software; you can redistribute it and/or modify | |
| 8 | − * it under the terms of the GNU General Public License, version 2, as | |
| 9 | − * published by the Free Software Foundation. | |
| 10 | − * | |
| 11 | − * This program is distributed in the hope that it will be useful, but | |
| 12 | − * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | − * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 14 | − * General Public License for more details. | |
| 15 | − * | |
| 16 | − * The full GNU General Public License is included in this distribution in | |
| 17 | − * the file called "COPYING". | |
| 18 | − * | |
| 19 | − * Intel MIC driver. | |
| 20 | − * | |
| 21 | − */ | |
| 22 | −#ifndef __MIC_COMMON_H_ | |
| 23 | −#define __MIC_COMMON_H_ | |
| 24 | − | |
| 25 | −#include <linux/virtio_ring.h> | |
| 26 | − | |
| 27 | −#define __mic_align(a, x) (((a) + (x) - 1) & ~((x) - 1)) | |
| 28 | − | |
| 29 | −/** | |
| 30 | − * struct mic_device_desc: Virtio device information shared between the | |
| 31 | − * virtio driver and userspace backend | |
| 32 | − * | |
| 33 | − * @type: Device type: console/network/disk etc. Type 0/-1 terminates. | |
| 34 | − * @num_vq: Number of virtqueues. | |
| 35 | − * @feature_len: Number of bytes of feature bits. Multiply by 2: one for | |
| 36 | − host features and one for guest acknowledgements. | |
| 37 | − * @config_len: Number of bytes of the config array after virtqueues. | |
| 38 | − * @status: A status byte, written by the Guest. | |
| 39 | − * @config: Start of the following variable length config. | |
| 40 | − */ | |
| 41 | −struct mic_device_desc { | |
| 42 | − __s8 type; | |
| 43 | − __u8 num_vq; | |
| 44 | − __u8 feature_len; | |
| 45 | − __u8 config_len; | |
| 46 | − __u8 status; | |
| 47 | − __le64 config[0]; | |
| 48 | −} __attribute__ ((aligned(8))); | |
| 49 | − | |
| 50 | −/** | |
| 51 | − * struct mic_device_ctrl: Per virtio device information in the device page | |
| 52 | − * used internally by the host and card side drivers. | |
| 53 | − * | |
| 54 | − * @vdev: Used for storing MIC vdev information by the guest. | |
| 55 | − * @config_change: Set to 1 by host when a config change is requested. | |
| 56 | − * @vdev_reset: Set to 1 by guest to indicate virtio device has been reset. | |
| 57 | − * @guest_ack: Set to 1 by guest to ack a command. | |
| 58 | − * @host_ack: Set to 1 by host to ack a command. | |
| 59 | − * @used_address_updated: Set to 1 by guest when the used address should be | |
| 60 | − * updated. | |
| 61 | − * @c2h_vdev_db: The doorbell number to be used by guest. Set by host. | |
| 62 | − * @h2c_vdev_db: The doorbell number to be used by host. Set by guest. | |
| 63 | − */ | |
| 64 | −struct mic_device_ctrl { | |
| 65 | − __le64 vdev; | |
| 66 | − __u8 config_change; | |
| 67 | − __u8 vdev_reset; | |
| 68 | − __u8 guest_ack; | |
| 69 | − __u8 host_ack; | |
| 70 | − __u8 used_address_updated; | |
| 71 | − __s8 c2h_vdev_db; | |
| 72 | − __s8 h2c_vdev_db; | |
| 73 | −} __attribute__ ((aligned(8))); | |
| 74 | − | |
| 75 | −/** | |
| 76 | − * struct mic_bootparam: Virtio device independent information in device page | |
| 77 | − * | |
| 78 | − * @magic: A magic value used by the card to ensure it can see the host | |
| 79 | − * @h2c_config_db: Host to Card Virtio config doorbell set by card | |
| 80 | − * @node_id: Unique id of the node | |
| 81 | − * @h2c_scif_db - Host to card SCIF doorbell set by card | |
| 82 | − * @c2h_scif_db - Card to host SCIF doorbell set by host | |
| 83 | − * @scif_host_dma_addr - SCIF host queue pair DMA address | |
| 84 | − * @scif_card_dma_addr - SCIF card queue pair DMA address | |
| 85 | − */ | |
| 86 | −struct mic_bootparam { | |
| 87 | − __le32 magic; | |
| 88 | − __s8 h2c_config_db; | |
| 89 | − __u8 node_id; | |
| 90 | − __u8 h2c_scif_db; | |
| 91 | − __u8 c2h_scif_db; | |
| 92 | − __u64 scif_host_dma_addr; | |
| 93 | − __u64 scif_card_dma_addr; | |
| 94 | −} __attribute__ ((aligned(8))); | |
| 95 | − | |
| 96 | −/** | |
| 97 | − * struct mic_device_page: High level representation of the device page | |
| 98 | − * | |
| 99 | − * @bootparam: The bootparam structure is used for sharing information and | |
| 100 | − * status updates between MIC host and card drivers. | |
| 101 | − * @desc: Array of MIC virtio device descriptors. | |
| 102 | − */ | |
| 103 | −struct mic_device_page { | |
| 104 | − struct mic_bootparam bootparam; | |
| 105 | − struct mic_device_desc desc[0]; | |
| 106 | −}; | |
| 107 | −/** | |
| 108 | − * struct mic_vqconfig: This is how we expect the device configuration field | |
| 109 | − * for a virtqueue to be laid out in config space. | |
| 110 | − * | |
| 111 | − * @address: Guest/MIC physical address of the virtio ring | |
| 112 | − * (avail and desc rings) | |
| 113 | − * @used_address: Guest/MIC physical address of the used ring | |
| 114 | − * @num: The number of entries in the virtio_ring | |
| 115 | − */ | |
| 116 | −struct mic_vqconfig { | |
| 117 | − __le64 address; | |
| 118 | − __le64 used_address; | |
| 119 | − __le16 num; | |
| 120 | −} __attribute__ ((aligned(8))); | |
| 121 | − | |
| 122 | −/* | |
| 123 | − * The alignment to use between consumer and producer parts of vring. | |
| 124 | − * This is pagesize for historical reasons. | |
| 125 | − */ | |
| 126 | −#define MIC_VIRTIO_RING_ALIGN 4096 | |
| 127 | − | |
| 128 | −#define MIC_MAX_VRINGS 4 | |
| 129 | −#define MIC_VRING_ENTRIES 128 | |
| 130 | − | |
| 131 | −/* | |
| 132 | − * Max vring entries (power of 2) to ensure desc and avail rings | |
| 133 | − * fit in a single page | |
| 134 | − */ | |
| 135 | −#define MIC_MAX_VRING_ENTRIES 128 | |
| 136 | − | |
| 137 | −/** | |
| 138 | − * Max size of the desc block in bytes: includes: | |
| 139 | − * - struct mic_device_desc | |
| 140 | − * - struct mic_vqconfig (num_vq of these) | |
| 141 | − * - host and guest features | |
| 142 | − * - virtio device config space | |
| 143 | − */ | |
| 144 | −#define MIC_MAX_DESC_BLK_SIZE 256 | |
| 145 | − | |
| 146 | −/** | |
| 147 | − * struct _mic_vring_info - Host vring info exposed to userspace backend | |
| 148 | − * for the avail index and magic for the card. | |
| 149 | − * | |
| 150 | − * @avail_idx: host avail idx | |
| 151 | − * @magic: A magic debug cookie. | |
| 152 | − */ | |
| 153 | −struct _mic_vring_info { | |
| 154 | − __u16 avail_idx; | |
| 155 | − __le32 magic; | |
| 156 | −}; | |
| 157 | − | |
| 158 | −/** | |
| 159 | − * struct mic_vring - Vring information. | |
| 160 | − * | |
| 161 | − * @vr: The virtio ring. | |
| 162 | − * @info: Host vring information exposed to the userspace backend for the | |
| 163 | − * avail index and magic for the card. | |
| 164 | − * @va: The va for the buffer allocated for vr and info. | |
| 165 | − * @len: The length of the buffer required for allocating vr and info. | |
| 166 | − */ | |
| 167 | −struct mic_vring { | |
| 168 | − struct vring vr; | |
| 169 | − struct _mic_vring_info *info; | |
| 170 | − void *va; | |
| 171 | − int len; | |
| 172 | −}; | |
| 173 | − | |
| 174 | −#define mic_aligned_desc_size(d) __mic_align(mic_desc_size(d), 8) | |
| 175 | − | |
| 176 | −#ifndef INTEL_MIC_CARD | |
| 177 | −static inline unsigned mic_desc_size(const struct mic_device_desc *desc) | |
| 178 | −{ | |
| 179 | − return sizeof(*desc) + desc->num_vq * sizeof(struct mic_vqconfig) | |
| 180 | − + desc->feature_len * 2 + desc->config_len; | |
| 181 | −} | |
| 182 | − | |
| 183 | −static inline struct mic_vqconfig * | |
| 184 | −mic_vq_config(const struct mic_device_desc *desc) | |
| 185 | −{ | |
| 186 | − return (struct mic_vqconfig *)(desc + 1); | |
| 187 | −} | |
| 188 | − | |
| 189 | −static inline __u8 *mic_vq_features(const struct mic_device_desc *desc) | |
| 190 | −{ | |
| 191 | − return (__u8 *)(mic_vq_config(desc) + desc->num_vq); | |
| 192 | −} | |
| 193 | − | |
| 194 | −static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc) | |
| 195 | −{ | |
| 196 | − return mic_vq_features(desc) + desc->feature_len * 2; | |
| 197 | −} | |
| 198 | −static inline unsigned mic_total_desc_size(struct mic_device_desc *desc) | |
| 199 | −{ | |
| 200 | − return mic_aligned_desc_size(desc) + sizeof(struct mic_device_ctrl); | |
| 201 | −} | |
| 202 | −#endif | |
| 203 | − | |
| 204 | −/* Device page size */ | |
| 205 | −#define MIC_DP_SIZE 4096 | |
| 206 | − | |
| 207 | −#define MIC_MAGIC 0xc0ffee00 | |
| 208 | − | |
| 209 | −/** | |
| 210 | − * enum mic_states - MIC states. | |
| 211 | − */ | |
| 212 | −enum mic_states { | |
| 213 | − MIC_READY = 0, | |
| 214 | − MIC_BOOTING, | |
| 215 | − MIC_ONLINE, | |
| 216 | − MIC_SHUTTING_DOWN, | |
| 217 | − MIC_RESETTING, | |
| 218 | − MIC_RESET_FAILED, | |
| 219 | − MIC_LAST | |
| 220 | −}; | |
| 221 | − | |
| 222 | −/** | |
| 223 | − * enum mic_status - MIC status reported by card after | |
| 224 | − * a host or card initiated shutdown or a card crash. | |
| 225 | − */ | |
| 226 | −enum mic_status { | |
| 227 | − MIC_NOP = 0, | |
| 228 | − MIC_CRASHED, | |
| 229 | − MIC_HALTED, | |
| 230 | − MIC_POWER_OFF, | |
| 231 | − MIC_RESTART, | |
| 232 | − MIC_STATUS_LAST | |
| 233 | −}; | |
| 234 | − | |
| 235 | −#endif | |
| @@ -1,77 +0,0 @@ | ||
| 1 | −/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | |
| 2 | −/* | |
| 3 | − * Intel MIC Platform Software Stack (MPSS) | |
| 4 | − * | |
| 5 | − * Copyright(c) 2013 Intel Corporation. | |
| 6 | − * | |
| 7 | − * This program is free software; you can redistribute it and/or modify | |
| 8 | − * it under the terms of the GNU General Public License, version 2, as | |
| 9 | − * published by the Free Software Foundation. | |
| 10 | − * | |
| 11 | − * This program is distributed in the hope that it will be useful, but | |
| 12 | − * WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 | − * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| 14 | − * General Public License for more details. | |
| 15 | − * | |
| 16 | − * The full GNU General Public License is included in this distribution in | |
| 17 | − * the file called "COPYING". | |
| 18 | − * | |
| 19 | − * Intel MIC Host driver. | |
| 20 | − * | |
| 21 | − */ | |
| 22 | −#ifndef _MIC_IOCTL_H_ | |
| 23 | −#define _MIC_IOCTL_H_ | |
| 24 | − | |
| 25 | −#include <linux/types.h> | |
| 26 | − | |
| 27 | −/* | |
| 28 | − * mic_copy - MIC virtio descriptor copy. | |
| 29 | − * | |
| 30 | − * @iov: An array of IOVEC structures containing user space buffers. | |
| 31 | − * @iovcnt: Number of IOVEC structures in iov. | |
| 32 | − * @vr_idx: The vring index. | |
| 33 | − * @update_used: A non zero value results in used index being updated. | |
| 34 | − * @out_len: The aggregate of the total length written to or read from | |
| 35 | − * the virtio device. | |
| 36 | − */ | |
| 37 | −struct mic_copy_desc { | |
| 38 | −#ifdef __KERNEL__ | |
| 39 | − struct iovec __user *iov; | |
| 40 | −#else | |
| 41 | − struct iovec *iov; | |
| 42 | −#endif | |
| 43 | − __u32 iovcnt; | |
| 44 | − __u8 vr_idx; | |
| 45 | − __u8 update_used; | |
| 46 | − __u32 out_len; | |
| 47 | −}; | |
| 48 | − | |
| 49 | −/* | |
| 50 | − * Add a new virtio device | |
| 51 | − * The (struct mic_device_desc *) pointer points to a device page entry | |
| 52 | − * for the virtio device consisting of: | |
| 53 | − * - struct mic_device_desc | |
| 54 | − * - struct mic_vqconfig (num_vq of these) | |
| 55 | − * - host and guest features | |
| 56 | − * - virtio device config space | |
| 57 | − * The total size referenced by the pointer should equal the size returned | |
| 58 | − * by desc_size() in mic_common.h | |
| 59 | − */ | |
| 60 | −#define MIC_VIRTIO_ADD_DEVICE _IOWR('s', 1, struct mic_device_desc *) | |
| 61 | − | |
| 62 | −/* | |
| 63 | − * Copy the number of entries in the iovec and update the used index | |
| 64 | − * if requested by the user. | |
| 65 | − */ | |
| 66 | −#define MIC_VIRTIO_COPY_DESC _IOWR('s', 2, struct mic_copy_desc *) | |
| 67 | − | |
| 68 | −/* | |
| 69 | − * Notify virtio device of a config change | |
| 70 | − * The (__u8 *) pointer points to config space values for the device | |
| 71 | − * as they should be written into the device page. The total size | |
| 72 | − * referenced by the pointer should equal the config_len field of struct | |
| 73 | − * mic_device_desc. | |
| 74 | − */ | |
| 75 | −#define MIC_VIRTIO_CONFIG_CHANGE _IOWR('s', 5, __u8 *) | |
| 76 | − | |
| 77 | −#endif | |