Skip to content
Snippets Groups Projects
  1. Jan 08, 2020
    • Patrick Daly's avatar
      lrdp: iommulib: Find iommu domains via devices_kset · cc96ebf7
      Patrick Daly authored
      Add another method of finding iommu domains. This approach does not require
      any specific debug kconfig options to be enabled. However, it will not be
      able to locate non-active iommu domains.
      
      Change-Id: I84dfde76ae78ccc7cb9aa04eb7535773b9918d08
      cc96ebf7
    • Patrick Daly's avatar
      lrdp: iommulib: Refactor methods to find iommu domains · 5de3c5f0
      Patrick Daly authored
      There are several different methods to find all iommu domains.
      Reorganaize them into different functions.
      
      Stop treating iommu_debug_attachments as a pointer (since
      it is not a pointer but a struct list_head), by replacing:
      
          list_head_attachments = ramdump.read_pointer(
                                                 'iommu_debug_attachments')
          list_head_arm_addr = self.ramdump.read_structure_field(
              list_head_attachments, 'struct list_head', 'prev')
      
      with:
      
          list_head_attachments = ramdump.address_of(
                                                 'iommu_debug_attachments')
      
      Change-Id: I096ba602cf374229a0c2d1090899b91e04852885
      5de3c5f0
  2. Mar 22, 2018
  3. Feb 16, 2018
    • Patrick Daly's avatar
      lrdp: iommu: fix page table parsing · 137cd66a
      Patrick Daly authored
      New kernel versions have altered the definition of
      'struct arm_lpae_io_pgtable'. Get the required values from
      'struct io_pgtable_cfg' instead.
      
      Change-Id: Idf91c0efdddb58cdb0130d8a97e4757d05925850
      137cd66a
  4. Jan 24, 2018
    • Patrick Daly's avatar
      lrdp: iommulib: Add fast-map support · 0ed70037
      Patrick Daly authored
      Fast map uses a different io-pgtable implementation. Detect this
      and use fast-map data structures instead where required.
      
      Change-Id: I2d2cdbd2427aea4ffa4896bbc63b6d57c9c66f32
      0ed70037
  5. Jul 13, 2017
  6. Sep 06, 2016
    • Shiraz Hashim's avatar
      lrdp-v2: Refine AARCH64 page table format parsing · 22b531a0
      Shiraz Hashim authored
      Presently, we can have combination of legacy msm_iommu
      or arm-smmu driver managed iommu domain. Further the page
      table format also may differ in these respective managed
      domains. While with arm-smmu driver, we only use armv8
      page table format, with legacy msm_iommu driver we can
      support both armv7s and armv8 format page tables.
      
      Refactor the code to distinguish respective domain as to
      what pagetable format it supports and accordingly call
      corresponding page table parser.
      
      Change-Id: I71479dc70d93124603f6bd5403296efa4e6dfdeb
      22b531a0
  7. Jun 29, 2016
    • Liam Mark's avatar
      lrdp-v2: check for NULL pgtbl_ops · 300f50ee
      Liam Mark authored
      Ensure we don't try to parse the page tables for an arm_smmu_domain
      where the pgtbl_ops is NULL.
      
      CRs-Fixed: 1034128
      Change-Id: If9e63e27a052ed45ad3c187983311acdc3376579
      300f50ee
    • Liam Mark's avatar
      lrdp-v2: support for arm_smmu_domain container of iommu_domain · a6485a35
      Liam Mark authored
      The arm_smmu_domain is no longer stored in the iommu_domain priv
      field, from kernel version 4.1 the arm_smmu_domain is a container
      of iommu_domain.
      
      Add support for this configuration.
      
      CRs-Fixed: 1034128
      Change-Id: I949ec4a24a7dedc394aedc3e6e30e64f34ca3715
      a6485a35
  8. Apr 28, 2016
  9. Sep 09, 2014
    • Mitchel Humpherys's avatar
      lrdpv2: use explicitly-sized types in Iommu parsing · 162f7411
      Mitchel Humpherys authored
      The `RamParse.read_word' function reads a different number of bits
      depending on the architecture (it reads 32 bits on ARM and 64 bits on
      ARM64). We were relying on it to only read 32 bits in a few places, so
      things were broken on ARM64. Fix this by using explicitly-sized reads
      where appropriate.
      
      Change-Id: Id717787c4e7df344964387d245b732d9fffb1397
      162f7411
  10. Apr 23, 2014
    • Mitchel Humpherys's avatar
      lrdp-v2: linux_list.py: make the `extra' argument of `walk' optional · e2f87e11
      Mitchel Humpherys authored
      It's not always useful to pass extra data to the list walker function.
      For example, if the list walker function is a class method, state can be
      passed around by simply modifying class instance variables. Update
      `ListWalker.walk' to accept extra arguments optionally, not require
      them.
      
      Change-Id: I433f1e34db5c143c838f0eb2ed7f58203712ccb3
      e2f87e11
  11. Apr 21, 2014
    • Mitchel Humpherys's avatar
      lrdp-v2: add support for parsing LPAE IOMMU page table · 9de5aebd
      Mitchel Humpherys authored
      The IOMMU parser currently only supports short-descriptor format page
      tables but hardware supports long-descriptor format page tables. Add
      support for the long-descriptor format. Most of the existing LPAE MMU
      code can be re-used for this, although it must be refactored a bit.
      
      Change-Id: I464d7edeb8818c0be9de1e1a8224bc9b478eac37
      9de5aebd
  12. Apr 16, 2014
    • Mitchel Humpherys's avatar
      lrdp-v2: refactor Iommu domain parsing code · 29d3f2ed
      Mitchel Humpherys authored
      The Iommu domain parsing code is common across different Iommu page
      table types (normal vs LPAE). Pull this code out so that it can be
      easily re-used later when LPAE page table support is added.
      
      Change-Id: Ifc39c12428a9c090f8197d997ddd293e0ae1f0b1
      29d3f2ed
Loading