The Kona architecture is present on a number of Broadcom mobile SoCs
including the bcm281xx family of chips.
Signed-off-by: Darwin Rambo
Reviewed-by: Steve Rae
Reviewed-by: Tim Kryger
---
arch/arm/cpu/armv7/Makefile|1 +
arch/arm/cpu/armv7/kona-common/Makefile| 10
arch/arm/cpu/armv7/kona-common/clk-stubs.c | 22 +
arch/arm/cpu/armv7/kona-common/hwinit-common.c | 18 ++
arch/arm/cpu/armv7/kona-common/lowlevel_init.S | 15
arch/arm/cpu/armv7/kona-common/proc.c | 20 +++
arch/arm/include/asm/kona-common/clk.h | 31
arch/arm/include/asm/kona-common/misc.h| 20 +++
8 files changed, 137 insertions(+)
create mode 100644 arch/arm/cpu/armv7/kona-common/Makefile
create mode 100644 arch/arm/cpu/armv7/kona-common/clk-stubs.c
create mode 100644 arch/arm/cpu/armv7/kona-common/hwinit-common.c
create mode 100644 arch/arm/cpu/armv7/kona-common/lowlevel_init.S
create mode 100644 arch/arm/cpu/armv7/kona-common/proc.c
create mode 100644 arch/arm/include/asm/kona-common/clk.h
create mode 100644 arch/arm/include/asm/kona-common/misc.h
diff --git a/arch/arm/cpu/armv7/Makefile b/arch/arm/cpu/armv7/Makefile
index 0467d00..119ebb3 100644
--- a/arch/arm/cpu/armv7/Makefile
+++ b/arch/arm/cpu/armv7/Makefile
@@ -23,6 +23,7 @@ obj-y += nonsec_virt.o
obj-y += virt-v7.o
endif
+obj-$(CONFIG_KONA) += kona-common/
obj-$(CONFIG_OMAP_COMMON) += omap-common/
obj-$(CONFIG_TEGRA) += tegra-common/
diff --git a/arch/arm/cpu/armv7/kona-common/Makefile
b/arch/arm/cpu/armv7/kona-common/Makefile
new file mode 100644
index 000..9a7c167
--- /dev/null
+++ b/arch/arm/cpu/armv7/kona-common/Makefile
@@ -0,0 +1,10 @@
+#
+# Copyright 2013 Broadcom Corporation. All rights reserved.
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y += clk-stubs.o
+obj-y += hwinit-common.o
+obj-y += proc.o
+obj-y += lowlevel_init.o
diff --git a/arch/arm/cpu/armv7/kona-common/clk-stubs.c
b/arch/arm/cpu/armv7/kona-common/clk-stubs.c
new file mode 100644
index 000..dd3ce34
--- /dev/null
+++ b/arch/arm/cpu/armv7/kona-common/clk-stubs.c
@@ -0,0 +1,22 @@
+/*
+*
+* Copyright 2013 Broadcom Corporation. All rights reserved.
+*
+* SPDX-License-Identifier: GPL-2.0+
+*
+*/
+
+#include
+
+/*
+ * These weak functions are available to kona architectures that don't
+ * require clock enables from the driver code.
+ */
+int __weak clk_sdio_enable(void *base, u32 rate, u32 *actual_ratep)
+{
+ return 0;
+}
+int __weak clk_bsc_enable(void *base, u32 rate, u32 *actual_ratep)
+{
+ return 0;
+}
diff --git a/arch/arm/cpu/armv7/kona-common/hwinit-common.c
b/arch/arm/cpu/armv7/kona-common/hwinit-common.c
new file mode 100644
index 000..5d6b131
--- /dev/null
+++ b/arch/arm/cpu/armv7/kona-common/hwinit-common.c
@@ -0,0 +1,18 @@
+/*
+*
+* Copyright 2013 Broadcom Corporation. All rights reserved.
+*
+* SPDX-License-Identifier: GPL-2.0+
+*
+*/
+
+#include
+#include
+
+#ifndef CONFIG_SYS_DCACHE_OFF
+void enable_caches(void)
+{
+ /* Enable D-cache. I-cache is already enabled in start.S */
+ dcache_enable();
+}
+#endif
diff --git a/arch/arm/cpu/armv7/kona-common/lowlevel_init.S
b/arch/arm/cpu/armv7/kona-common/lowlevel_init.S
new file mode 100644
index 000..a03afcc
--- /dev/null
+++ b/arch/arm/cpu/armv7/kona-common/lowlevel_init.S
@@ -0,0 +1,15 @@
+/*
+*
+* Copyright 2013 Broadcom Corporation. All rights reserved.
+*
+* SPDX-License-Identifier: GPL-2.0+
+*
+*/
+
+//#include
+//#include
+//#include
+
+.globl lowlevel_init
+lowlevel_init:
+ mov pc, lr
diff --git a/arch/arm/cpu/armv7/kona-common/proc.c
b/arch/arm/cpu/armv7/kona-common/proc.c
new file mode 100644
index 000..92fb39b
--- /dev/null
+++ b/arch/arm/cpu/armv7/kona-common/proc.c
@@ -0,0 +1,20 @@
+/*
+*
+* Copyright 2013 Broadcom Corporation. All rights reserved.
+*
+* SPDX-License-Identifier: GPL-2.0+
+*
+*/
+
+#include
+#include
+#include
+#include
+
+void do_proc_wfe(int forever)
+{
+ do {
+ asm volatile ("wfe @ wait for event\n");
+ /*printf("wake up from wfe\n"); */
+ } while (forever);
+}
diff --git a/arch/arm/include/asm/kona-common/clk.h
b/arch/arm/include/asm/kona-common/clk.h
new file mode 100644
index 000..c2