On Wed, Nov 1, 2023 at 9:51 PM Michael Brown <mc...@ipxe.org> wrote: > > On 01/11/2023 20:17, Joe L wrote: > > Thanks for the discussion, > > > > Are we saying that DataSynchronizationBarrier () before the return > > from RootBridgeIoPciAccess() is not strong enough to determine that > > the final ECAM write would have completed? According to Learn the > > architecture - ARMv8-A memory systems > > <https://developer.arm.com/documentation/100941/0101/Barriers> the > > DSB should block "execution of any further instructions, not just > > loads or stores, until synchronization is complete". To me this means > > that for Arm the DSB will stall any subsequent instructions until the > > completion for the ECAM write is received by the processor. > > I honestly can't tell from the wording there whether or not DSB would > guarantee that the configuration space write has completed all the way > to the target PCIe device (as opposed to e.g. completing as far as the > host bridge, or to an intermediate PCIe bridge). > > I don't know the answer, and it feels like the kind of messy area where > adding a barrier will definitely reduce the probability of the issue > occurring but might not guarantee a fix, which is a bad situation to be > left in.
Given we are working with Device nGnRnE memory, and the documentation says stuff like " This determines whether an intermediate write buffer between the processor and the slave device being accessed is allowed to send an acknowledgement of a write completion. If the address is marked as non Early Write Acknowledgement (nE), then the write response must come from the peripheral. If the address is marked as Early Write Acknowledgement (E), then it is permissible for a buffer in the interconnect logic to signal write acceptance, in advance of the write actually being received by the end device. This is essentially a message to the external memory system." I would expect the write ACK to come from the device itself (I can't wait for the obscure ARM doc that proves me wrong!) -- Pedro -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110494): https://edk2.groups.io/g/devel/message/110494 Mute This Topic: https://groups.io/mt/102310377/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-