Lines Matching refs:PE
14 A Partitionable Endpoint (PE) is a way to group the various resources
20 There is thus, in HW, a table of PE states that contains a pair of "frozen"
22 cleared independently) for each PE.
24 When a PE is frozen, all stores in any direction are dropped and all loads
45 correspondence between a PCIe RID (bus/dev/fn) with a PE number.
48 - For DMA we then provide an entire address space for each PE that can
57 bridge being triggered. There's a PE# in the interrupt controller
58 descriptor table as well which is compared with the PE# obtained from
87 maps each segment to a PE#. That allows portions of the MMIO space
94 can be assigned to a PE.
110 specify the PE# for the entire window. When segmented, a window
112 to a PE#. The segment number *is* the PE#.
130 - We do the PE# allocation *after* the 64-bit space has been assigned
131 because the addresses we use directly determine the PE#. We then
132 update the M32 PE# for the devices that use both 32-bit and 64-bit
133 spaces or assign the remaining PE# to 32-bit only devices.
136 than one segment, we end up with more than one PE#. There is a HW
143 "master PE" which is the one used for DMA, MSIs, etc., and "secondary
147 PE" mode to overlay over specific BARs to work around some of that, for
182 individually mapped to a PE via the lookup table, so this is quite
189 to a single PE, so it could only isolate one VF.
193 PEs (the segment number is the PE#), so there isn't as much
195 multiple PEs, which is not as well isolated as a single PE.
198 equally-sized segments, and the segment number is the PE#. But if we
210 The goal is of course to be able to give a separate PE for each VF.
213 range to PE#. Each M64 window defines one MMIO range and this range is
214 divided into 256 segments, with each segment corresponding to one PE.
276 In IODA2, the MMIO address determines the PE#. If the address is in an M32
277 window, we can set the PE# by updating the table that translates segments
278 to PE#s. Similarly, if the address is in an unsegmented M64 window, we can
279 set the PE# for the window. But if it's in a segmented M64 window, the
280 segment number is the PE#.
282 Therefore, the only way to control the PE# for a VF is to change the base
292 Then each VF will be in its own PE. The VF BARs (and therefore the PE#s)
293 are contiguous. If VF0 is in PE(x), then VF(n) is in PE(x+n). If we
294 allocate 256 segments, there are (256 - numVFs) choices for the PE# of VF0.
298 possible, but the isolation isn't as good, and it reduces the number of PE#