iPXE
thunderxcfg.h File Reference

Cavium ThunderX Board Configuration. More...

#include <ipxe/efi/efi.h>

Go to the source code of this file.

Data Structures

struct  _EFI_THUNDER_CONFIG_PROTOCOL
 Protocol structure. More...

Macros

#define MAX_NODES   2
#define CLUSTER_COUNT   3
#define CORE_PER_CLUSTER_COUNT   16
#define CORE_COUNT   (CLUSTER_COUNT*CORE_PER_CLUSTER_COUNT)
#define BGX_PER_NODE_COUNT   2
#define LMAC_PER_BGX_COUNT   4
#define PEM_PER_NODE_COUNT   6
#define LMC_PER_NODE_COUNT   4
#define DIMM_PER_LMC_COUNT   2
#define THUNDERX_CPU_ID(node, cluster, core)
#define EFI_THUNDER_CONFIG_PROTOCOL_GUID    {0xc12b1873, 0xac17, 0x4176, {0xac, 0x77, 0x7e, 0xcb, 0x4d, 0xef, 0xff, 0xec}}

Typedefs

typedef struct _EFI_THUNDER_CONFIG_PROTOCOL EFI_THUNDER_CONFIG_PROTOCOL
 Forward declaration.
typedef EFI_STATUS(EFIAPIEFI_THUNDER_CONFIG_PROTOCOL_GET_CONFIG) (IN EFI_THUNDER_CONFIG_PROTOCOL *This, OUT VOID **cfg)
 Function prototypes.
typedef EFI_STATUS(EFIAPIEFI_THUNDER_CONFIG_PROTOCOL_GET_BGX_PROP) (IN EFI_THUNDER_CONFIG_PROTOCOL *This, IN UINTN NodeId, IN UINTN BgxId, IN BGX_PROPERTY BgxProp, IN UINT64 ValueSize, OUT UINT64 *Value)
typedef EFI_STATUS(EFIAPIEFI_THUNDER_CONFIG_PROTOCOL_GET_LMAC_PROP) (IN EFI_THUNDER_CONFIG_PROTOCOL *This, IN UINTN NodeId, IN UINTN BgxId, IN UINTN LmacId, IN LMAC_PROPERTY LmacProp, IN UINT64 ValueSize, OUT UINT64 *Value)

Enumerations

enum  BGX_PROPERTY {
  BGX_ENABLED , BGX_MODE , LMAC_COUNT , BASE_ADDRESS ,
  LMAC_TYPE_BGX , QLM_MASK , QLM_FREQ , USE_TRAINING
}
enum  LMAC_PROPERTY { ENABLED , LANE_TO_SDS , MAC_ADDRESS }

Functions

 FILE_LICENCE (BSD2)

Detailed Description

Cavium ThunderX Board Configuration.

The definitions in this section are extracted from BSD-licensed (but non-public) portions of ThunderPkg.

Definition in file thunderxcfg.h.

Macro Definition Documentation

◆ MAX_NODES

#define MAX_NODES   2

Definition at line 54 of file thunderxcfg.h.

◆ CLUSTER_COUNT

#define CLUSTER_COUNT   3

Definition at line 55 of file thunderxcfg.h.

◆ CORE_PER_CLUSTER_COUNT

#define CORE_PER_CLUSTER_COUNT   16

Definition at line 56 of file thunderxcfg.h.

◆ CORE_COUNT

#define CORE_COUNT   (CLUSTER_COUNT*CORE_PER_CLUSTER_COUNT)

Definition at line 57 of file thunderxcfg.h.

◆ BGX_PER_NODE_COUNT

#define BGX_PER_NODE_COUNT   2

Definition at line 58 of file thunderxcfg.h.

◆ LMAC_PER_BGX_COUNT

#define LMAC_PER_BGX_COUNT   4

Definition at line 59 of file thunderxcfg.h.

◆ PEM_PER_NODE_COUNT

#define PEM_PER_NODE_COUNT   6

Definition at line 60 of file thunderxcfg.h.

◆ LMC_PER_NODE_COUNT

#define LMC_PER_NODE_COUNT   4

