On Tue, Jul 23, 2019 at 8:38 AM Will Deacon <will@xxxxxxxxxx> wrote: > > On Mon, Jul 22, 2019 at 09:23:48AM -0700, Rob Clark wrote: > > On Mon, Jul 22, 2019 at 8:48 AM Joerg Roedel <joro@xxxxxxxxxx> wrote: > > > > > > On Mon, Jul 22, 2019 at 08:41:34AM -0700, Rob Clark wrote: > > > > It is set by the driver: > > > > > > > > https://patchwork.freedesktop.org/patch/315291/ > > > > > > > > (This doesn't really belong in devicetree, since it isn't a > > > > description of the hardware, so the driver is really the only place to > > > > set this.. which is fine because it is about a detail of how the > > > > driver works.) > > > > > > It is more a detail about how the firmware works. IIUC the problem is > > > that the firmware initializes the context mappings for the GPU and the > > > OS doesn't know anything about that and just overwrites them, causing > > > the firmware GPU driver to fail badly. > > > > > > So I think it is the task of the firmware to tell the OS not to touch > > > the devices mappings until the OS device driver takes over. On x86 there > > > is something similar with the RMRR/unity-map tables from the firmware. > > > > > > > Bjorn had a patchset[1] to inherit the config from firmware/bootloader > > when arm-smmu is probed which handles that part of the problem. My > > patch is intended to be used on top of his patchset. This seems to me > > like the best solution, if we don't have control over the firmware. > > Hmm, but the feedback from Robin on the thread you cite was that this should > be generalised to look more like RMRR, so there seems to be a clear message > here. > Perhaps it is a lack of creativity, or lack of familiarity w/ iommu vs virtualization, but I'm not quite seeing how RMRR would help.. in particular when dealing with both DT and ACPI cases. So I kinda prefer, when possible, if arm-smmu can figure out what is going on by looking at the hw state at boot (since that approach would work equally well for DT and ACPI). I *think* (but need to confirm if Bjorn hasn't already) that the memory for the pagetables that firmware/bootloader sets up is already removed from the memory map efi passes to kernel, so we don't need to worry about kernel stomping in-use pagetables. BR, -R