summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv7/keystone
diff options
context:
space:
mode:
authorVitaly Andrianov <vitalya@ti.com>2014-10-22 17:47:57 +0300
committerTom Rini <trini@ti.com>2014-10-23 11:27:29 -0400
commit079da2d514a447626a81f9df45c9f57e2f512a77 (patch)
tree329277c8dfe06a4b0e5e55c09121a906346ffe6b /arch/arm/cpu/armv7/keystone
parente165b1d34cd91cb42b0614792aa88e0677944ee7 (diff)
downloadu-boot-imx-079da2d514a447626a81f9df45c9f57e2f512a77.zip
u-boot-imx-079da2d514a447626a81f9df45c9f57e2f512a77.tar.gz
u-boot-imx-079da2d514a447626a81f9df45c9f57e2f512a77.tar.bz2
ARM: keystone: msmc: extend functionality of SES
Add functions to set/get SES PMAX values of Pivilege ID pair. Also add msmc module definitions. Acked-by: Murali Karicheri <m-karicheri2@ti.com> Signed-off-by: Hao Zhang <hzhang@ti.com> Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Diffstat (limited to 'arch/arm/cpu/armv7/keystone')
-rw-r--r--arch/arm/cpu/armv7/keystone/msmc.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/keystone/msmc.c b/arch/arm/cpu/armv7/keystone/msmc.c
index 7d8e597..7899141 100644
--- a/arch/arm/cpu/armv7/keystone/msmc.c
+++ b/arch/arm/cpu/armv7/keystone/msmc.c
@@ -66,3 +66,29 @@ void msmc_share_all_segments(int priv_id)
msmc->ses[priv_id][j].mpaxh &= 0xffffff7ful;
}
}
+
+void msmc_map_ses_segment(int priv_id, int ses_pair,
+ u32 src_pfn, u32 dst_pfn, enum mpax_seg_size size)
+{
+ struct msms_regs *msmc = (struct msms_regs *)KS2_MSMC_CTRL_BASE;
+
+ msmc->ses[priv_id][ses_pair].mpaxh = src_pfn << 12 |
+ (size & 0x1f) | 0x80;
+ msmc->ses[priv_id][ses_pair].mpaxl = dst_pfn << 8 | 0x3f;
+}
+
+void msmc_get_ses_mpax(int priv_id, int ses_pair, u32 *mpax)
+{
+ struct msms_regs *msmc = (struct msms_regs *)KS2_MSMC_CTRL_BASE;
+
+ *mpax++ = msmc->ses[priv_id][ses_pair].mpaxl;
+ *mpax = msmc->ses[priv_id][ses_pair].mpaxh;
+}
+
+void msmc_set_ses_mpax(int priv_id, int ses_pair, u32 *mpax)
+{
+ struct msms_regs *msmc = (struct msms_regs *)KS2_MSMC_CTRL_BASE;
+
+ msmc->ses[priv_id][ses_pair].mpaxl = *mpax++;
+ msmc->ses[priv_id][ses_pair].mpaxh = *mpax;
+}