diff options
Diffstat (limited to 'drivers/iommu/bcm2712-iommu.h')
| -rw-r--r-- | drivers/iommu/bcm2712-iommu.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/iommu/bcm2712-iommu.h b/drivers/iommu/bcm2712-iommu.h index 31b811e426dd..0597b4f0da87 100644 --- a/drivers/iommu/bcm2712-iommu.h +++ b/drivers/iommu/bcm2712-iommu.h @@ -2,7 +2,7 @@ /* * IOMMU driver for BCM2712 * - * Copyright (c) 2023 Raspberry Pi Ltd. + * Copyright (c) 2023-2025 Raspberry Pi Ltd. */ #ifndef _BCM2712_IOMMU_H @@ -25,16 +25,18 @@ struct bcm2712_iommu { struct iommu_group *group; struct bcm2712_iommu_domain *domain; char const *name; - struct sg_table *sgt; /* allocated memory for page tables */ - u32 *tables; /* kernel mapping for page tables */ + u64 dma_iova_offset; /* Hack for IOMMU attached to PCIe RC, included below */ + u64 aperture_base; /* Base of IOVA region as passed to DMA peripherals */ + u64 aperture_end; /* End of IOVA region as passed to DMA peripherals */ + u32 **tables; /* For each Linux page of L2 tables, kernel virtual address */ + u32 *top_table; /* Top-level table holding IOMMU page-numbers of L2 tables */ + u32 *default_page; /* Page used to trap illegal reads and writes */ struct bcm2712_iommu_cache *cache; spinlock_t hw_lock; /* to protect HW registers */ void __iomem *reg_base; - u64 dma_iova_offset; /* Hack for IOMMU attached to PCIe RC */ u32 bigpage_mask; u32 superpage_mask; unsigned int nmapped_pages; - bool dirty; /* true when tables are oriented towards CPU */ }; struct bcm2712_iommu_domain { |
