Remove the ClusterId and CoreId fields in the ARM_CORE_INFO structure in favor of a new Mpidr field. Update code in ArmPlatformPkg/PrePeiCore/MainMPCore and ArmPlatformPkg/PrePi/MainMPCore.c to use the new field and call new macros GET_MPIDR_AFF0 and GET_MPIDR_AFF1 instead. Signed-off-by: Rebecca Cran <rebecca@nuviainc.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| *
 | |
| *  Copyright (c) 2011, ARM Limited. All rights reserved.
 | |
| *
 | |
| *  SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| *
 | |
| **/
 | |
| 
 | |
| #ifndef ARM_MP_CORE_INFO_GUID_H_
 | |
| #define ARM_MP_CORE_INFO_GUID_H_
 | |
| 
 | |
| #define MAX_CPUS_PER_MPCORE_SYSTEM  0x04
 | |
| #define SCU_CONFIG_REG_OFFSET       0x04
 | |
| #define MPIDR_U_BIT_MASK            0x40000000
 | |
| 
 | |
| typedef struct {
 | |
|   UINT64                  Mpidr;
 | |
| 
 | |
|   // MP Core Mailbox
 | |
|   EFI_PHYSICAL_ADDRESS    MailboxSetAddress;
 | |
|   EFI_PHYSICAL_ADDRESS    MailboxGetAddress;
 | |
|   EFI_PHYSICAL_ADDRESS    MailboxClearAddress;
 | |
|   UINT64                  MailboxClearValue;
 | |
| } ARM_CORE_INFO;
 | |
| 
 | |
| typedef struct {
 | |
|   UINT64      Signature;
 | |
|   UINT32      Length;
 | |
|   UINT32      Revision;
 | |
|   UINT64      OemId;
 | |
|   UINT64      OemTableId;
 | |
|   UINTN       OemRevision;
 | |
|   UINTN       CreatorId;
 | |
|   UINTN       CreatorRevision;
 | |
|   EFI_GUID    Identifier;
 | |
|   UINTN       DataLen;
 | |
| } ARM_PROCESSOR_TABLE_HEADER;
 | |
| 
 | |
| typedef struct {
 | |
|   ARM_PROCESSOR_TABLE_HEADER    Header;
 | |
|   UINTN                         NumberOfEntries;
 | |
|   ARM_CORE_INFO                 *ArmCpus;
 | |
| } ARM_PROCESSOR_TABLE;
 | |
| 
 | |
| #define ARM_MP_CORE_INFO_GUID \
 | |
|   { 0xa4ee0728, 0xe5d7, 0x4ac5,  {0xb2, 0x1e, 0x65, 0x8e, 0xd8, 0x57, 0xe8, 0x34} }
 | |
| 
 | |
| #define EFI_ARM_PROCESSOR_TABLE_SIGNATURE         SIGNATURE_64 ('C', 'P', 'U', 'T', 'A', 'B', 'L', 'E')
 | |
| #define EFI_ARM_PROCESSOR_TABLE_REVISION          0x00010000// 1.0
 | |
| #define EFI_ARM_PROCESSOR_TABLE_OEM_ID            SIGNATURE_64('A','R','M',' ', 'L', 't', 'd', ' ')
 | |
| #define EFI_ARM_PROCESSOR_TABLE_OEM_TABLE_ID      SIGNATURE_64('V', 'E', 'R', 'S', 'A', 'T', 'I', 'L')
 | |
| #define EFI_ARM_PROCESSOR_TABLE_OEM_REVISION      0x00000001
 | |
| #define EFI_ARM_PROCESSOR_TABLE_CREATOR_ID        0xA5A5A5A5
 | |
| #define EFI_ARM_PROCESSOR_TABLE_CREATOR_REVISION  0x01000001
 | |
| 
 | |
| extern EFI_GUID  gArmMpCoreInfoGuid;
 | |
| 
 | |
| #endif /* ARM_MP_CORE_INFO_GUID_H_ */
 |