diff options
author | Greg Still <stillgs@us.ibm.com> | 2017-01-29 17:06:52 -0600 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2017-02-16 12:56:19 -0500 |
commit | 1e3e374a548a487e3d958d522d13f80bf1c0c3f5 (patch) | |
tree | 82544f6b318150fccd3fb1f464c7c469cdf0d794 /src/import | |
parent | a4c70975fc0248d66bbfaa5a18b9817cd0d4384a (diff) | |
download | talos-hostboot-1e3e374a548a487e3d958d522d13f80bf1c0c3f5.tar.gz talos-hostboot-1e3e374a548a487e3d958d522d13f80bf1c0c3f5.zip |
p9_pm_pstate_gpe_init and p9_pm_pba_init updates for PGPE booting
- Allocated PBA Slave 2 to PGPE for both booting and runtime.
- Setup PBA Slave 1 for GPE1 for use by OCC FW during run-time
- Added debug halt detection for lab use
- Typos from comments
- Made stand-alone with p9_hcd_common.H updates
Change-Id: I9df3676c9f58cbced49f0a5605be0d787fa930c7
RTC: 168104
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35547
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: AMIT KUMAR <akumar3@us.ibm.com>
Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com>
Reviewed-by: Sangeetha T S <sangeet2@in.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/35553
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/import')
-rw-r--r-- | src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H | 11 | ||||
-rw-r--r-- | src/import/chips/p9/procedures/hwp/pm/p9_pm_pba_init.C | 74 |
2 files changed, 48 insertions, 37 deletions
diff --git a/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H b/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H index ae4c8660f..172a48a81 100644 --- a/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H +++ b/src/import/chips/p9/procedures/hwp/lib/p9_hcd_common.H @@ -234,7 +234,16 @@ enum P9_HCD_SCAN0_CONSTANTS // XSR defines enum XSR_DEFS { - HALTED_STATE = 0 + HALTED_STATE = 0, + HALT_CONDITION_START = 1, + HALT_CONDITION_LEN = 3, + XCR_CMD_HALT = 1, + WDT_HALT = 2, + UMI_HALT = 3, + DEBUG_HALT = 4, + DBCR_HALT = 5, + INPUT_HALT = 6, + HW_FAILURE = 7 }; // XCR defines diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pba_init.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pba_init.C index 2cead43eb..7eb595ce8 100644 --- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_pba_init.C +++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_pba_init.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2016 */ +/* Contributors Listed Below - COPYRIGHT 2015,2017 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -529,7 +529,7 @@ fapi_try_exit: /// PBA slave 0 is used to boot the SGPE and the OCC PPC405. /// /// PBA slave 1 is used to boot the OCC PPC405. - +/// /// PBA slave 2 is used to boot the PGPE. It is setup as a read/write slave /// as the PGPE as to write to HOMER memory during this phase. /// @@ -540,11 +540,13 @@ fapi_try_exit: /// /// PBA slave 0 is used by the SGPE to read HOMER memory. /// -/// PBA slave 1 is used by OCC GPEs to access Centaur memory buffers. It is -/// setup by OCC GPE firmware. +/// PBA slave 1 is used by OCC GPE1 to access Centaur memory buffers and for +/// writing 24x7 performance information. It is setup for basic read/write +/// by this procedure; any modifications tto this setup will be done by +/// OCC GPE firmware. /// -/// PBA Slave 2 is used by OCC GPEs to access OCC owned memory regions for -/// GPU sensor data. +/// PBA slave 2 is used to by the PGPE to write trace and characterization +/// data to memory. /// /// PBA Slave 3 is used by the SBE and is setup by the SBE to map the OCB to /// mainstory. This procedure set does not deal with this slave. @@ -712,7 +714,7 @@ pba_slave_setup_runtime_phase( FAPI_TRY(fapi2::putScom(i_target, PU_PBAMODE_SCOM, l_data64), "Failed to set PBA MODE register"); - FAPI_INF("Initialize PBA Slave 0 for SGPE STOP use..."); + FAPI_INF("Initialize PBA Slave 0 for SGPE STOP use ..."); // Slave 0 (SGPE STOP). This is a read/write slave in the event that // the STOP functions needs to write to memory.. ps.value = 0; @@ -733,44 +735,44 @@ pba_slave_setup_runtime_phase( FAPI_TRY(fapi2::putScom(i_target, PU_PBASLVCTL0_SCOM, l_data64), "Failed to set Slave 0 control register"); - FAPI_INF("Disabling PBA Slave 1 ... No defined run-time use"); - // Slave 1 is not used during run-time - + FAPI_INF("Initialize PBA Slave 1 for GPE1 (OCC firmware) use ..."); + // Slave 1 (GPE 1). This is a read/write slave. Write gathering is + // allowed, but with the shortest possible timeout. ps.value = 0; - ps.fields.enable = 0; - ps.fields.mid_match_value = 0; - ps.fields.mid_care_mask = OCI_MASTER_ID_MASK_NONE; - ps.fields.read_ttype = 0; - ps.fields.read_prefetch_ctl = 0; - ps.fields.write_ttype = 0; - ps.fields.wr_gather_timeout = 0; - ps.fields.buf_alloc_a = 0; - ps.fields.buf_alloc_b = 0; - ps.fields.buf_alloc_c = 0; - ps.fields.buf_alloc_w = 0; + ps.fields.enable = 1; + ps.fields.mid_match_value = OCI_MASTER_ID_GPE1; + ps.fields.mid_care_mask = OCI_MASTER_ID_MASK_ALL; + ps.fields.read_ttype = PBA_READ_TTYPE_CL_RD_NC; + ps.fields.read_prefetch_ctl = PBA_READ_PREFETCH_NONE; + ps.fields.write_ttype = PBA_WRITE_TTYPE_DMA_PR_WR; + ps.fields.wr_gather_timeout = PBA_WRITE_GATHER_TIMEOUT_2_PULSES; + ps.fields.buf_alloc_a = 1; + ps.fields.buf_alloc_b = 1; + ps.fields.buf_alloc_c = 1; + ps.fields.buf_alloc_w = 1; l_data64 = ps.value; FAPI_TRY(fapi2::putScom(i_target, PU_PBASLVCTL1_SCOM, l_data64), "Failed to set Slave 1 control register"); - - FAPI_INF("Disabling PBA Slave 2 ... To be enabled/setup by OCC Firmware"); - // Slave 2 - used by OCC. Tear this down to ensure that it is properly - // setup by OCC. + FAPI_INF("Initialize PBA Slave 2 for PGPE Pstates/WOF use ..."); + // Slave 2 (PGPE Boot). This is a read/write slave. Write gethering is + // allowed, but with the shortest possible timeout. This slave is + // effectively disabled soon after IPL. ps.value = 0; - ps.fields.enable = 0; - ps.fields.mid_match_value = 0; - ps.fields.mid_care_mask = OCI_MASTER_ID_MASK_NONE; - ps.fields.read_ttype = 0; - ps.fields.read_prefetch_ctl = 0; - ps.fields.write_ttype = 0; - ps.fields.wr_gather_timeout = 0; - ps.fields.buf_alloc_a = 0; - ps.fields.buf_alloc_b = 0; - ps.fields.buf_alloc_c = 0; - ps.fields.buf_alloc_w = 0; + ps.fields.enable = 1; + ps.fields.mid_match_value = OCI_MASTER_ID_PGPE; + ps.fields.mid_care_mask = OCI_MASTER_ID_MASK_ALL; + ps.fields.read_ttype = PBA_READ_TTYPE_CL_RD_NC; + ps.fields.read_prefetch_ctl = PBA_READ_PREFETCH_NONE; + ps.fields.write_ttype = PBA_WRITE_TTYPE_DMA_PR_WR; + ps.fields.wr_gather_timeout = PBA_WRITE_GATHER_TIMEOUT_2_PULSES; + ps.fields.buf_alloc_a = 1; + ps.fields.buf_alloc_b = 1; + ps.fields.buf_alloc_c = 1; + ps.fields.buf_alloc_w = 1; l_data64 = ps.value; |