board: ls102xa: Fix ICID setup
authorVincent Siles <vincent.siles@provenrun.com>
Wed, 18 May 2016 12:41:14 +0000 (14:41 +0200)
committerYork Sun <york.sun@nxp.com>
Fri, 3 Jun 2016 21:12:06 +0000 (14:12 -0700)
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>
board/freescale/common/ls102xa_stream_id.c

index 3d5404ee100a1b9d8c8748fecacbc3f22a3b7862..0abaffb3349378ac3a93d8fe43e06008fb5e5a53 100644 (file)
@@ -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;
        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)