diff options
| author | Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> | 2022-06-07 08:37:47 -0500 |
|---|---|---|
| committer | Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> | 2022-07-13 17:27:24 -0500 |
| commit | 23f81c17961ffb89701bec4a3773dd178d242f31 (patch) | |
| tree | 4943cf9df0812da40fb5bd19ddf135b72ca90c52 /include/linux/timerqueue.h | |
| parent | ce51cc80336eae16708d201f8db680a62cc556a1 (diff) | |
| download | cachepc-linux-23f81c17961ffb89701bec4a3773dd178d242f31.tar.gz cachepc-linux-23f81c17961ffb89701bec4a3773dd178d242f31.zip | |
iommu/amd: Process all IVHDs before enabling IOMMU features
The ACPI IVRS table can contain multiple IVHD blocks. Each block contains
information used to initialize each IOMMU instance.
Currently, init_iommu_all sequentially process IVHD block and initialize
IOMMU instance one-by-one. However, certain features require all IOMMUs
to be configured in the same way system-wide. In case certain IVHD blocks
contain inconsistent information (most likely FW bugs), the driver needs
to go through and try to revert settings on IOMMUs that have already been
configured.
A solution is to split IOMMU initialization into 3 phases:
Phase1 : Processes information of the IVRS table for all IOMMU instances.
This allow all IVHDs to be processed prior to enabling features.
Phase2 : Early feature support check on all IOMMUs (using information in
IVHD blocks.
Phase3 : Iterates through all IOMMU instances and enabling features.
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions
