summaryrefslogtreecommitdiff
path: root/patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch')
-rw-r--r--patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch60
1 files changed, 60 insertions, 0 deletions
diff --git a/patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch b/patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch
new file mode 100644
index 00000000000..05d199a2539
--- /dev/null
+++ b/patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch
@@ -0,0 +1,60 @@
+From 156f9542badc0700e9759ec0a8c1660aead1092d Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Wed, 12 Sep 2012 15:35:58 +0200
+Subject: [PATCH 0002/1302] ARM: EXYNOS: Add secure firmware support to l2x0
+ initialization
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/mach-exynos/common.c | 3 +++
+ arch/arm/mach-exynos/firmware.c | 8 ++++++++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
+index 5bb6b26..02fb4a1 100644
+--- a/arch/arm/mach-exynos/common.c
++++ b/arch/arm/mach-exynos/common.c
+@@ -33,6 +33,7 @@
+
+ #include <asm/proc-fns.h>
+ #include <asm/exception.h>
++#include <asm/firmware.h>
+ #include <asm/hardware/cache-l2x0.h>
+ #include <asm/mach/map.h>
+ #include <asm/mach/irq.h>
+@@ -560,6 +561,8 @@ static int __init exynos4_l2x0_cache_init(void)
+ if (soc_is_exynos5250() || soc_is_exynos5440())
+ return 0;
+
++ call_firmware_op(l2x0_init);
++
+ if (of_have_populated_dt()) {
+ ret = l2x0_of_init(L2_AUX_VAL, L2_AUX_MASK);
+ if (ret)
+diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
+index ed11f10..da5fb26 100644
+--- a/arch/arm/mach-exynos/firmware.c
++++ b/arch/arm/mach-exynos/firmware.c
+@@ -40,10 +40,18 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
+ return 0;
+ }
+
++static int exynos_l2x0_init(void)
++{
++ exynos_smc(SMC_CMD_L2X0INVALL, 0, 0, 0);
++ exynos_smc(SMC_CMD_L2X0CTRL, 1, 0, 0);
++ return 0;
++}
++
+ static const struct firmware_ops exynos_firmware_ops = {
+ .do_idle = exynos_do_idle,
+ .set_cpu_boot_addr = exynos_set_cpu_boot_addr,
+ .cpu_boot = exynos_cpu_boot,
++ .l2x0_init = exynos_l2x0_init,
+ };
+
+ void __init exynos_firmware_init(void)
+--
+1.8.3.2
+