Datasheet
Processor Configuration Registers
284 Datasheet, Volume 2
2.18.28 IOTLB_REG—IOTLB Invalidate Register
This register is used to invalidate IOTLB. The act of writing the upper byte of the IOTLB_REG
with the IVT field Set causes the hardware to perform the IOTLB invalidation.
B/D/F/Type: 0/2/0/GFXVTBAR
Address Offset: 108–10Fh
Reset Value: 0200000000000000h
Access: RW, RO
Bit Attr
Reset
Value
Description
63 RW 0b
Invalidate IOTLB (IVT)
Software requests IOTLB invalidation by setting this field. Software must also
set the requested invalidation granularity by programming the IIRG field.
Hardware clears the IVT field to indicate the invalidation request is complete.
Hardware also indicates the granularity at which the invalidation operation
was performed through the IAIG field.
Software must not submit another invalidation request through this register
while the IVT field is Set, nor update the associated Invalidate Address
register.
Software must not submit IOTLB invalidation requests when there is a
context-cache invalidation request pending at this remapping hardware unit.
Refer to the VTd specification for software programming requirements.
Hardware implementations reporting a write-buffer flushing requirement
(RWBF=1 in Capability register) must implicitly perform a write buffer
flushing before invalidating the IOTLB. Refer to the VTd specification for write
buffer flushing requirements.
62:60 RW 000b
IOTLB Invalidation Request Granularity (IIRG)
When requesting hardware to invalidate the IOTLB (by setting the IVT field),
software writes the requested invalidation granularity through this field. The
following are the encodings for the field.
000 = Reserved.
001 = Global invalidation request.
010 = Domain-selective invalidation request. The target domain-id must be
specified in the DID field.
011 = Page-selective invalidation request. The target address, mask and
invalidation hint must be specified in the Invalidate Address register,
and the domain-id must be provided in the DID field.
100 – 111 = Reserved.
Hardware implementations may process an invalidation request by
performing invalidation at a coarser granularity than requested. Hardware
indicates completion of the invalidation request by clearing the IVT field. At
that time, the granularity at which actual invalidation was performed is
reported through the IAIG field.
59:57 RO 001b
IOTLB Actual Invalidation Granularity (IAIG)
Hardware reports the granularity at which an invalidation request was
processed through this field when reporting invalidation completion (by
clearing the IVT field).
The following are the encodings for this field.
000 =Reserved. This indicates hardware detected an incorrect invalidation
request and ignored the request. Examples of incorrect invalidation
requests include detecting an unsupported address mask value in
Invalidate Address register for page-selective invalidation requests.
001 =Global Invalidation performed. This could be in response to a global,
domain-selective, or page-selective invalidation request.
010 =Domain-selective invalidation performed using the domain-id specified
by software in the DID field. This could be in response to a domain-
selective, or page-selective invalidation request.
011 =Domain-page-selective invalidation performed using the address, mask
and hint specified by software in the Invalidate Address register and
domain-id specified in DID field. This can be in response to a page-
selective invalidation request.
100–111 = Reserved.