ACPICA: iasl: Fix IORT SMMU GSI disassembling

ACPICA commit 637b88de24a78c20478728d9d66632b06fcaa5bf

If the IORT template is compiled and then iort.aml binary disassembled to
iort.dsl, SMMUv1 node lists incorrect offset for SMMU_Nsg_cfg_irpt Interrupt:
[0ECh 0236   8]       SMMU_Nsg_irpt Interrupt : 0000000000000000
[0ECh 0236   8]    SMMU_Nsg_cfg_irpt Interrupt : 0000000000000000
This is because iasl hasn't implemented SMMU GSI decoding yet.

This patch fixes this issue by preparing structures for decoding IORT SMMU
GSI. ACPICA BZ 1340, reported by Alexei Fedorov, fixed by Lv Zheng.

Link: https://github.com/acpica/acpica/commit/637b88de
Link: https://bugs.acpica.org/show_bug.cgi?id=1340
Reported-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
Lv Zheng 2017-04-26 16:18:49 +08:00 committed by Rafael J. Wysocki
parent 9ff5a21a50
commit bb1e23e66e
1 changed files with 9 additions and 0 deletions

View File

@ -783,6 +783,15 @@ struct acpi_iort_smmu {
#define ACPI_IORT_SMMU_DVM_SUPPORTED (1) #define ACPI_IORT_SMMU_DVM_SUPPORTED (1)
#define ACPI_IORT_SMMU_COHERENT_WALK (1<<1) #define ACPI_IORT_SMMU_COHERENT_WALK (1<<1)
/* Global interrupt format */
struct acpi_iort_smmu_gsi {
u32 nsg_irpt;
u32 nsg_irpt_flags;
u32 nsg_cfg_irpt;
u32 nsg_cfg_irpt_flags;
};
struct acpi_iort_smmu_v3 { struct acpi_iort_smmu_v3 {
u64 base_address; /* SMMUv3 base address */ u64 base_address; /* SMMUv3 base address */
u32 flags; u32 flags;