1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
=encoding utf8
=head1 NAME
xl-pci-configuration - XL PCI Configuration Syntax
=head1 SYNTAX
This document specifies the format for B<BDF> and B<PCI_SPEC_STRING> which are
used by the L<xl.cfg(5)> pci configuration option, and related L<xl(1)>
commands.
A B<BDF> has the following form:
[DDDD:]BB:SS.F
B<DDDD> is the domain number, B<BB> is the bus number, B<SS> is the device (or
slot) number, and B<F> is the function number. This is the same scheme as
used in the output of L<lspci(1)> for the device in question. By default
L<lspci(1)> will omit the domain (B<DDDD>) if it is zero and hence a zero
value for domain may also be omitted when specifying a B<BDF>.
Each B<PCI_SPEC_STRING> has the one of the forms:
=over 4
[<bdf>[@<vslot>,][<key>=<value>,]*
[<key>=<value>,]*
=back
For example, these strings are equivalent:
=over 4
36:00.0@20,seize=1
36:00.0,vslot=20,seize=1
bdf=36:00.0,vslot=20,seize=1
=back
More formally, the string is a series of comma-separated keyword/value
pairs, flags and positional parameters. Parameters which are not bare
keywords and which do not contain "=" symbols are assigned to the
positional parameters, in the order specified below. The positional
parameters may also be specified by name.
Each parameter may be specified at most once, either as a positional
parameter or a named parameter. Default values apply if the parameter
is not specified, or if it is specified with an empty value (whether
positionally or explicitly).
B<NOTE>: In context of B<xl pci-detach> (see L<xl(1)>), parameters other than
B<bdf> or B<name> will be ignored.
=head1 Positional Parameters
=over 4
=item B<bdf>=I<BDF>
=over 4
=item Description
This identifies the PCI device from the host perspective.
In the context of a B<PCI_SPEC_STRING> you may specify the function (B<F>) as
B<*> to indicate all functions of a multi-function device.
=item Default Value
None. This parameter is mandatory in its positional form. As a non-positional
parameter it is also mandatory unless a B<name> parameter is present, in
which case B<bdf> must not be present since the B<name> will be used to find
the B<bdf> in the list of assignable devices. See L<xl(1)> for more information
on naming assignable devices.
=back
=item B<vslot>=I<NUMBER>
=over 4
=item Description
Specifies the virtual slot (device) number where the guest will see this
device. For example, running L<lspci(1)> in a Linux guest where B<vslot>
was specified as C<8> would identify the device as C<00:08.0>. Virtual domain
and bus numbers are always 0.
B<NOTE:> This parameter is always parsed as a hexidecimal value.
=item Default Value
None. This parameter is not mandatory. An available B<vslot> will be selected
if this parameter is not specified.
=back
=back
=head1 Other Parameters and Flags
=over 4
=item B<permissive>=I<BOOLEAN>
=over 4
=item Description
By default pciback only allows PV guests to write "known safe" values
into PCI configuration space, likewise QEMU (both qemu-xen and
qemu-xen-traditional) imposes the same constraint on HVM guests.
However, many devices require writes to other areas of the configuration space
in order to operate properly. This option tells the backend (pciback or QEMU)
to allow all writes to the PCI configuration space of this device by this
domain.
B<This option should be enabled with caution:> it gives the guest much
more control over the device, which may have security or stability
implications. It is recommended to only enable this option for
trusted VMs under administrator's control.
=item Default Value
0
=back
=item B<msitranslate>=I<BOOLEAN>
=over 4
=item Description
Specifies that MSI-INTx translation should be turned on for the PCI
device. When enabled, MSI-INTx translation will always enable MSI on
the PCI device regardless of whether the guest uses INTx or MSI.
=item Default Value
Some device drivers, such as NVIDIA's, detect an inconsistency and do not
function when this option is enabled. Therefore the default is false (0).
=back
=item B<seize>=I<BOOLEAN>
=over 4
=item Description
Tells L<xl(1)> to automatically attempt to make the device assignable to
guests if that has not already been done by the B<pci-assignable-add>
command.
B<WARNING:> If you set this option, L<xl> will gladly re-assign a critical
system device, such as a network or a disk controller being used by
dom0 without confirmation. Please use with care.
=item Default Value
0
=back
=item B<power_mgmt>=I<BOOLEAN>
=over 4
=item Description
B<(HVM only)> Specifies that the VM should be able to program the
D0-D3hot power management states for the PCI device.
=item Default Value
0
=back
=item B<rdm_policy>=I<STRING>
=over 4
=item Description
B<(HVM/x86 only)> This is the same as the policy setting inside the B<rdm>
option in L<xl.cfg(5)> but just specific to a given device.
B<NOTE>: This overrides the global B<rdm> option.
=item Default Value
"strict"
=back
=item B<name>=I<STRING>
=over 4
=item Description
This is the name given when the B<BDF> was made assignable. See L<xl(1)> for
more information on naming assignable devices.
=item Default Value
None. This parameter must not be present if a B<bdf> parameter is present.
If a B<bdf> parameter is not present then B<name> is mandatory as it is
required to look up the B<BDF> in the list of assignable devices.
=back
=back
|