浏览代码

board: ls102xa: Fix ICID setup

LS102A ref manual dictates that ICID have to be written to the MSB
of the ICID register, not to the LSB.

Signed-off-by: Vincent Siles <vincent.siles@provenrun.com>
Vincent Siles 9 年之前
父节点
当前提交
c4f97b1f53
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      board/freescale/common/ls102xa_stream_id.c

+ 5 - 2
board/freescale/common/ls102xa_stream_id.c

@@ -12,9 +12,12 @@ void ls102xa_config_smmu_stream_id(struct smmu_stream_id *id, uint32_t num)
 {
 {
 	void *scfg = (void *)CONFIG_SYS_FSL_SCFG_ADDR;
 	void *scfg = (void *)CONFIG_SYS_FSL_SCFG_ADDR;
 	int i;
 	int i;
+	u32 icid;
 
 
-	for (i = 0; i < num; i++)
-		out_be32((u32 *)(scfg + id[i].offset), id[i].stream_id);
+	for (i = 0; i < num; i++) {
+		icid = (id[i].stream_id & 0xff) << 24;
+		out_be32((u32 *)(scfg + id[i].offset), icid);
+	}
 }
 }
 
 
 void ls1021x_config_caam_stream_id(struct liodn_id_table *tbl, int size)
 void ls1021x_config_caam_stream_id(struct liodn_id_table *tbl, int size)