Definition at line 61 of file thunderxcfg.h.

◆ DIMM_PER_LMC_COUNT

#define DIMM_PER_LMC_COUNT   2

Definition at line 62 of file thunderxcfg.h.

◆ THUNDERX_CPU_ID

#define THUNDERX_CPU_ID ( node,
cluster,
core )
Value:
(((node) << 16) | ((cluster) << 8) | (core))
uint32_t node
NUMA node register offset.
Definition ena.h:7

Definition at line 64 of file thunderxcfg.h.

◆ EFI_THUNDER_CONFIG_PROTOCOL_GUID

#define EFI_THUNDER_CONFIG_PROTOCOL_GUID    {0xc12b1873, 0xac17, 0x4176, {0xac, 0x77, 0x7e, 0xcb, 0x4d, 0xef, 0xff, 0xec}}

Definition at line 87 of file thunderxcfg.h.

87#define EFI_THUNDER_CONFIG_PROTOCOL_GUID \
88 {0xc12b1873, 0xac17, 0x4176, {0xac, 0x77, 0x7e, 0xcb, 0x4d, 0xef, 0xff, 0xec}}

Typedef Documentation

◆ EFI_THUNDER_CONFIG_PROTOCOL

Forward declaration.

Definition at line 93 of file thunderxcfg.h.

◆ EFI_THUNDER_CONFIG_PROTOCOL_GET_CONFIG

typedef EFI_STATUS(EFIAPI * EFI_THUNDER_CONFIG_PROTOCOL_GET_CONFIG) (IN EFI_THUNDER_CONFIG_PROTOCOL *This, OUT VOID **cfg)

Function prototypes.

Definition at line 116 of file thunderxcfg.h.

◆ EFI_THUNDER_CONFIG_PROTOCOL_GET_BGX_PROP

typedef EFI_STATUS(EFIAPI * EFI_THUNDER_CONFIG_PROTOCOL_GET_BGX_PROP) (IN EFI_THUNDER_CONFIG_PROTOCOL *This, IN UINTN NodeId, IN UINTN BgxId, IN BGX_PROPERTY BgxProp, IN UINT64 ValueSize, OUT UINT64 *Value)

Definition at line 123 of file thunderxcfg.h.

◆ EFI_THUNDER_CONFIG_PROTOCOL_GET_LMAC_PROP

typedef EFI_STATUS(EFIAPI * EFI_THUNDER_CONFIG_PROTOCOL_GET_LMAC_PROP) (IN EFI_THUNDER_CONFIG_PROTOCOL *This, IN UINTN NodeId, IN UINTN BgxId, IN UINTN LmacId, IN LMAC_PROPERTY LmacProp, IN UINT64 ValueSize, OUT UINT64 *Value)

Definition at line 134 of file thunderxcfg.h.

Enumeration Type Documentation

◆ BGX_PROPERTY

Enumerator
BGX_ENABLED 
BGX_MODE 
LMAC_COUNT 
BASE_ADDRESS 
LMAC_TYPE_BGX 
QLM_MASK 
QLM_FREQ 
USE_TRAINING 

Definition at line 95 of file thunderxcfg.h.

95 {
101 QLM_MASK,
102 QLM_FREQ,
BGX_PROPERTY
Definition thunderxcfg.h:95
@ BGX_MODE
Definition thunderxcfg.h:97
@ BASE_ADDRESS
Definition thunderxcfg.h:99
@ LMAC_TYPE_BGX
@ BGX_ENABLED
Definition thunderxcfg.h:96
@ QLM_FREQ
@ QLM_MASK
@ USE_TRAINING
@ LMAC_COUNT
Definition thunderxcfg.h:98

◆ LMAC_PROPERTY

Enumerator
ENABLED 
LANE_TO_SDS 
MAC_ADDRESS 

Definition at line 106 of file thunderxcfg.h.

106 {
107 ENABLED,
LMAC_PROPERTY
@ MAC_ADDRESS
@ LANE_TO_SDS
@ ENABLED

Function Documentation

◆ FILE_LICENCE()

FILE_LICENCE ( BSD2 )