* [U-Boot] [PATCH v3 1/3] arm: Fix SCFG ICID reg addresses
@ 2016-05-18 12:41 Vincent Siles
2016-05-18 12:41 ` [U-Boot] [PATCH v3 2/3] arm: uniform usage of u32 in ls102x caam config Vincent Siles
2016-05-18 12:41 ` [U-Boot] [PATCH v3 3/3] Fix ICID setup Vincent Siles
0 siblings, 2 replies; 4+ messages in thread
From: Vincent Siles @ 2016-05-18 12:41 UTC (permalink / raw)
To: u-boot
On the LS102x boards, in order to initialize the ICID values of masters,
the dev_stream_id array holds absolute offsets from the base of SCFG.
In ls102xa_config_ssmu_stream_id, the base pointer is cast to uint32_t *
before adding the offset, leading to an invalid address. Casting it to
void * solves the issue.
Signed-off-by: Vincent Siles <vincent.siles@provenrun.com>
---
Changes in v3: None
Changes in v2: None
board/freescale/common/ls102xa_stream_id.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/board/freescale/common/ls102xa_stream_id.c b/board/freescale/common/ls102xa_stream_id.c
index f434269..39e7b30 100644
--- a/board/freescale/common/ls102xa_stream_id.c
+++ b/board/freescale/common/ls102xa_stream_id.c
@@ -10,11 +10,11 @@
void ls102xa_config_smmu_stream_id(struct smmu_stream_id *id, uint32_t num)
{
- uint32_t *scfg = (uint32_t *)CONFIG_SYS_FSL_SCFG_ADDR;
+ void *scfg = (void *)CONFIG_SYS_FSL_SCFG_ADDR;
int i;
for (i = 0; i < num; i++)
- out_be32(scfg + id[i].offset, id[i].stream_id);
+ out_be32((u32 *)(scfg + id[i].offset), id[i].stream_id);
}
void ls1021x_config_caam_stream_id(struct liodn_id_table *tbl, int size)
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3 2/3] arm: uniform usage of u32 in ls102x caam config
2016-05-18 12:41 [U-Boot] [PATCH v3 1/3] arm: Fix SCFG ICID reg addresses Vincent Siles
@ 2016-05-18 12:41 ` Vincent Siles
2016-05-18 12:41 ` [U-Boot] [PATCH v3 3/3] Fix ICID setup Vincent Siles
1 sibling, 0 replies; 4+ messages in thread
From: Vincent Siles @ 2016-05-18 12:41 UTC (permalink / raw)
To: u-boot
Mix usage of uint32_t and u32 fixed in favor of u32
Signed-off-by: Vincent Siles <vincent.siles@provenrun.com>
---
Changes in v3: None
Changes in v2: None
board/freescale/common/ls102xa_stream_id.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/board/freescale/common/ls102xa_stream_id.c b/board/freescale/common/ls102xa_stream_id.c
index 39e7b30..3d5404e 100644
--- a/board/freescale/common/ls102xa_stream_id.c
+++ b/board/freescale/common/ls102xa_stream_id.c
@@ -28,6 +28,6 @@ void ls1021x_config_caam_stream_id(struct liodn_id_table *tbl, int size)
else
liodn = tbl[i].id[0];
- out_le32((uint32_t *)(tbl[i].reg_offset), liodn);
+ out_le32((u32 *)(tbl[i].reg_offset), liodn);
}
}
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3 3/3] Fix ICID setup
2016-05-18 12:41 [U-Boot] [PATCH v3 1/3] arm: Fix SCFG ICID reg addresses Vincent Siles
2016-05-18 12:41 ` [U-Boot] [PATCH v3 2/3] arm: uniform usage of u32 in ls102x caam config Vincent Siles
@ 2016-05-18 12:41 ` Vincent Siles
2016-06-04 5:04 ` York Sun
1 sibling, 1 reply; 4+ messages in thread
From: Vincent Siles @ 2016-05-18 12:41 UTC (permalink / raw)
To: u-boot
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>
---
Changes in v3:
- Fix another issue with ICID setup: the value is not written at the
correct location (LSB instead of MSB)
Changes in v2:
- Casting to void * instead of u8 *
- Splitted commit into two seperate ones
board/freescale/common/ls102xa_stream_id.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/board/freescale/common/ls102xa_stream_id.c b/board/freescale/common/ls102xa_stream_id.c
index 3d5404e..0abaffb 100644
--- a/board/freescale/common/ls102xa_stream_id.c
+++ b/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;
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)
--
1.9.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [U-Boot] [PATCH v3 3/3] Fix ICID setup
2016-05-18 12:41 ` [U-Boot] [PATCH v3 3/3] Fix ICID setup Vincent Siles
@ 2016-06-04 5:04 ` York Sun
0 siblings, 0 replies; 4+ messages in thread
From: York Sun @ 2016-06-04 5:04 UTC (permalink / raw)
To: u-boot
On 05/18/2016 05:42 AM, Vincent Siles wrote:
> 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>
> ---
>
> Changes in v3:
> - Fix another issue with ICID setup: the value is not written at the
> correct location (LSB instead of MSB)
>
> Changes in v2:
> - Casting to void * instead of u8 *
> - Splitted commit into two seperate ones
>
> board/freescale/common/ls102xa_stream_id.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
Applied to fsl-qoriq master branch. Awaiting upstream.
Thanks.
York
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-06-04 5:04 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-05-18 12:41 [U-Boot] [PATCH v3 1/3] arm: Fix SCFG ICID reg addresses Vincent Siles
2016-05-18 12:41 ` [U-Boot] [PATCH v3 2/3] arm: uniform usage of u32 in ls102x caam config Vincent Siles
2016-05-18 12:41 ` [U-Boot] [PATCH v3 3/3] Fix ICID setup Vincent Siles
2016-06-04 5:04 ` York Sun
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.