summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 122eedb)
raw | patch | inline | side by side (parent: 122eedb)
author | David Lide <a0216552@gtudci01.(none)> | |
Wed, 25 Jan 2012 21:45:28 +0000 (16:45 -0500) | ||
committer | David Lide <a0216552@gtudci01.(none)> | |
Wed, 25 Jan 2012 21:45:28 +0000 (16:45 -0500) |
ti/runtime/netapi/tools/module/Makefile | [new file with mode: 0644] | patch | blob |
ti/runtime/netapi/tools/module/Module.symvers | [new file with mode: 0644] | patch | blob |
ti/runtime/netapi/tools/module/modules.order | [new file with mode: 0644] | patch | blob |
ti/runtime/netapi/tools/module/netapimod.c | [new file with mode: 0644] | patch | blob |
ti/runtime/netapi/tools/module/netapimod.ko | [new file with mode: 0644] | patch | blob |
ti/runtime/netapi/tools/module/netapimod.mod.c | [new file with mode: 0644] | patch | blob |
ti/runtime/netapi/tools/module/netapimod.mod.o | [new file with mode: 0644] | patch | blob |
ti/runtime/netapi/tools/module/netapimod.o | [new file with mode: 0644] | patch | blob |
diff --git a/ti/runtime/netapi/tools/module/Makefile b/ti/runtime/netapi/tools/module/Makefile
--- /dev/null
@@ -0,0 +1,21 @@
+#
+# File Name: Makefile
+#
+# Description: Makefile to build kernel netapi utility module.
+#
+# Copyright (C) 2011 Texas Instruments, Incorporated
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation version 2.
+#
+# This program is distributed "as is" WITHOUT ANY WARRANTY of any kind,
+# whether express or implied; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+
+obj-m += netapimod.o
+
+all:
+ make -C ../linux-appleton -I../linux-appleton/include M=`pwd` modules
diff --git a/ti/runtime/netapi/tools/module/Module.symvers b/ti/runtime/netapi/tools/module/Module.symvers
diff --git a/ti/runtime/netapi/tools/module/modules.order b/ti/runtime/netapi/tools/module/modules.order
--- /dev/null
@@ -0,0 +1 @@
+kernel//home/a0216552/appleton2/mymodules/netapimod.ko
diff --git a/ti/runtime/netapi/tools/module/netapimod.c b/ti/runtime/netapi/tools/module/netapimod.c
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ * File name: netapi_mod.c
+ *
+ * Description: NETAPI utility module.
+ *
+ * Copyright (C) 2011 Texas Instruments, Incorporated
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation version 2.
+ *
+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any kind,
+ * whether express or implied; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/proc_fs.h>
+
+#include <linux/version.h>
+#include <linux/unistd.h>
+#include <asm/unistd.h>
+#include <linux/wait.h>
+#include <linux/sched.h>
+#include <linux/timer.h>
+#include <linux/string.h>
+#include <linux/if.h>
+
+#include <asm/irq.h>
+#include <linux/clk.h>
+
+#include <asm/mach/map.h>
+
+#include <mach/vmalloc.h>
+#include <mach/common.h>
+#include <mach/time.h>
+#include <mach/cputype.h>
+#include <mach/psc.h>
+#include <mach/cp_intc.h>
+#include <mach/irqs.h>
+#include <mach/gpio.h>
+#include <mach/hardware.h>
+#include <mach/cp_intd.h>
+#include <mach/tci6614.h>
+
+
+
+#define NETAPIMOD_DEBUG
+
+#ifdef NETAPIMOD_DEBUG
+# define DPRINTK(fmt, args...) printk("%s: " fmt, __FUNCTION__ , ## args)
+#else
+# define DPRINTK(fmt, args...)
+#endif
+
+
+/* Master Control Block for Voice Ni network module */
+static struct
+{
+
+} netapi_mcb;
+
+//extern long davinci_ck_get_arm_rate(void);
+static void MPU_Enable_userModeAccess(void)
+{
+ unsigned int reg_addr,i,count,defRegVal;
+ void __iomem * temp_reg;
+ defRegVal = 0x3FFFFFF;
+ reg_addr = 0x2368208;
+ count = 5;
+
+ for(i=1;i<=count;i++)
+ {
+ temp_reg= ioremap(reg_addr, 4);
+ __raw_writel(defRegVal, temp_reg) ;
+ iounmap(temp_reg);
+ //*((unsigned int*)(reg_addr)) = defRegVal;
+ reg_addr = reg_addr + 0x10;
+ }
+
+ reg_addr = 0x2370208;
+ count = 16;
+
+ for(i=1;i<=count;i++)
+ {
+ temp_reg= ioremap(reg_addr, 4);
+ __raw_writel(defRegVal,temp_reg) ;
+ iounmap(temp_reg);
+ // *((unsigned int*)(reg_addr)) = defRegVal;
+ reg_addr = reg_addr + 0x10;
+ }
+
+
+ reg_addr = 0x2378208;
+ count = 1;
+
+ for(i=1;i<=count;i++)
+ {
+ temp_reg= ioremap(reg_addr, 4);
+ __raw_writel(defRegVal, temp_reg) ;
+ iounmap(temp_reg);
+
+// *((unsigned int*)(reg_addr)) = defRegVal;
+ reg_addr = reg_addr + 0x10;
+ }
+}
+
+/*********************************************************************************
+* FUNCTION: netapi_init_proc
+*
+**********************************************************************************
+*
+* DESCRIPTION: Forms output for /proc/netapi file
+*********************************************************************************/
+static int netapi_init_proc(char *buf, char **start, off_t offset,
+ int count, int *eof, void *data)
+{
+ unsigned long val;
+ int len=0;
+ struct clk *clk = clk_get((struct device *) NULL,"clk_arm");
+
+ //enable user access to qmss h/w
+ MPU_Enable_userModeAccess();
+
+ //pmcr <- single clock, reset, enable
+ val = 0x4|0x1;
+ asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r"(val));
+
+ //userenr <- enable user space access [this won't work from user space obviously!]
+ val = 1;
+ asm volatile("mcr p15, 0, %0, c9, c14, 0" : : "r"(val));
+
+ //start things
+ val = 0x80000000;
+ asm volatile("mcr p15, 0, %0, c9, c12, 1" :: "r"(val));
+
+ len += sprintf(buf + len, "netapi proc entry\n");
+ len += sprintf(buf + len, "===========================\n");
+ len += sprintf(buf + len, "enabled PMU for user space\n");
+ asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(val));
+ len += sprintf(buf + len,"current ccnt = %d\n", val);
+ len += sprintf(buf + len,"arm cpu freq = %d \n", clk? (int) clk_get_rate(clk): -1);
+ //len += sprintf(buf + len,"arm cpu freq = %d %d\n", davinci_ck_get_arm_rate(),clk? (int) clk_get_rate(clk): -1);
+ *eof = 1;
+
+ return len;
+}
+
+
+/*********************************************************************************
+* FUNCTION: netapi_stats_proc
+*
+**********************************************************************************
+*
+* DESCRIPTION: Forms output for /proc/netapi_stats file
+*********************************************************************************/
+static int netapi_stats_proc(char *buf, char **start, off_t offset,
+ int count, int *eof, void *data)
+{
+
+ int len = 0;
+ len += sprintf(buf + len, "NETAPI Stats:\n");
+ len += sprintf(buf + len, "=============================================\n");
+ len += sprintf(buf + len, "...coming...\n");
+ *eof = 1;
+ return len;
+}
+
+
+/*********************************************************************************
+* FUNCTION: netapimod_init_module
+*
+* DESCRIPTION:Initialization routine for netapi kernel device
+*********************************************************************************/
+static int __init netapimod_init_module(void)
+{
+ int ret;
+ void * priv = NULL;
+
+ DPRINTK("netapimod_init_module: init\n");
+
+ create_proc_read_entry("netapi", 0, NULL, netapi_init_proc, (void *)priv);
+// create_proc_read_entry("netapi_stats", 0, NULL, netapi_stats_proc, (void *)priv);
+ DPRINTK("NETAPI module loaded \n");
+ return 0;
+}
+
+/*********************************************************************************
+ * FUNCTION: netapimod_cleanup_module
+ *
+ * DESCRIPTION:
+ *********************************************************************************/
+static void __exit netapimod_cleanup_module(void)
+{
+ /* need to remove proc entries, etc */
+ DPRINTK("netapi module unloaded\n");
+ return;
+}
+
+module_init(netapimod_init_module);
+module_exit(netapimod_cleanup_module);
+
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Texas Instruments Incorporated");
+MODULE_DESCRIPTION("TI voice NETAPI core module.");
+MODULE_SUPPORTED_DEVICE("Texas Instruments netapi");
+
+
diff --git a/ti/runtime/netapi/tools/module/netapimod.ko b/ti/runtime/netapi/tools/module/netapimod.ko
new file mode 100644 (file)
index 0000000..7a69bdb
Binary files /dev/null and b/ti/runtime/netapi/tools/module/netapimod.ko differ
index 0000000..7a69bdb
Binary files /dev/null and b/ti/runtime/netapi/tools/module/netapimod.ko differ
diff --git a/ti/runtime/netapi/tools/module/netapimod.mod.c b/ti/runtime/netapi/tools/module/netapimod.mod.c
--- /dev/null
@@ -0,0 +1,36 @@
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+ .name = KBUILD_MODNAME,
+ .init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+ .exit = cleanup_module,
+#endif
+ .arch = MODULE_ARCH_INIT,
+};
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+ { 0x6b79149b, "module_layout" },
+ { 0xef64e10e, "clk_get_rate" },
+ { 0x3c2c5af5, "sprintf" },
+ { 0xa24d2473, "davinci_iounmap" },
+ { 0x9ad0d04a, "davinci_ioremap" },
+ { 0x8abb4dcb, "clk_get" },
+ { 0xe914e41e, "strcpy" },
+ { 0xa099afe, "create_proc_entry" },
+ { 0xefd6cf06, "__aeabi_unwind_cpp_pr0" },
+ { 0x27e1a049, "printk" },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
diff --git a/ti/runtime/netapi/tools/module/netapimod.mod.o b/ti/runtime/netapi/tools/module/netapimod.mod.o
new file mode 100644 (file)
index 0000000..2a6e0ed
Binary files /dev/null and b/ti/runtime/netapi/tools/module/netapimod.mod.o differ
index 0000000..2a6e0ed
Binary files /dev/null and b/ti/runtime/netapi/tools/module/netapimod.mod.o differ
diff --git a/ti/runtime/netapi/tools/module/netapimod.o b/ti/runtime/netapi/tools/module/netapimod.o
new file mode 100644 (file)
index 0000000..81bbf6c
Binary files /dev/null and b/ti/runtime/netapi/tools/module/netapimod.o differ
index 0000000..81bbf6c
Binary files /dev/null and b/ti/runtime/netapi/tools/module/netapimod.o differ