On 11/18/2023 1:21 PM, Bryan O'Donoghue wrote: > On 18/11/2023 04:27, Georgi Djakov wrote: >> The TCUs (Translation Control Units) and TBUs (Translation Buffer >> Units) are key components of the MMU-500. Multiple TBUs are connected >> to a single TCU over an interconnect. Each TBU contains a TLB that >> caches page tables. The MMU-500 implements a TBU for each connected >> master, and the TBU is designed, so that it is local to the master. >> >> The Qualcomm SDM845 platform has an implementation of the SMMU-500, >> that has multiple TBUs. A DT schema is added to describe the resources >> for each TBU (register space, power-domains, interconnects and clocks). >> >> The TBU driver will manage the resources and allow the system to >> operate the TBUs during a context fault to obtain details by doing >> s1 inv, software + hardware page table walks etc. This is implemented >> with ATOS/eCATs as the ATS feature is not supported. Being able to >> query the TBUs is useful for debugging various hardware/software >> issues on these platforms. >> >> v2: >> - Improve DT binding description, add full example. (Konrad) >> - Drop Qcom specific stuff from the generic binding. (Rob) >> - Unconditionally try to populate subnodes. (Konrad) >> - Improve TBU driver commit text, remove memory barriers. (Bjorn) >> - Move TBU stuff into separate file. Make the driver builtin. >> - TODO: Evaluate whether to keep TBU support as a separate driver >> or just instantiate things from qcom_smmu_impl_init() >> >> v1: https://lore.kernel.org/r/20231019021923.13939-1-quic_c_gdjako@xxxxxxxxxxx > > What is your suggested way to test this series ? Hi Bryan, Just break some driver to initiate a memory transaction with no valid context. I used venus for that. Or the simplest would be to just specify an invalid stream ID in DT for some device. Thanks, Georgi