Datasheet

Datasheet, Volume 2 227
Processor Configuration Registers
2.16.4 GCMD_REG—Global Command Register
This register controls DMA-remapping hardware. If multiple control fields in this
register need to be modified, software must serialize the modifications through multiple
writes to this register.
B/D/F/Type: 0/0/0/DMIVC1REMAP
Address Offset: 18–1Bh
Reset Value: 00000000h
Access: W, RO
Bit Attr
Reset
Value
Description
31 W 0b
Translation Enable (TE)
Software writes to this field to request hardware to enable/disable DMA-
remapping hardware.
0 = Disable DMA-remapping
1 = Enable DMA-remapping
Hardware reports the status of the translation enable operation through the
TES field in the Global Status register.
There may be active DMA requests in the platform when software updates
this field. Hardware must enable or disable remapping logic only at
deterministic transaction boundaries, so that any in-flight transaction is
either subject to remapping or not at all.
Hardware implementations supporting DMA draining must drain any in-flight
DMA read/write requests queued within the root complex before completing
the translation enable command and reflecting the status of the command
through the TES field in the GSTS_REG.
Value returned on read of this field is undefined.
30 W 0b
Set Root Table Pointer (SRTP)
Software sets this field to set/update the root-entry table pointer used by
hardware. The root-entry table pointer is specified through the Root-entry
Table Address register.
Hardware reports the status of the root table pointer set operation through
the RTPS field in the Global Status register.
The root table pointer set operation must be performed before enabling or
re-enabling (after disabling) DMA-remapping through the TE field.
After a root table pointer set operation, software must globally invalidate the
context cache followed by global invalidate of IOTLB. This is required to
ensure hardware uses only the remapping structures referenced by the new
root table pointer, and not any stale cached entries.
While DMA-remapping hardware is active, software may update the root
table pointer through this field.
However, to ensure valid in-flight DMA requests are deterministically
remapped, software must ensure that the structures referenced by the new
root table pointer are programmed to provide the same remapping results as
the structures referenced by the previous root table pointer.
Clearing this bit has no effect.
Value returned on read of this field is undefined.
29 W 0b
Set Fault Log (SFL)
This field is valid only for implementations supporting advanced fault logging.
Software sets this field to request hardware to set/update the fault-log
pointer used by hardware. The fault-log pointer is specified through
Advanced Fault Log register.
Hardware reports the status of the fault log set operation through the FLS
field in the Global Status register.
The fault log pointer must be set before enabling advanced fault logging
(through EAFL field). Once advanced fault logging is enabled, the fault log
pointer may be updated through this field while DMA-remapping is active.
Clearing this bit has no effect.
Value returned on read of this field is undefined.