[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v7 7/8] AMD/IOMMU: add "ivmd=" command line option
On 26/08/2021 08:25, Jan Beulich wrote: > Just like VT-d's "rmrr=" it can be used to cover for firmware omissions. > Since systems surfacing IVMDs seem to be rare, it is also meant to allow > testing of the involved code. > > Only the IVMD flavors actually understood by the IVMD parsing logic can > be generated, and for this initial implementation there's also no way to > control the flags field - unity r/w mappings are assumed. > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > Reviewed-by: Paul Durrant <paul@xxxxxxx> > --- > v5: New. > > --- a/docs/misc/xen-command-line.pandoc > +++ b/docs/misc/xen-command-line.pandoc > @@ -836,12 +836,12 @@ Controls for the dom0 IOMMU setup. > > Typically, some devices in a system use bits of RAM for communication, > and > these areas should be listed as reserved in the E820 table and identified > - via RMRR or IVMD entries in the APCI tables, so Xen can ensure that they > + via RMRR or IVMD entries in the ACPI tables, so Xen can ensure that they Oops. > @@ -1523,6 +1523,31 @@ _dom0-iommu=map-inclusive_ - using both > > `= <integer>` > > ### irq_vector_map (x86) > + > +### ivmd (x86) > +> `= > <start>[-<end>][=<bdf1>[-<bdf1'>][,<bdf2>[-<bdf2'>][,...]]][;<start>...]` > + > +Define IVMD-like ranges that are missing from ACPI tables along with the > +device(s) they belong to, and use them for 1:1 mapping. End addresses can be > +omitted when exactly one page is meant. The ranges are inclusive when start > +and end are specified. Note that only PCI segment 0 is supported at this > time, > +but it is fine to specify it explicitly. > + > +'start' and 'end' values are page numbers (not full physical addresses), > +in hexadecimal format (can optionally be preceded by "0x"). > + > +Omitting the optional (range of) BDF spcifiers signals that the range is to > +be applied to all devices. > + > +Usage example: If device 0:0:1d.0 requires one page (0xd5d45) to be > +reserved, and devices 0:0:1a.0...0:0:1a.3 collectively require three pages > +(0xd5d46 thru 0xd5d48) to be reserved, one usage would be: > + > +ivmd=d5d45=0:1d.0;0xd5d46-0xd5d48=0:1a.0-0:1a.3 > + > +Note: grub2 requires to escape or quote special characters, like ';' when > +multiple ranges are specified - refer to the grub2 documentation. I'm slightly concerned that we're putting in syntax which the majority bootloader in use can't handle. A real IVMD entry in hardware doesn't have the concept of multiple device ranges, so I think comma ought to be the main list separator, and I don't think we need ; at all. ~Andrew
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |