LS1 has 4 SMMUs for address translation of the masters. All the SMMUs' stream IDs are 8-bit. The address translation depends on the stream ID of the incoming transaction. Each master has unique stream ID assigned to it and is configurable through SCFG registers. The stream ID for the masters is identical and share the same register field of STREAM ID registers. Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>master
parent
e87f3b308c
commit
660673af4f
@ -0,0 +1,17 @@ |
|||||||
|
/*
|
||||||
|
* Copyright 2014 Freescale Semiconductor, Inc. |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: GPL-2.0+ |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef __FSL_LS102XA_STREAM_ID_H_ |
||||||
|
#define __FSL_LS102XA_STREAM_ID_H_ |
||||||
|
|
||||||
|
struct smmu_stream_id { |
||||||
|
uint16_t offset; |
||||||
|
uint16_t stream_id; |
||||||
|
char dev_name[32]; |
||||||
|
}; |
||||||
|
|
||||||
|
void ls102xa_config_smmu_stream_id(struct smmu_stream_id *id, uint32_t num); |
||||||
|
#endif |
@ -0,0 +1,18 @@ |
|||||||
|
/*
|
||||||
|
* Copyright 2014 Freescale Semiconductor |
||||||
|
* |
||||||
|
* SPDX-License-Identifier: GPL-2.0+ |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <common.h> |
||||||
|
#include <asm/io.h> |
||||||
|
#include <asm/arch/ls102xa_stream_id.h> |
||||||
|
|
||||||
|
void ls102xa_config_smmu_stream_id(struct smmu_stream_id *id, uint32_t num) |
||||||
|
{ |
||||||
|
uint32_t *scfg = (uint32_t *)CONFIG_SYS_FSL_SCFG_ADDR; |
||||||
|
int i; |
||||||
|
|
||||||
|
for (i = 0; i < num; i++) |
||||||
|
out_be32(scfg + id[i].offset, id[i].stream_id); |
||||||
|
} |
Loading…
Reference in new issue