You copied the Doc URL to your clipboard.

VMIDFilter component

The VMIDFilter is a small bridge placed before a device to allow access to only certain transactions based on their VMID value.

It prevents access to the downstream device if the transaction VMID does not match any valid VMID programmed in its registers.

This access restriction is applied if both the following conditions are met. If not, access is allowed:

  • VMID filtering is enabled.
  • Privilege level of transaction <= PL1.

Table 4-208 Registers

Name Offset Access Description
Control 0x0 Read/write Control register. Bits[31:1] are reserved, bit[0] enables or disables VMID filtering.
Status 0x4 Read only Status register. Bits[31:0] are the number of VMIDs supported.
VMIDIndex 0x8 Read/write VMID index register. Bits[31:0] are the index of the VMID value to be accessed by the VMIDValue register. For writes, if the index is greater than the number of VMIDs supported, the write is ignored.
VMIDValue 0xC Read/write VMID value register. Bits[30:0] are the VMID value present at VMIDIndex. Bit[31] indicates whether bits[30:0] are valid or not.

Table 4-209 Parameters

Name Type Default value Description
regbase uint64_t 0 Base address for accessing the registers.
enable bool false Enable filtering after reset.
num_vmid uint32_t 16 Number of VMID values on which filtering is supported.
log_enabled int 0 Enable log messages from the VMIDFilter. Set bit[0] to log from the register file, set bit[1] to log VMID permission faults.

Table 4-210 Ports

Name Protocol Type Description
pvbus_m PVBus Master Master port for connecting to downstream slave.
pvbus_s PVBus Slave Slave port for accessing internal registers and connecting to upstream master.
Was this page helpful? Yes No