[Skiboot] [PATCH] capi: Enable channel tag streaming for PHB in CAPP mode

Vaibhav Jain vaibhav at linux.vnet.ibm.com
Wed Jan 31 17:52:28 AEDT 2018


We re-enable channel tag streaming for PHB in CAPP mode as without it
PEC was waiting for cresp for each DMA write command before sending a
new DMA write command on the Powerbus. This resulted in much lower DMA
write performance than expected.

The patch updates enable_capi_mode() to remove the masking of
channel_streaming_en bit in PBCQ Hardware Configuration Register. Also
does some re-factoring of the code that updates this register to use
xscom_write_mask instead of xscom_read followed by a xscom_write.

Cc: stable
Signed-off-by: Vaibhav Jain <vaibhav at linux.vnet.ibm.com>
---
 hw/phb4.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/hw/phb4.c b/hw/phb4.c
index ff912e1f..4906caf4 100644
--- a/hw/phb4.c
+++ b/hw/phb4.c
@@ -3793,14 +3793,10 @@ static int64_t enable_capi_mode(struct phb4 *p, uint64_t pe_number,
 	reg |= dma_eng;
 	xscom_write(p->chip_id, p->pe_xscom + XPEC_NEST_CAPP_CNTL, reg);
 
-	/* PCI to PB data movement ignores the PB init signal.
-	 * Disable streaming.
-	 */
-	xscom_read(p->chip_id, p->pe_xscom + XPEC_NEST_PBCQ_HW_CONFIG, &reg);
-	reg |= XPEC_NEST_PBCQ_HW_CONFIG_PBINIT;
-	if (p->index == CAPP0_PHB_INDEX)
-		reg &= ~XPEC_NEST_PBCQ_HW_CONFIG_CH_STR;
-	xscom_write(p->chip_id, p->pe_xscom + XPEC_NEST_PBCQ_HW_CONFIG, reg);
+	/* PCI to PB data movement ignores the PB init signal. */
+	xscom_write_mask(p->chip_id, p->pe_xscom + XPEC_NEST_PBCQ_HW_CONFIG,
+			 XPEC_NEST_PBCQ_HW_CONFIG_PBINIT,
+			 XPEC_NEST_PBCQ_HW_CONFIG_PBINIT);
 
 	/* PEC Phase 4 (PHB) registers adjustment
 	 * Inbound CAPP traffic: The CAPI can send both CAPP packets and
-- 
2.14.3



More information about the Skiboot mailing list