23 Aug, 2019

1 commit


20 Aug, 2019

1 commit

  • As part of the grand SMMU driver refactoring effort, the I/O register
    accessors were moved into 'arm-smmu.h' in commit 6d7dff62afb0
    ("iommu/arm-smmu: Move Secure access quirk to implementation").

    On 32-bit architectures (such as ARM), the 64-bit accessors are defined
    in 'linux/io-64-nonatomic-hi-lo.h', so include this header to fix the
    build.

    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy
     

19 Aug, 2019

6 commits

  • Allocating and initialising a context for a domain is another point
    where certain implementations are known to want special behaviour.
    Currently the other half of the Cavium workaround comes into play here,
    so let's finish the job to get the whole thing right out of the way.

    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy
     
  • Reset is an activity rife with implementation-defined poking. Add a
    corresponding hook, and use it to encapsulate the existing MMU-500
    details.

    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy
     
  • Probing the ID registers and setting up the SMMU configuration is an
    area where overrides and workarounds may well be needed. Indeed, the
    Cavium workaround detection lives there at the moment, so let's break
    that out.

    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy
     
  • Move detection of the Secure access quirk to its new home, trimming it
    down in the process - time has proven that boolean DT flags are neither
    ideal nor necessarily sufficient, so it's highly unlikely we'll ever add
    more, let alone enough to justify the frankly overengineered parsing
    machinery.

    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy
     
  • Add some nascent infrastructure for handling implementation-specific
    details outside the flow of the architectural code. This will allow us
    to keep mutually-incompatible vendor-specific hooks in their own files
    where the respective interested parties can maintain them with minimal
    chance of conflicts. As somewhat of a template, we'll start with a
    general place to collect the relatively trivial existing quirks.

    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy
     
  • We're about to start using it for more than just register definitions,
    so generalise the name.

    Signed-off-by: Robin Murphy
    Signed-off-by: Will Deacon

    Robin Murphy