arm: ls102xa: Update snoop settings for CCI-400
PATCH 1/1 arm: ls102xa: Update snoop settings for CCI-400
CAAM is connected to CCI-400 S0 slave interface. Disable snooping for S0 will cause CAAM self test failure. This patch is to enable snooping for S0 slave interface. These CCI-400 operations are moved to board_early_init_f() to be initialized earlier. For S4 slave interface, issuing of snoop requests and DVM message requests are enabled.
--- arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h | 2 ++ board/freescale/ls1021aqds/ls1021aqds.c | 21 ++++++++++++------- board/freescale/ls1021atwr/ls1021atwr.c | 25 ++++++++++++++--------- 3 files changed, 31 insertions(+), 17 deletions(-)
arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h +2 -0
@@ -456,6 +456,8 @@ struct ccsr_ddr {#define CCI400_CTRLORD_TERM_BARRIER 0x00000008#define CCI400_CTRLORD_EN_BARRIER 0#define CCI400_SHAORD_NON_SHAREABLE 0x00000002 +#define CCI400_DVM_MESSAGE_REQ_EN 0x00000002 +#define CCI400_SNOOP_REQ_EN 0x00000001/* CCI-400 registers */ struct ccsr_cci400 {
board/freescale/ls1021aqds/ls1021aqds.c +14 -7
@@ -188,6 +188,20 @@ int board_early_init_f(void)out_be32 (&scfg->qspi_cfg,SCFG_QSPI_CLKSEL );#endif +/* +* Enable snoop requests and DVM message requests for +* Slave insterface S4 (A7 core cluster) +*/ +out_le32 (&cci->slave[4 ].snoop_ctrl, +CCI400_DVM_MESSAGE_REQ_EN |CCI400_SNOOP_REQ_EN ); + +/* +* Set CCI-400 Slave interface S1, S2 Shareable Override Register +* All transactions are treated as non-shareable +*/ +out_le32 (&cci->slave[1 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); +out_le32 (&cci->slave[2 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); +/* Workaround for the issue that DDR could not respond to * barrier transaction which is generated by executing DSB/ISB * instruction. Set CCI-400 control override register to
@@ -474,13 +488,6 @@ int board_init(void)/* Set CCI-400 control override register to * enable barrier transaction */ out_le32 (&cci->ctrl_ord,CCI400_CTRLORD_EN_BARRIER ); -/* -* Set CCI-400 Slave interface S0, S1, S2 Shareable Override Register -* All transactions are treated as non-shareable -*/ -out_le32 (&cci->slave[0 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); -out_le32 (&cci->slave[1 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); -out_le32 (&cci->slave[2 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE );select_i2c_ch_pca9547 (I2C_MUX_CH_DEFAULT );
board/freescale/ls1021atwr/ls1021atwr.c +15 -10
@@ -263,6 +263,7 @@ int config_serdes_mux(void)int board_early_init_f (void ) {struct ccsr_scfg *scfg = (struct ccsr_scfg *)CONFIG_SYS_FSL_SCFG_ADDR ; +struct ccsr_cci400 *cci = (struct ccsr_cci400 *)CONFIG_SYS_CCI400_ADDR ;#ifdef CONFIG_TSEC_ENET out_be32 (&scfg->etsecdmamcr,SCFG_ETSECDMAMCR_LE_BD_FR );
@@ -281,6 +282,20 @@ int board_early_init_f(void)out_be32 (&scfg->qspi_cfg,SCFG_QSPI_CLKSEL );#endif +/* +* Enable snoop requests and DVM message requests for +* Slave insterface S4 (A7 core cluster) +*/ +out_le32 (&cci->slave[4 ].snoop_ctrl, +CCI400_DVM_MESSAGE_REQ_EN |CCI400_SNOOP_REQ_EN ); + +/* +* Set CCI-400 Slave interface S1, S2 Shareable Override Register +* All transactions are treated as non-shareable +*/ +out_le32 (&cci->slave[1 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); +out_le32 (&cci->slave[2 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); +return 0 ; }
@@ -408,16 +423,6 @@ struct smmu_stream_id dev_stream_id[] = {int board_init (void ) { -struct ccsr_cci400 *cci = (struct ccsr_cci400 *)CONFIG_SYS_CCI400_ADDR ; - -/* -* Set CCI-400 Slave interface S0, S1, S2 Shareable Override Register -* All transactions are treated as non-shareable -*/ -out_le32 (&cci->slave[0 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); -out_le32 (&cci->slave[1 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); -out_le32 (&cci->slave[2 ].sha_ord,CCI400_SHAORD_NON_SHAREABLE ); -#ifndef CONFIG_SYS_FSL_NO_SERDES fsl_serdes_init ();#ifndef CONFIG_QSPI_BOOT
Signature · 1 line
2.1.0.27.g96db324
PATCH 1/1 arm: ls102xa: Update snoop settings for CCI-400
Quoted 8 lines · Alison Wang
CAAM is connected to CCI-400 S0 slave interface. Disable snooping for S0 will cause CAAM self test failure. This patch is to enable snooping for S0 slave interface. These CCI-400 operations are moved to
board_early_init_f()to be initialized earlier. For S4 slave interface, issuing of snoop requests and DVM message requests are enabled.Signed-off-by Alison Wang <[email protected]>---
It should be prefixed with v2 and have a change log. Please do that for future patches.
York
PATCH 1/1 arm: ls102xa: Update snoop settings for CCI-400
York,
Quoted 7 lines · Alison Wang
Quoted 2 lines
CAAM is connected to CCI-400 S0 slave interface. Disable snooping for S0 will cause CAAM self test failure. This patch is to enable
snooping
Quoted 3 lines
for S0 slave interface. These CCI-400 operations are moved to
board_early_init_f()to be initialized earlier. For S4 slave interface, issuing of snoop requests and DVM message requests are
Quoted 8 lines
enabled.
Quoted 3 lines
Signed-off-by Alison Wang <[email protected]>---
It should be prefixed with v2 and have a change log. Please do that for future patches.
[Alison Wang] Ok. Thanks.
Best Regards,
Alison Wang
PATCH 1/1 arm: ls102xa: Update snoop settings for CCI-400
In reply to Alison WangQuoted 8 lines · Alison Wang
CAAM is connected to CCI-400 S0 slave interface. Disable snooping for S0 will cause CAAM self test failure. This patch is to enable snooping for S0 slave interface. These CCI-400 operations are moved to
board_early_init_f()to be initialized earlier. For S4 slave interface, issuing of snoop requests and DVM message requests are enabled.Signed-off-by Alison Wang <[email protected]>---
Applied to u-boot-fsl-qoriq master branch, awaiting upstream.
York