]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Include/Guid/ArmMpCoreInfo.h
ArmPkg: Replace CoreId and ClusterId with Mpidr in ARM_CORE_INFO struct
[mirror_edk2.git] / ArmPkg / Include / Guid / ArmMpCoreInfo.h
1 /** @file
2 *
3 * Copyright (c) 2011, ARM Limited. All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-2-Clause-Patent
6 *
7 **/
8
9 #ifndef ARM_MP_CORE_INFO_GUID_H_
10 #define ARM_MP_CORE_INFO_GUID_H_
11
12 #define MAX_CPUS_PER_MPCORE_SYSTEM 0x04
13 #define SCU_CONFIG_REG_OFFSET 0x04
14 #define MPIDR_U_BIT_MASK 0x40000000
15
16 typedef struct {
17 UINT64 Mpidr;
18
19 // MP Core Mailbox
20 EFI_PHYSICAL_ADDRESS MailboxSetAddress;
21 EFI_PHYSICAL_ADDRESS MailboxGetAddress;
22 EFI_PHYSICAL_ADDRESS MailboxClearAddress;
23 UINT64 MailboxClearValue;
24 } ARM_CORE_INFO;
25
26 typedef struct {
27 UINT64 Signature;
28 UINT32 Length;
29 UINT32 Revision;
30 UINT64 OemId;
31 UINT64 OemTableId;
32 UINTN OemRevision;
33 UINTN CreatorId;
34 UINTN CreatorRevision;
35 EFI_GUID Identifier;
36 UINTN DataLen;
37 } ARM_PROCESSOR_TABLE_HEADER;
38
39 typedef struct {
40 ARM_PROCESSOR_TABLE_HEADER Header;
41 UINTN NumberOfEntries;
42 ARM_CORE_INFO *ArmCpus;
43 } ARM_PROCESSOR_TABLE;
44
45 #define ARM_MP_CORE_INFO_GUID \
46 { 0xa4ee0728, 0xe5d7, 0x4ac5, {0xb2, 0x1e, 0x65, 0x8e, 0xd8, 0x57, 0xe8, 0x34} }
47
48 #define EFI_ARM_PROCESSOR_TABLE_SIGNATURE SIGNATURE_64 ('C', 'P', 'U', 'T', 'A', 'B', 'L', 'E')
49 #define EFI_ARM_PROCESSOR_TABLE_REVISION 0x00010000// 1.0
50 #define EFI_ARM_PROCESSOR_TABLE_OEM_ID SIGNATURE_64('A','R','M',' ', 'L', 't', 'd', ' ')
51 #define EFI_ARM_PROCESSOR_TABLE_OEM_TABLE_ID SIGNATURE_64('V', 'E', 'R', 'S', 'A', 'T', 'I', 'L')
52 #define EFI_ARM_PROCESSOR_TABLE_OEM_REVISION 0x00000001
53 #define EFI_ARM_PROCESSOR_TABLE_CREATOR_ID 0xA5A5A5A5
54 #define EFI_ARM_PROCESSOR_TABLE_CREATOR_REVISION 0x01000001
55
56 extern EFI_GUID gArmMpCoreInfoGuid;
57
58 #endif /* ARM_MP_CORE_INFO_GUID_H_ */