1
/*********************************************************
2
* Copyright (C) 1998 VMware, Inc. All rights reserved.
4
* The contents of this file are subject to the terms of the Common
5
* Development and Distribution License (the "License") version 1.0
6
* and no later version. You may not use this file except in
7
* compliance with the License.
9
* You can obtain a copy of the License at
10
* http://www.opensource.org/licenses/cddl1.php
12
* See the License for the specific language governing permissions
13
* and limitations under the License.
15
*********************************************************/
17
#ifndef VM_DEVICE_VERSION_H
18
#define VM_DEVICE_VERSION_H
20
#define INCLUDE_ALLOW_USERLEVEL
21
#define INCLUDE_ALLOW_VMMEXT
22
#define INCLUDE_ALLOW_MODULE
23
#define INCLUDE_ALLOW_VMKERNEL
24
#define INCLUDE_ALLOW_VMCORE
25
#include "includeCheck.h"
31
/* LSILogic 53C1030 Parallel SCSI controller
32
* LSILogic SAS1068 SAS controller
34
#define PCI_VENDOR_ID_LSILOGIC 0x1000
35
#define PCI_DEVICE_ID_LSI53C1030 0x0030
36
#define PCI_DEVICE_ID_LSISAS1068 0x0054
39
* VMware SVGA II (Unified VGA)
40
* VMware SVGA (PCI Accelerator)
41
* VMware vmxnet (Idealized NIC)
42
* VMware vmxscsi (Abortive idealized SCSI controller)
43
* VMware chipset (Subsystem ID for our motherboards)
44
* VMware e1000 (Subsystem ID)
45
* VMware vmxnet3 (Uniform Pass Through NIC)
47
#define PCI_VENDOR_ID_VMWARE 0x15AD
48
#define PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
49
#define PCI_DEVICE_ID_VMWARE_SVGA 0x0710
50
#define PCI_DEVICE_ID_VMWARE_NET 0x0720
51
#define PCI_DEVICE_ID_VMWARE_SCSI 0x0730
52
#define PCI_DEVICE_ID_VMWARE_VMCI 0x0740
53
#define PCI_DEVICE_ID_VMWARE_CHIPSET 0x1976
54
#define PCI_DEVICE_ID_VMWARE_82545EM 0x0750 /* single port */
55
#define PCI_DEVICE_ID_VMWARE_82546EB 0x0760 /* dual port */
56
#define PCI_DEVICE_ID_VMWARE_EHCI 0x0770
57
#define PCI_DEVICE_ID_VMWARE_1394 0x0780
58
#define PCI_DEVICE_ID_VMWARE_BRIDGE 0x0790
59
#define PCI_DEVICE_ID_VMWARE_ROOTPORT 0x07A0
60
#define PCI_DEVICE_ID_VMWARE_VMXNET3 0x07B0
61
#define PCI_DEVICE_ID_VMWARE_PVSCSI 0x07C0
63
/* The hypervisor device might grow. Please leave room
64
* for 7 more subfunctions.
66
#define PCI_DEVICE_ID_VMWARE_HYPER 0x0800
67
#define PCI_DEVICE_ID_VMWARE_VMI 0x0801
69
#define PCI_DEVICE_VMI_CLASS 0x05
70
#define PCI_DEVICE_VMI_SUBCLASS 0x80
71
#define PCI_DEVICE_VMI_INTERFACE 0x00
72
#define PCI_DEVICE_VMI_REVISION 0x01
74
/* From linux/pci_ids.h:
75
* AMD Lance Ethernet controller
76
* BusLogic SCSI controller
77
* Ensoniq ES1371 sound controller
79
#define PCI_VENDOR_ID_AMD 0x1022
80
#define PCI_DEVICE_ID_AMD_VLANCE 0x2000
81
#define PCI_VENDOR_ID_BUSLOGIC 0x104B
82
#define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER_NC 0x0140
83
#define PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER 0x1040
84
#define PCI_VENDOR_ID_ENSONIQ 0x1274
85
#define PCI_DEVICE_ID_ENSONIQ_ES1371 0x1371
87
/* From linux/pci_ids.h:
88
* Intel 82439TX (430 HX North Bridge)
89
* Intel 82371AB (PIIX4 South Bridge)
90
* Intel 82443BX (440 BX North Bridge and AGP Bridge)
91
* Intel 82545EM (e1000, server adapter, single port)
92
* Intel 82546EB (e1000, server adapter, dual port)
93
* Intel ICH7_16 (High Definition Audio controller)
94
* Intel HECI (as embedded in ich9m)
96
#define PCI_VENDOR_ID_INTEL 0x8086
97
#define PCI_DEVICE_ID_INTEL_82439TX 0x7100
98
#define PCI_DEVICE_ID_INTEL_82371AB_0 0x7110
99
#define PCI_DEVICE_ID_INTEL_82371AB_2 0x7112
100
#define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113
101
#define PCI_DEVICE_ID_INTEL_82371AB 0x7111
102
#define PCI_DEVICE_ID_INTEL_82443BX 0x7190
103
#define PCI_DEVICE_ID_INTEL_82443BX_1 0x7191
104
#define PCI_DEVICE_ID_INTEL_82443BX_2 0x7192 /* Used when no AGP support */
105
#define PCI_DEVICE_ID_INTEL_82545EM 0x100f
106
#define PCI_DEVICE_ID_INTEL_82546EB 0x1010
107
#define PCI_DEVICE_ID_INTEL_ICH7_16 0x27d8
108
#define PCI_DEVICE_ID_INTEL_HECI 0x2a74
111
/************* Strings for IDE Identity Fields **************************/
112
#define VIDE_ID_SERIAL_STR "00000000000000000001" /* Must be 20 Bytes */
113
#define VIDE_ID_FIRMWARE_STR "00000001" /* Must be 8 Bytes */
115
/* No longer than 40 Bytes */
116
#define VIDE_ATA_MODEL_STR PRODUCT_GENERIC_NAME " Virtual IDE Hard Drive"
117
#define VIDE_ATAPI_MODEL_STR PRODUCT_GENERIC_NAME " Virtual IDE CDROM Drive"
119
#define ATAPI_VENDOR_ID "NECVMWar" /* Must be 8 Bytes */
120
#define ATAPI_PRODUCT_ID PRODUCT_GENERIC_NAME " IDE CDROM" /* Must be 16 Bytes */
121
#define ATAPI_REV_LEVEL "1.00" /* Must be 4 Bytes */
123
#define IDE_NUM_INTERFACES 2 /* support for two interfaces */
124
#define IDE_DRIVES_PER_IF 2
126
/************* Strings for SCSI Identity Fields **************************/
127
#define SCSI_DISK_MODEL_STR PRODUCT_GENERIC_NAME " Virtual SCSI Hard Drive"
128
#define SCSI_DISK_VENDOR_NAME COMPANY_NAME
129
#define SCSI_DISK_REV_LEVEL "1.0"
130
#define SCSI_CDROM_MODEL_STR PRODUCT_GENERIC_NAME " Virtual SCSI CDROM Drive"
131
#define SCSI_CDROM_VENDOR_NAME COMPANY_NAME
132
#define SCSI_CDROM_REV_LEVEL "1.0"
134
/************* SCSI implementation limits ********************************/
135
#define SCSI_MAX_CONTROLLERS 4 // Need more than 1 for MSCS clustering
136
#define SCSI_MAX_DEVICES 16 // BT-958 emulates only 16
137
#define SCSI_IDE_CHANNEL SCSI_MAX_CONTROLLERS
138
#define SCSI_IDE_HOSTED_CHANNEL (SCSI_MAX_CONTROLLERS + 1)
139
#define SCSI_MAX_CHANNELS (SCSI_MAX_CONTROLLERS + 2)
141
/************* Strings for the VESA BIOS Identity Fields *****************/
142
#define VBE_OEM_STRING COMPANY_NAME " SVGA"
143
#define VBE_VENDOR_NAME COMPANY_NAME
144
#define VBE_PRODUCT_NAME PRODUCT_GENERIC_NAME
146
/************* PCI implementation limits ********************************/
147
#define PCI_MAX_BRIDGES 15
149
/************* Ethernet implementation limits ***************************/
150
#define MAX_ETHERNET_CARDS 10
152
/************* PCI Passthrough implementation limits ********************/
153
#define MAX_PCI_PASSTHRU_DEVICES 2
155
/************* USB implementation limits ********************************/
156
#define MAX_USB_DEVICES_PER_HOST_CONTROLLER 127
158
/************* Strings for Host USB Driver *******************************/
163
* Globally unique ID for the VMware device interface. Define INITGUID before including
164
* this header file to instantiate the variable.
166
DEFINE_GUID(GUID_DEVICE_INTERFACE_VMWARE_USB_DEVICES,
167
0x2da1fe75, 0xaab3, 0x4d2c, 0xac, 0xdf, 0x39, 0x8, 0x8c, 0xad, 0xa6, 0x65);
170
* Globally unique ID for the VMware device setup class.
172
DEFINE_GUID(GUID_CLASS_VMWARE_USB_DEVICES,
173
0x3b3e62a5, 0x3556, 0x4d7e, 0xad, 0xad, 0xf5, 0xfa, 0x3a, 0x71, 0x2b, 0x56);
176
* This string defines the device ID string of a VMware USB device.
177
* The format is USB\Vid_XXXX&Pid_YYYY, where XXXX and YYYY are the
178
* hexadecimal representations of the vendor and product ids, respectively.
180
* The official vendor ID for VMware, Inc. is 0x0E0F.
181
* The product id for USB generic devices is 0x0001.
183
#define USB_VMWARE_DEVICE_ID_WIDE L"USB\\Vid_0E0F&Pid_0001"
184
#define USB_DEVICE_ID_LENGTH (sizeof(USB_VMWARE_DEVICE_ID_WIDE) / sizeof(WCHAR))
187
#define USB_PNP_SETUP_CLASS_NAME L"VMwareUSBDevices"
188
#define USB_PNP_DRIVER_NAME L"vmusb"
190
#define USB_PNP_SETUP_CLASS_NAME "VMwareUSBDevices"
191
#define USB_PNP_DRIVER_NAME "vmusb"
195
#endif /* VM_DEVICE_VERSION_H */