summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Abraham <thomas.abraham@arm.com>2019-07-22 12:35:07 +0530
committerVijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>2019-10-23 11:16:18 +0530
commit125239927751e304b375bb8a1a621af0d8796437 (patch)
tree0ebe9048261f2aec77637cf753130ca973e52607
parentfde0219a480f03ce9825cfd0fa67cd7220bb14e6 (diff)
Platform/Sgi: disable the use of management mode
RD-Daniel platform does not support management mode yet. So keep it disabled for now. Signed-off-by: Thomas Abraham <thomas.abraham@arm.com>
-rw-r--r--Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Srat.aslc134
-rw-r--r--Platform/ARM/SgiPkg/SgiPlatform.dsc1
-rw-r--r--Platform/ARM/SgiPkg/SgiPlatform.fdf3
3 files changed, 138 insertions, 0 deletions
diff --git a/Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Srat.aslc b/Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Srat.aslc
new file mode 100644
index 00000000..60d27d81
--- /dev/null
+++ b/Platform/ARM/SgiPkg/AcpiTables/RdDaniel/Srat.aslc
@@ -0,0 +1,134 @@
+/** @file
+* Secondary System Description Table (SSDT)
+*
+* Copyright (c) 2018-2019, ARM Limited. All rights reserved.
+*
+* SPDX-License-Identifier: BSD-2-Clause-Patent
+*
+**/
+
+#include <IndustryStandard/Acpi.h>
+#include <Library/AcpiLib.h>
+#include <Library/ArmLib.h>
+
+//
+// ACPI table information used to initialize tables.
+//
+#define EFI_ACPI_ARM_OEM_ID 'A','R','M','L','T','D' // OEMID 6 bytes long
+#define EFI_ACPI_ARM_OEM_TABLE_ID SIGNATURE_64('A','R','M','N','1','S','D','P') // OEM table id 8 bytes long
+#define EFI_ACPI_ARM_OEM_REVISION 0x20181101
+#define EFI_ACPI_ARM_CREATOR_ID SIGNATURE_32('A','R','M',' ')
+#define EFI_ACPI_ARM_CREATOR_REVISION 0x00000099
+
+// A macro to initialise the common header part of EFI ACPI tables as defined by
+// EFI_ACPI_DESCRIPTION_HEADER structure.
+#define ARM_ACPI_HEADER(Signature, Type, Revision) { \
+ Signature, /* UINT32 Signature */ \
+ sizeof (Type), /* UINT32 Length */ \
+ Revision, /* UINT8 Revision */ \
+ 0, /* UINT8 Checksum */ \
+ { EFI_ACPI_ARM_OEM_ID }, /* UINT8 OemId[6] */ \
+ EFI_ACPI_ARM_OEM_TABLE_ID, /* UINT64 OemTableId */ \
+ EFI_ACPI_ARM_OEM_REVISION, /* UINT32 OemRevision */ \
+ EFI_ACPI_ARM_CREATOR_ID, /* UINT32 CreatorId */ \
+ EFI_ACPI_ARM_CREATOR_REVISION /* UINT32 CreatorRevision */ \
+ }
+
+
+#define EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT( \
+ ProximityDomain, AddressBaseLow, AddressBaseHigh, LengthLow, LengthHigh, Flags) \
+ { \
+ 1, sizeof (EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE),ProximityDomain , EFI_ACPI_RESERVED_WORD, \
+ AddressBaseLow, AddressBaseHigh, LengthLow, LengthHigh, EFI_ACPI_RESERVED_DWORD, Flags, \
+ EFI_ACPI_RESERVED_QWORD \
+ }
+
+#define EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT( \
+ ProximityDomain, ACPIProcessorUID, Flags, ClockDomain) \
+ { \
+ 3, sizeof (EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE),ProximityDomain , \
+ ACPIProcessorUID, Flags, ClockDomain \
+ }
+
+#if 0
+#define EFI_ACPI_6_3_GIC_ITS_AFFINITY_STRUCTURE_INIT( \
+ ProximityDomain, ITSID) \
+ { \
+ 4, sizeof (EFI_ACPI_6_3_GIC_ITS_AFFINITY_STRUCTURE), ProximityDomain, \
+ {0x00, 0x00}, ITSID \
+ }
+#endif
+
+//
+// Static Resource Affinity Table
+//
+#pragma pack (1)
+
+typedef struct {
+ EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER Header;
+ EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE Memory[4];
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE Gicc[8];
+ //EFI_ACPI_6_3_GIC_ITS_AFFINITY_STRUCTURE Its[4];
+} EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE;
+
+#pragma pack ()
+
+EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE Srat = {
+ // Header
+ {
+ ARM_ACPI_HEADER (
+ EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE,
+ EFI_ACPI_STATIC_RESOURCE_AFFINITY_TABLE,
+ EFI_ACPI_6_3_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION
+ ),
+ 0x00000001,
+ EFI_ACPI_RESERVED_QWORD
+ },
+
+ // Memory Affinity
+ {
+ // ProximityDomain, AddressBaseLow, AddressBaseHigh, LengthLow, LengthHigh, Flags)
+ EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x0,0x80000000,0x00000000,0x7F000000,0x00000000,0x00000001),
+
+ // Chip 0 - 6GB
+ EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x0,0x80000000,0x00000080,0x80000000,0x00000001,0x00000001),
+
+ // Chip 1 - 2GB
+ EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x1,0x80000000,0x00000400,0x7F000000,0x00000000,0x00000001),
+
+ // Chip 1 - 6GB
+ // EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x1,0x80000000,0x00000480,0x80000000,0x00000000,0x00000001),
+ // EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x1,0x00000000,0x00000481,0x80000000,0x00000000,0x00000001),
+ // EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x1,0x80000000,0x00000481,0x7A000000,0x00000000,0x00000001),
+
+ EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x1,0x80000000,0x00000480,0x80000000,0x00000001,0x00000001),
+
+ },
+
+ //EFI_ACPI_6_3_MEMORY_AFFINITY_STRUCTURE_INIT(0x0,0xFF600000,0x00000000,0x00010000,0x00000000,0x00000000),
+
+ // Processor Affinity
+ {
+ // ProximityDomain, ACPIProcessorUID, Flags, ClockDomain
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x0,0x00000000,0x00000001,0x00000000),
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x0,0x00000001,0x00000001,0x00000000),
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x0,0x00000002,0x00000001,0x00000000),
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x0,0x00000003,0x00000001,0x00000000),
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x1,0x00000004,0x00000001,0x00000000),
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x1,0x00000005,0x00000001,0x00000000),
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x1,0x00000006,0x00000001,0x00000000),
+ EFI_ACPI_6_3_GICC_AFFINITY_STRUCTURE_INIT(0x1,0x00000007,0x00000001,0x00000000),
+ },
+
+#if 0
+ // ITS Affinity
+ {
+ EFI_ACPI_6_3_GIC_ITS_AFFINITY_STRUCTURE_INIT(0x0, 0x00000000),
+ EFI_ACPI_6_3_GIC_ITS_AFFINITY_STRUCTURE_INIT(0x0, 0x00000001),
+ EFI_ACPI_6_3_GIC_ITS_AFFINITY_STRUCTURE_INIT(0x0, 0x00000002),
+ EFI_ACPI_6_3_GIC_ITS_AFFINITY_STRUCTURE_INIT(0x0, 0x00000003),
+ },
+#endif
+};
+
+VOID* CONST ReferenceAcpiTable = &Srat;
diff --git a/Platform/ARM/SgiPkg/SgiPlatform.dsc b/Platform/ARM/SgiPkg/SgiPlatform.dsc
index a33f35c4..5b844f02 100644
--- a/Platform/ARM/SgiPkg/SgiPlatform.dsc
+++ b/Platform/ARM/SgiPkg/SgiPlatform.dsc
@@ -375,3 +375,4 @@
#
MdeModulePkg/Bus/Pci/SataControllerDxe/SataControllerDxe.inf
+ #ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
diff --git a/Platform/ARM/SgiPkg/SgiPlatform.fdf b/Platform/ARM/SgiPkg/SgiPlatform.fdf
index 11fd6b53..ffa71385 100644
--- a/Platform/ARM/SgiPkg/SgiPlatform.fdf
+++ b/Platform/ARM/SgiPkg/SgiPlatform.fdf
@@ -171,6 +171,9 @@ READ_LOCK_STATUS = TRUE
#
INF ShellPkg/Application/Shell/Shell.inf
+ # MM Communicate
+ # INF ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
+
#
# Platform driver
#