diff options
author | Girisankar Paulraj <gpaulraj@in.ibm.com> | 2016-07-05 07:43:45 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-07-21 17:48:38 -0400 |
commit | 0659b692f12c5fcb683973f06a05488d6610852b (patch) | |
tree | 2a5648a26e20ca40a1f8a8c5b7d98a5b11bc7d5d /src/import | |
parent | bca0c8f2309d607add8d9f77747d3e761336c1e6 (diff) | |
download | talos-hostboot-0659b692f12c5fcb683973f06a05488d6610852b.tar.gz talos-hostboot-0659b692f12c5fcb683973f06a05488d6610852b.zip |
support RISK LEVEL RING
Added struct for adopting order of ring variant
Added code support for above struct
Change-Id: I21e7a2a83126ff426ef8ee0db53e613982ab5bdb
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26625
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/26627
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import')
-rw-r--r-- | src/import/chips/p9/utils/imageProcs/p9_ringId.C | 17 | ||||
-rw-r--r-- | src/import/chips/p9/utils/imageProcs/p9_ring_identification.H | 22 | ||||
-rw-r--r-- | src/import/chips/p9/utils/imageProcs/p9_tor.H | 3 |
3 files changed, 41 insertions, 1 deletions
diff --git a/src/import/chips/p9/utils/imageProcs/p9_ringId.C b/src/import/chips/p9/utils/imageProcs/p9_ringId.C index 30d32aa40..31b9eae05 100644 --- a/src/import/chips/p9/utils/imageProcs/p9_ringId.C +++ b/src/import/chips/p9/utils/imageProcs/p9_ringId.C @@ -18,6 +18,7 @@ /* IBM_PROLOG_END_TAG */ #include "p9_ringId.H" #include "p9_ring_identification.H" +#include "p9_tor.H" namespace PERV { @@ -48,6 +49,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"occ_repr" , 0x12, 0x01, 0x01, "occ_repr_ring" , NON_VPD_RING, 0, 0x0100000000000200}, {"perv_pibnet_repr" , 0x13, 0x01, 0x01, "perv_pibnet_repr_ring" , NON_VPD_RING, 0, 0x0600000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace N0 { @@ -69,6 +71,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"n0_nx_repr" , 0x0a, 0x02, 0x02, "n0_nx_repr_ring" , NON_VPD_RING, 0, 0x0400000000000200}, {"n0_cxa0_repr" , 0x0b, 0x02, 0x02, "n0_cxa0_repr_ring" , NON_VPD_RING, 0, 0x0200000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace N1 { @@ -94,6 +97,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"n1_ioo1_repr" , 0x0e, 0x03, 0x03, "n1_ioo1_repr_ring" , NON_VPD_RING, 0, 0x0080000000000200}, {"n1_mcs23_repr" , 0x0f, 0x03, 0x03, "n1_mcs23_repr_ring" , NON_VPD_RING, 0, 0x0040000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace N2 { @@ -115,6 +119,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"n2_cxa1_repr" , 0x0a, 0x04, 0x04, "n2_cxa1_repr_ring" , NON_VPD_RING, 0, 0x0400000000000200}, {"n2_psi_repr" , 0x0b, 0x04, 0x04, "n2_cxa1_repr_ring" , NON_VPD_RING, 0, 0x0400000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace N3 { @@ -136,6 +141,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"n3_mcs01_repr" , 0x0a, 0x05, 0x05, "n3_mcs01_repr_ring" , NON_VPD_RING, 0, 0x0020000000000200}, {"n3_np_repr" , 0x0b, 0x05, 0x05, "n3_np_repr_ring" , NON_VPD_RING, 0, 0x0100000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace XB { @@ -164,6 +170,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"xb_io1_repr" , 0x15, 0x06, 0x06, "xb_io1_repr_ring" , NON_VPD_RING, 0, 0x0220000000000200}, {"xb_io2_repr" , 0x16, 0x06, 0x06, "xb_io2_repr_ring" , NON_VPD_RING, 0, 0x0110000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace MC { @@ -192,6 +199,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"mc_iom01_repr" , 0x11, 0x07, 0x08, "mc_iom01_repr_ring" , NON_VPD_RING, 0, 0x0200000000000200}, {"mc_iom23_repr" , 0x12, 0x07, 0x08, "mc_iom23_repr_ring" , NON_VPD_RING, 0, 0x0100000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace OB0 { @@ -208,6 +216,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { {"ob0_repr" , 0x0a, 0x09, 0x09, "ob0_repr_ring" , NON_VPD_RING, 0, 0x0E00000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace OB1 { @@ -224,6 +233,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { {"ob1_repr" , 0x0a, 0x0a, 0x0a, "ob1_repr_ring" , NON_VPD_RING, 0, 0x0E00000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace OB2 { @@ -240,6 +250,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { {"ob2_repr" , 0x0a, 0x0b, 0x0b, "ob2_repr_ring" , NON_VPD_RING, 0, 0x0E00000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace OB3 { @@ -256,6 +267,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { {"ob3_repr" , 0x0a, 0x0c, 0x0c, "ob3_repr_ring" , NON_VPD_RING, 0, 0x0E00000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace PCI0 { @@ -271,6 +283,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { {"pci0_repr" , 0x05, 0x0d, 0x0d, "pci0_repr_ring" , NON_VPD_RING, 0, 0x0E00000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace PCI1 { @@ -286,6 +299,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { {"pci1_repr" , 0x05, 0x0e, 0x0e, "pci1_repr_ring" , NON_VPD_RING, 0, 0x0F00000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace PCI2 { @@ -301,6 +315,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { {"pci2_repr" , 0x05, 0x0F, 0x0F, "pci2_repr_ring" , NON_VPD_RING, 0, 0x0F80000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::RL, P9_TOR::NOT_VALID}; }; namespace EQ { @@ -362,6 +377,7 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = {"ex_l3_refr_repr" , 0x31, 0x10, 0x15, "ex_l3_refr_repr_ring" , NON_VPD_RING, 0, 0x0008000000000200}, {"ex_l3_refr_time" , 0x32, 0x10, 0x15, "ex_l3_refr_time_ring" , NON_VPD_RING, 0, 0x0008000000000100}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::CC, P9_TOR::RL}; }; namespace EC { @@ -377,4 +393,5 @@ const GenRingIdList RING_ID_LIST_INSTANCE[] = { { "ec_repr" , 0x04, 0x20, 0x37, "ec_repr_ring", NON_VPD_RING, 0, 0x0E00000000000200}, }; +const RingVariantOrder RING_VARIANT_ORDER[] = { P9_TOR::BASE, P9_TOR::CC, P9_TOR::RL}; }; diff --git a/src/import/chips/p9/utils/imageProcs/p9_ring_identification.H b/src/import/chips/p9/utils/imageProcs/p9_ring_identification.H index b9faa5c11..e1ad15ebd 100644 --- a/src/import/chips/p9/utils/imageProcs/p9_ring_identification.H +++ b/src/import/chips/p9/utils/imageProcs/p9_ring_identification.H @@ -44,100 +44,122 @@ typedef struct uint16_t ring_size; } Ring_toc_entry; +typedef struct +{ + uint8_t variant[3]; +} RingVariantOrder; + + namespace PERV { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace N0 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace N1 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace N2 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace N3 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace XB { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace MC { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace OB0 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace OB1 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace OB2 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace OB3 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace PCI0 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace PCI1 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace PCI2 { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace EQ { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } namespace EC { extern const GenRingIdList RING_ID_LIST_COMMON[]; extern const GenRingIdList RING_ID_LIST_INSTANCE[]; +extern const RingVariantOrder RING_VARIANT_ORDER[]; } // VPD Ring ID list structure. diff --git a/src/import/chips/p9/utils/imageProcs/p9_tor.H b/src/import/chips/p9/utils/imageProcs/p9_tor.H index 35390cfc6..c6162878f 100644 --- a/src/import/chips/p9/utils/imageProcs/p9_tor.H +++ b/src/import/chips/p9/utils/imageProcs/p9_tor.H @@ -106,7 +106,8 @@ typedef enum RingVariant // Base variables RL = 0x02, OVERRIDE = 0x03, OVERLAY = 0x04, - NUM_RING_VARIANTS = 0x05 + NUM_RING_VARIANTS = 0x05, + NOT_VALID = 0xff } RingVariant_t; |