blob: 49e1de310560f245528ca5458bc03c41d0153ec5 [file] [log] [blame]
Dean Sanner2840b1d2017-06-29 12:36:43 -05001From 6707528059ba2b13b6ab78c1ed12d99ecd3fa69c Mon Sep 17 00:00:00 2001
2From: Prem Shanker Jha <premjha2@in.ibm.com>
3Date: Fri, 23 Jun 2017 10:42:53 -0500
4Subject: [PATCH v1 1001/1002] PM: HOMER Header Magic word change.
5
6Commit restores the magic words of CPMR, QPMR and PPMR region to
7CPMR_1.0, QPMR_1.0 and PPMR_1.0 respectively. It dissociates it
8with EC level.
9
10Change-Id: I4a5a40f0d766eb80eaba09fb216b93ae54d0219e
11Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42366
12Reviewed-by: Gregory S. Still <stillgs@us.ibm.com>
13Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
14Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
15Reviewed-by: RAHUL BATRA <rbatra@us.ibm.com>
16Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com>
17---
18 .../p9/procedures/hwp/pm/p9_hcode_image_build.C | 32 ++++++++++------------
19 1 file changed, 14 insertions(+), 18 deletions(-)
20
21diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
22index 8957295..4ddb140 100644
23--- a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
24+++ b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
25@@ -134,6 +134,7 @@ enum
26 L3_EPS_DIVIDER = 1,
27 L2_EPS_DIVIDER = 1,
28 MAX_HOMER_HEADER = 6,
29+ MAX_PM_REGION_HEADER = 3,
30 };
31
32 /**
33@@ -3789,34 +3790,29 @@ void customizeMagicWord( Homerlayout_t* i_pHomer, uint8_t i_ecLevel )
34 uint64_t magicWordCustom[MAX_HOMER_HEADER];
35 uint64_t * pMagicWord[MAX_HOMER_HEADER];
36 pMagicWord[0] = &pQpmrHdr->magic_number;
37- pMagicWord[1] = &pSgpeImgHdr->g_sgpe_magic_number;
38- pMagicWord[2] = &pCpmrHdr->magic_number;
39- pMagicWord[3] = &pCmeHdr->g_cme_magic_number;
40- pMagicWord[4] = &pPpmrHdr->g_ppmr_magic_number;
41+ pMagicWord[1] = &pCpmrHdr->magic_number;
42+ pMagicWord[2] = &pPpmrHdr->g_ppmr_magic_number;
43+ pMagicWord[3] = &pSgpeImgHdr->g_sgpe_magic_number;
44+ pMagicWord[4] = &pCmeHdr->g_cme_magic_number;
45 pMagicWord[5] = &pPgpeHdr->g_pgpe_magic_number;
46
47- magicWordCustom[0] = QPMR_MAGIC_NUMBER_BASE;
48- magicWordCustom[1] = SGPE_MAGIC_NUMBER_BASE;
49- magicWordCustom[2] = CPMR_MAGIC_NUMBER_BASE;
50- magicWordCustom[3] = CME_MAGIC_NUMBER_BASE;
51- magicWordCustom[4] = PPMR_MAGIC_NUMBER_BASE;
52- magicWordCustom[5] = PGPE_MAGIC_NUMBER_BASE;
53+ magicWordCustom[0] = QPMR_MAGIC_NUMBER;
54+ magicWordCustom[1] = CPMR_MAGIC_NUMBER;
55+ magicWordCustom[2] = PPMR_MAGIC_NUMBER;
56+ magicWordCustom[3] = SGPE_MAGIC_NUMBER;
57+ magicWordCustom[4] = CME_MAGIC_NUMBER;
58+ magicWordCustom[5] = PGPE_MAGIC_NUMBER;
59
60- uint32_t ecMajor = (i_ecLevel & 0xf0 );
61- ecMajor = ecMajor << 12;
62- uint8_t ecMinor = (i_ecLevel & 0x0f);
63
64 FAPI_INF("=========== Header Magic Words Info ===========");
65
66 for( uint32_t i = 0; i < MAX_HOMER_HEADER; i++ )
67 {
68- char magicWord[MAX_HOMER_HEADER][20] = { "QPMR Magic Word ", "SGPE Magic Word ", "CPMR Magic Word ",
69- "CME Magic Word ", "PPMR Magic Word ", "PGPE Magic Word " };
70+ char magicWord[MAX_HOMER_HEADER][20] = { "QPMR Magic Word ", "CPMR Magic Word ", "PPMR Magic Word ",
71+ "SGPE Magic Word ", "CME Magic Word ", "PGPE Magic Word " };
72 char tempBuf[10] ;
73 memset( tempBuf, 0x00, 10 );
74- magicWordCustom[i] += ecMinor;
75- magicWordCustom[i] += ecMajor;
76- *pMagicWord[i] = SWIZZLE_8_BYTE( magicWordCustom[i]);
77+ *pMagicWord[i] = SWIZZLE_8_BYTE( magicWordCustom[i] );
78 memcpy( tempBuf, pMagicWord[i], sizeof(uint64_t) );
79 FAPI_INF("%s\t\t:\t\t %s ( 0x%016lx ) ", &magicWord[i], tempBuf, SWIZZLE_8_BYTE(*pMagicWord[i]) );
80 }
81--
821.8.2.2
83