Page MenuHomeFreeBSD

D60654.1794022883.diff
No OneTemporary

Authored By
Unknown
Size
1 KB
Referenced Files
None
Subscribers
None

D60654.1794022883.diff

diff --git a/sys/arm64/acpica/acpi_iort.c b/sys/arm64/acpica/acpi_iort.c
--- a/sys/arm64/acpica/acpi_iort.c
+++ b/sys/arm64/acpica/acpi_iort.c
@@ -139,11 +139,24 @@
* If all the control interrupts are GISCV based the ID
* mapping field is ignored.
*/
- if (node->data.smmu_v3.EventGsiv != 0 &&
- node->data.smmu_v3.PriGsiv != 0 &&
- node->data.smmu_v3.GerrGsiv != 0 &&
- node->data.smmu_v3.SyncGsiv != 0)
+ if (node->revision < 5) {
+ /*
+ * Before version 5 (DEN0049E.e) the Device ID is
+ * ignored if all control interrupts are GSIV based.
+ */
+ if (node->data.smmu_v3.EventGsiv != 0 &&
+ node->data.smmu_v3.PriGsiv != 0 &&
+ node->data.smmu_v3.GerrGsiv != 0 &&
+ node->data.smmu_v3.SyncGsiv != 0)
+ return (-1);
+ } else if ((node->data.smmu_v3.Flags &
+ ACPI_IORT_SMMU_V3_DEVICEID_VALID) == 0) {
+ /*
+ * From revision 5 check if the DeviceID valid flag
+ * is set.
+ */
return (-1);
+ }
if (node->data.smmu_v3.IdMappingIndex >= node->nentries)
return (-1);

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 7, 3:41 AM (5 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40760322
Default Alt Text
D60654.1794022883.diff (1 KB)

Event Timeline