On Tue, Sep 15, 2020 at 02:36:48PM +0200, Thierry Reding wrote: > On Mon, Sep 14, 2020 at 04:08:29PM -0600, Rob Herring wrote: > > On Fri, Sep 04, 2020 at 02:59:57PM +0200, Thierry Reding wrote: > > > From: Thierry Reding > > > > > > Reserved memory regions can be marked as "active" if hardware is > > > expected to access the regions during boot and before the operating > > > system can take control. One example where this is useful is for the > > > operating system to infer whether the region needs to be identity- > > > mapped through an IOMMU. > > > > I like simple solutions, but this hardly seems adequate to solve the > > problem of passing IOMMU setup from bootloader/firmware to the OS. Like > > what is the IOVA that's supposed to be used if identity mapping is not > > used? > > The assumption here is that if the region is not active there is no need > for the IOVA to be specified because the kernel will allocate memory and > assign any IOVA of its choosing. > > Also, note that this is not meant as a way of passing IOMMU setup from > the bootloader or firmware to the OS. The purpose of this is to specify > that some region of memory is actively being accessed during boot. The > particular case that I'm looking at is where the bootloader set up a > splash screen and keeps it on during boot. The bootloader has not set up > an IOMMU mapping and the identity mapping serves as a way of keeping the > accesses by the display hardware working during the transitional period > after the IOMMU translations have been enabled by the kernel but before > the kernel display driver has had a chance to set up its own IOMMU > mappings. > > > If you know enough about the regions to assume identity mapping, then > > can't you know if active or not? > > We could alternatively add some property that describes the region as > requiring an identity mapping. But note that we can't make any > assumptions here about the usage of these regions because the IOMMU > driver simply has no way of knowing what they are being used for. > > Some additional information is required in device tree for the IOMMU > driver to be able to make that decision. Rob, can you provide any hints on exactly how you want to move this forward? I don't know in what direction you'd like to proceed. Thierry