1
0
mirror of https://git.yoctoproject.org/meta-ti synced 2026-05-30 15:30:28 +00:00

linux-davinci 2.6.32: remove old hawkboard-specific kernel

* Hawkboard platform is not supported in meta-ti.
* Since there no new revs of the kernel, the old recipe can be picked up from
  Danny or Denzil.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Acked-by: Franklin Cooper Jr. <fcooper@ti.com>
This commit is contained in:
Denys Dmytriyenko
2013-09-28 16:31:19 -04:00
parent c08098f04d
commit 9f4e9c44f4
22 changed files with 0 additions and 93626 deletions
@@ -1,51 +0,0 @@
From 1415ec63689ef39bcb24b5095941ec4cc884035c Mon Sep 17 00:00:00 2001
From: Mikael Pettersson <mikpe@it.uu.se>
Date: Sun, 15 Aug 2010 10:47:23 +0100
Subject: [PATCH 1/2] ARM: 6329/1: wire up sys_accept4() on ARM
sys_accept4() was added in kernel 2.6.28, but ARM was not updated
to include it. The number and types of parameters is such that
no ARM-specific processing is needed, so wiring up sys_accept4()
just requires defining __NR_accept4 and adding a direct call in
the syscall entry table.
Tested with an EABI 2.6.35 kernel and Ulrich Drepper's original
accept4() test program, modified to define __NR_accept4 for ARM.
Using the updated unistd.h also eliminates a warning then building
glibc (2.10.2 and newer) about accept4() being unimplemented.
Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
arch/arm/include/asm/unistd.h | 1 +
arch/arm/kernel/calls.S | 1 +
2 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/arch/arm/include/asm/unistd.h b/arch/arm/include/asm/unistd.h
index dd2bf53..d02cfb6 100644
--- a/arch/arm/include/asm/unistd.h
+++ b/arch/arm/include/asm/unistd.h
@@ -392,6 +392,7 @@
#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE+363)
#define __NR_perf_event_open (__NR_SYSCALL_BASE+364)
#define __NR_recvmmsg (__NR_SYSCALL_BASE+365)
+#define __NR_accept4 (__NR_SYSCALL_BASE+366)
/*
* The following SWIs are ARM private.
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 37ae301..afeb71f 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -375,6 +375,7 @@
CALL(sys_rt_tgsigqueueinfo)
CALL(sys_perf_event_open)
/* 365 */ CALL(sys_recvmmsg)
+ CALL(sys_accept4)
#ifndef syscalls_counted
.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
#define syscalls_counted
--
1.6.6.1
@@ -1,26 +0,0 @@
From b0a773f958b03ba77317f8b762d90d3c00269292 Mon Sep 17 00:00:00 2001
From: Roger Monk <r-monk@ti.com>
Date: Wed, 25 Aug 2010 16:45:46 +0100
Subject: [PATCH] ahci-ti: Fix (currently harmless) typo in SATA PHY configuration
Signed-off-by: Roger Monk <r-monk@ti.com>
---
drivers/ata/ahci-ti.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/ata/ahci-ti.c b/drivers/ata/ahci-ti.c
index 9e36c9d..674b216 100644
--- a/drivers/ata/ahci-ti.c
+++ b/drivers/ata/ahci-ti.c
@@ -80,7 +80,7 @@ void ata_plat_init (void __iomem *base)
phy_val = PHY_MPY << 0 | PHY_LB << 4 | PHY_LOS << 6 |
PHY_RXINVPAIR << 7 | PHY_RXTERM << 8 |
PHY_RXCDR << 10 | PHY_RXEQ << 13 |
- PHY_RXINVPAIR << 17 | PHY_TXCM << 18 |
+ PHY_TXINVPAIR << 17 | PHY_TXCM << 18 |
PHY_TXSWING << 19 | PHY_TXDE << 22 |
PHY_OVERRIDE << 30 | PHY_ENPLL << 31;
--
1.6.0.4
@@ -1,58 +0,0 @@
From 787c524fc478068d18eef72f43074b47722e50b0 Mon Sep 17 00:00:00 2001
From: Greg KH <gregkh@suse.de>
Date: Thu, 5 Aug 2010 13:53:35 -0700
Subject: [PATCH] cgroupfs: create /sys/fs/cgroup to mount cgroupfs on
We really shouldn't be asking userspace to create new root filesystems.
So follow along with all of the other in-kernel filesystems, and provide
a mount point in sysfs.
For cgroupfs, this should be in /sys/fs/cgroup/ This change provides
that mount point when the cgroup filesystem is registered in the kernel.
Acked-by: Paul Menage <menage@google.com>
Acked-by: Dhaval Giani <dhaval.giani@gmail.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Lennart Poettering <lennart@poettering.net>
Cc: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
kernel/cgroup.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 0249f4b..db21dd8 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1472,6 +1472,8 @@ static struct file_system_type cgroup_fs_type = {
.kill_sb = cgroup_kill_sb,
};
+static struct kobject *cgroup_kobj;
+
static inline struct cgroup *__d_cgrp(struct dentry *dentry)
{
return dentry->d_fsdata;
@@ -3283,9 +3285,18 @@ int __init cgroup_init(void)
hhead = css_set_hash(init_css_set.subsys);
hlist_add_head(&init_css_set.hlist, hhead);
BUG_ON(!init_root_id(&rootnode));
+
+ cgroup_kobj = kobject_create_and_add("cgroup", fs_kobj);
+ if (!cgroup_kobj) {
+ err = -ENOMEM;
+ goto out;
+ }
+
err = register_filesystem(&cgroup_fs_type);
- if (err < 0)
+ if (err < 0) {
+ kobject_put(cgroup_kobj);
goto out;
+ }
proc_create("cgroups", 0, NULL, &proc_cgroupstats_operations);
--
1.6.6.1
@@ -1,29 +0,0 @@
From 37a7868b15be9415abd3f57477afc8be956666e6 Mon Sep 17 00:00:00 2001
From: Roger Monk <r-monk@ti.com>
Date: Wed, 25 Aug 2010 16:46:28 +0100
Subject: [PATCH] ahci-ti: Update SATA PHY configuration - RXCDR --> 4
* Update SATA PHY configuration for Receiver Clock/Data Recovery
* Set to 0x4 = 2nd order, low precision
Signed-off-by: Roger Monk <r-monk@ti.com>
---
drivers/ata/ahci-ti.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/ata/ahci-ti.c b/drivers/ata/ahci-ti.c
index 674b216..853d251 100644
--- a/drivers/ata/ahci-ti.c
+++ b/drivers/ata/ahci-ti.c
@@ -55,7 +55,7 @@ void ata_plat_remove(struct ata_host *host);
#define PHY_LOS 1 /* bit6 1 */
#define PHY_RXINVPAIR 0 /* bit7 1 */
#define PHY_RXTERM 0 /* bits9:8 2 */
-#define PHY_RXCDR 0 /* bits12:10 3 */
+#define PHY_RXCDR 4 /* bits12:10 3 */
#define PHY_RXEQ 1 /* bits16:13 4 */
#define PHY_TXINVPAIR 0 /* bit17 1 */
#define PHY_TXCM 0 /* bit18 1 */
--
1.6.0.4
@@ -1,27 +0,0 @@
From 69600e5a42512204bc4eb83a3a459496b049107f Mon Sep 17 00:00:00 2001
From: Roger Monk <r-monk@ti.com>
Date: Wed, 25 Aug 2010 17:47:16 +0100
Subject: [PATCH] board-da850-hawk: Disable NAND SUBPAGE
* This was causing issues with UBI
* Solution/Workaround identified by Caglar Akyuz - now applied locally to board file
---
arch/arm/mach-davinci/board-da850-hawk.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-davinci/board-da850-hawk.c b/arch/arm/mach-davinci/board-da850-hawk.c
index 87ed017..bbfe32a 100644
--- a/arch/arm/mach-davinci/board-da850-hawk.c
+++ b/arch/arm/mach-davinci/board-da850-hawk.c
@@ -118,7 +118,7 @@ static struct davinci_nand_pdata da850_hawk_nandflash_data = {
.nr_parts = ARRAY_SIZE(da850_hawk_nandflash_partition),
.ecc_mode = NAND_ECC_HW,
.ecc_bits = 4,
- .options = NAND_USE_FLASH_BBT,
+ .options = NAND_USE_FLASH_BBT | NAND_NO_SUBPAGE_WRITE,
.timing = &da850_hawk_nandflash_timing,
};
--
1.6.0.4
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,29 +0,0 @@
From 2ee9f2c655710d9e60a5a9b49871edc316e5363d Mon Sep 17 00:00:00 2001
From: Roger Monk <r-monk@ti.com>
Date: Wed, 25 Aug 2010 17:29:14 +0100
Subject: [PATCH] board-da850-evm: Disable NAND SUBPAGE
* This was causing issues with UBI
* Solution/Workaround identified by Caglar Akyuz - now applied locally to board file
Signed-off-by: Roger Monk <r-monk@ti.com>
---
arch/arm/mach-davinci/board-da850-evm.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index cfed439..502b914 100755
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -187,7 +187,7 @@ static struct davinci_nand_pdata da850_evm_nandflash_data = {
.nr_parts = ARRAY_SIZE(da850_evm_nandflash_partition),
.ecc_mode = NAND_ECC_HW,
.ecc_bits = 4,
- .options = NAND_USE_FLASH_BBT,
+ .options = NAND_USE_FLASH_BBT | NAND_NO_SUBPAGE_WRITE,
.timing = &da850_evm_nandflash_timing,
};
--
1.6.0.4
@@ -1,334 +0,0 @@
From: Melissa Watkins <m-watkins@ti.com>
Date: Wed, 24 Nov 2010 02:59:34 -0600
Subject: [PATCH 1/3] uio_pruss1: Core driver addition
This patch adds the uio_pru driver and updates the uio Makefile
and Kconfig files to support this driver. The uio_pru driver provides
a framework for handling the PRU in the user space and is responsible
for the device setup and the primary interrupt handling.
Signed-off-by: Amit Chatterjee <amit.chatterjee@ti.com>
Signed-off-by: Melissa Watkins <m-watkins@ti.com>
---
drivers/uio/Kconfig | 10 ++
drivers/uio/Makefile | 1 +
drivers/uio/uio_pru.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 290 insertions(+), 0 deletions(-)
create mode 100644 drivers/uio/uio_pru.c
diff --git a/drivers/uio/Kconfig b/drivers/uio/Kconfig
index 8aa1955..8ae8280 100644
--- a/drivers/uio/Kconfig
+++ b/drivers/uio/Kconfig
@@ -94,4 +94,14 @@ config UIO_PCI_GENERIC
primarily, for virtualization scenarios.
If you compile this as a module, it will be called uio_pci_generic.
+config UIO_PRUSS
+ tristate "Texas Instruments PRUSS driver"
+ depends on ARCH_DAVINCI_DA850
+ default n
+ help
+ PRUSS driver for OMAPL13X/DA8XX/AM17XX/AM18XX devices
+ PRUSS driver requires user space components
+ To compile this driver as a module, choose M here: the module
+ will be called uio_pruss.
+
endif
diff --git a/drivers/uio/Makefile b/drivers/uio/Makefile
index 73b2e75..e6d8adb 100644
--- a/drivers/uio/Makefile
+++ b/drivers/uio/Makefile
@@ -6,3 +6,4 @@ obj-$(CONFIG_UIO_SMX) += uio_smx.o
obj-$(CONFIG_UIO_AEC) += uio_aec.o
obj-$(CONFIG_UIO_SERCOS3) += uio_sercos3.o
obj-$(CONFIG_UIO_PCI_GENERIC) += uio_pci_generic.o
+obj-$(CONFIG_UIO_PRUSS) += uio_pru.o
diff --git a/drivers/uio/uio_pru.c b/drivers/uio/uio_pru.c
new file mode 100644
index 0000000..82dc35e
--- /dev/null
+++ b/drivers/uio/uio_pru.c
@@ -0,0 +1,279 @@
+/*
+ * UIO TI Programmable Real-Time Unit (PRU) driver.
+ *
+ * (C) 2010 Amit Chatterjee <amit.chatterjee@ti.com>
+ *
+ * Copyright (C) {YEAR} Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * 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/device.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+#include <linux/uio_driver.h>
+#include <linux/io.h>
+#include <linux/clk.h>
+#include <linux/dma-mapping.h>
+
+#define DRV_NAME "pruss"
+#define DRV_VERSION "0.01"
+
+/*
+0x01C30000 - 0x01C301FF Data RAM 0
+0x01C30200 - 0x01C31FFF Reserved
+0x01C32000 - 0x01C321FF Data RAM 1
+0x01C32200 - 0x01C33FFF Reserved
+0x01C34000 - 0x01C36FFF INTC Registers
+0x01C37000 - 0x01C373FF PRU0 Control Registers
+0x01C37400 - 0x01C377FF PRU0 Debug Registers
+0x01C37800 - 0x01C37BFF PRU1 Control Registers
+0x01C37C00 - 0x01C37FFF PRU1 Debug Registers
+0x01C38000 - 0x01C38FFF PRU0 Instruction RAM
+0x01C39000 - 0x01C3BFFF Reserved
+0x01C3C000 - 0x01C3CFFF PRU1 Instruction RAM
+0x01C3D000 - 0x01C3FFFF Reserved
+*/
+/*
+ * 3 PRU_EVTOUT0 PRUSS Interrupt
+ * 4 PRU_EVTOUT1 PRUSS Interrupt
+ * 5 PRU_EVTOUT2 PRUSS Interrupt
+ * 6 PRU_EVTOUT3 PRUSS Interrupt
+ * 7 PRU_EVTOUT4 PRUSS Interrupt
+ * 8 PRU_EVTOUT5 PRUSS Interrupt
+ * 9 PRU_EVTOUT6 PRUSS Interrupt
+ * 10 PRU_EVTOUT7 PRUSS Interrupt
+*/
+
+#define PRUSS_INSTANCE (8)
+
+static struct clk *pruss_clk = NULL, *ecap0_clk = NULL;
+static struct uio_info *info[PRUSS_INSTANCE];
+static void *ddr_virt_addr;
+static dma_addr_t ddr_phy_addr;
+
+
+
+static irqreturn_t pruss_handler(int irq, struct uio_info *dev_info)
+{
+ return IRQ_HANDLED;
+}
+
+static int __devinit pruss_probe(struct platform_device *dev)
+{
+ int ret = -ENODEV;
+ int count = 0;
+ struct resource *regs_pruram, *regs_l3ram, *regs_ddr;
+ char *string;
+
+ /* Power on PRU in case its not done as part of boot-loader */
+ pruss_clk = clk_get(&dev->dev, "pruss");
+ if (IS_ERR(pruss_clk)) {
+ dev_err(&dev->dev, "no pruss clock available\n");
+ ret = PTR_ERR(pruss_clk);
+ pruss_clk = NULL;
+ return ret;
+ } else {
+ clk_enable (pruss_clk);
+ }
+
+ ecap0_clk = clk_get(&dev->dev, "ecap0");
+ if (IS_ERR(ecap0_clk)) {
+ dev_err(&dev->dev, "no ecap0 clock available\n");
+ ret = PTR_ERR(ecap0_clk);
+ ecap0_clk = NULL;
+ return ret;
+ } else {
+ clk_enable(ecap0_clk);
+ }
+
+
+
+ for (count = 0; count < PRUSS_INSTANCE; count++) {
+ info[count] = (struct uio_info *)kzalloc(sizeof(struct uio_info), GFP_KERNEL);
+ if (!info[count])
+ return -ENOMEM;
+
+ }
+
+ regs_pruram = platform_get_resource(dev, IORESOURCE_MEM, 0);
+ if (!regs_pruram) {
+ dev_err(&dev->dev, "No memory resource specified\n");
+ goto out_free;
+ }
+
+ regs_l3ram = platform_get_resource(dev, IORESOURCE_MEM, 1);
+ if (!regs_l3ram) {
+ dev_err(&dev->dev, "No memory resource specified\n");
+ goto out_free;
+ }
+
+ regs_ddr = platform_get_resource(dev, IORESOURCE_MEM, 2);
+ if (!regs_ddr) {
+ dev_err(&dev->dev, "No memory resource specified\n");
+ goto out_free;
+ }
+ ddr_virt_addr = dma_alloc_coherent(&dev->dev, regs_ddr->end-regs_ddr->start+1, &ddr_phy_addr, GFP_KERNEL|GFP_DMA);
+
+
+ for (count = 0; count < PRUSS_INSTANCE; count++) {
+ info[count]->mem[0].addr = regs_pruram->start;
+ if (!info[count]->mem[0].addr) {
+ dev_err(&dev->dev, "Invalid memory resource\n");
+ break;
+ }
+
+ info[count]->mem[0].size = regs_pruram->end - regs_pruram->start + 1;
+ info[count]->mem[0].internal_addr = ioremap(regs_pruram->start, info[count]->mem[0].size);
+
+ if (!info[count]->mem[0].internal_addr) {
+ dev_err(&dev->dev, "Can't remap memory address range\n");
+ break;
+ }
+ info[count]->mem[0].memtype = UIO_MEM_PHYS;
+
+
+ info[count]->mem[1].addr = regs_l3ram->start;
+ if (!info[count]->mem[1].addr) {
+ dev_err(&dev->dev, "Invalid memory resource\n");
+ break;
+ }
+
+ info[count]->mem[1].size = regs_l3ram->end - regs_l3ram->start + 1;
+ info[count]->mem[1].internal_addr = ioremap(regs_l3ram->start, info[count]->mem[1].size);
+
+ if (!info[count]->mem[1].internal_addr) {
+ dev_err(&dev->dev, "Can't remap memory address range\n");
+ break;
+ }
+ info[count]->mem[1].memtype = UIO_MEM_PHYS;
+
+
+ info[count]->mem[2].size = regs_ddr->end - regs_ddr->start + 1;
+ if (!(info[count]->mem[2].size-1)) {
+ dev_err(&dev->dev, "Invalid memory resource\n");
+ break;
+ }
+
+
+ info[count]->mem[2].internal_addr = ddr_virt_addr;
+
+ if (!info[count]->mem[2].internal_addr) {
+ dev_err(&dev->dev, "Can't remap memory address range\n");
+ break;
+ }
+ info[count]->mem[2].addr = ddr_phy_addr;
+ info[count]->mem[2].memtype = UIO_MEM_PHYS;
+
+
+ string = kzalloc(20, GFP_KERNEL);
+ sprintf(string, "pruss_evt%d", count);
+ info[count]->name = string;
+ info[count]->version = "0.01";
+
+ /* Register PRUSS IRQ lines */
+ info[count]->irq = IRQ_DA8XX_EVTOUT0+count;
+
+ info[count]->irq_flags = IRQF_SHARED;
+ info[count]->handler = pruss_handler;
+
+ ret = uio_register_device(&dev->dev, info[count]);
+
+ if (ret < 0)
+ break;
+ }
+
+ platform_set_drvdata(dev, info);
+
+ if (ret < 0) {
+ if (ddr_virt_addr)
+ dma_free_coherent(&dev->dev, regs_ddr->end - regs_ddr->start + 1, ddr_virt_addr, ddr_phy_addr);
+ while (count--) {
+ uio_unregister_device(info[count]);
+ if (info[count]->name)
+ kfree(info[count]->name);
+ iounmap(info[count]->mem[0].internal_addr);
+ }
+ } else {
+ return 0;
+ }
+
+out_free:
+ for (count = 0; count < PRUSS_INSTANCE; count++) {
+ if (info[count])
+ kfree(info[count]);
+ }
+
+ if (pruss_clk != NULL)
+ clk_put(pruss_clk);
+ if (ecap0_clk != NULL)
+ clk_put(ecap0_clk);
+
+ return ret;
+}
+
+static int __devexit pruss_remove(struct platform_device *dev)
+{
+ int count = 0;
+ struct uio_info **info;
+
+ info = (struct uio_info **)platform_get_drvdata(dev);
+
+ for (count = 0; count < PRUSS_INSTANCE; count++) {
+ uio_unregister_device(info[count]);
+ if (info[count]->name)
+ kfree(info[count]->name);
+
+ }
+ iounmap(info[0]->mem[0].internal_addr);
+ iounmap(info[0]->mem[1].internal_addr);
+ if (ddr_virt_addr)
+ dma_free_coherent(&dev->dev, info[0]->mem[2].size, info[0]->mem[2].internal_addr, info[0]->mem[2].addr);
+
+ for (count = 0; count < PRUSS_INSTANCE; count++) {
+ if (info[count])
+ kfree(info[count]);
+ }
+
+ platform_set_drvdata(dev, NULL);
+
+ if (pruss_clk != NULL)
+ clk_put(pruss_clk);
+ if (ecap0_clk != NULL)
+ clk_put(ecap0_clk);
+
+
+ return 0;
+}
+
+static struct platform_driver pruss_driver = {
+ .probe = pruss_probe,
+ .remove = __devexit_p(pruss_remove),
+ .driver = {
+ .name = DRV_NAME,
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init pruss_init_module(void)
+{
+ return platform_driver_register(&pruss_driver);
+}
+module_init(pruss_init_module);
+
+static void __exit pruss_exit_module(void)
+{
+ platform_driver_unregister(&pruss_driver);
+}
+module_exit(pruss_exit_module);
+
+MODULE_LICENSE("GPL v2");
+MODULE_VERSION(DRV_VERSION);
+MODULE_AUTHOR("Amit Chatterjee <amit.chatterjee@ti.com>");
--
1.7.0.4
@@ -1,243 +0,0 @@
From: Melissa Watkins <m-watkins@ti.com>
Date: Wed, 24 Nov 2010 04:18:07 -0600
Subject: [PATCH 2/3] uio_pruss2: Platform changes
Adding resources supporting the uio_pru driver within the
da850 (omapl138) device.
Signed-off-by: Amit Chatterjee <amit.chatterjee@ti.com>
Signed-off-by: Melissa Watkins <m-watkins@ti.com>
---
arch/arm/configs/da850_omapl138_defconfig | 8 +++-
arch/arm/mach-davinci/board-da850-evm.c | 3 +
arch/arm/mach-davinci/da850.c | 38 +++++++++++++-
arch/arm/mach-davinci/devices-da8xx.c | 75 ++++++++++++++++++++++++++++
arch/arm/mach-davinci/include/mach/da8xx.h | 3 +
5 files changed, 124 insertions(+), 3 deletions(-)
diff --git a/arch/arm/configs/da850_omapl138_defconfig b/arch/arm/configs/da850_omapl138_defconfig
index b312050..baebec8 100644
--- a/arch/arm/configs/da850_omapl138_defconfig
+++ b/arch/arm/configs/da850_omapl138_defconfig
@@ -1361,6 +1361,7 @@ CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SOC=y
CONFIG_USB_MUSB_HOST=y
# CONFIG_USB_MUSB_PERIPHERAL is not set
+# CONFIG_USB_MUSB_DUAL_ROLE is not set
# CONFIG_USB_MUSB_OTG is not set
CONFIG_USB_MUSB_HDRC_HCD=y
# CONFIG_MUSB_PIO_ONLY is not set
@@ -1535,7 +1536,12 @@ CONFIG_RTC_INTF_DEV=y
CONFIG_RTC_DRV_OMAP=y
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
+CONFIG_UIO=y
+# CONFIG_UIO_PDRV is not set
+# CONFIG_UIO_PDRV_GENIRQ is not set
+# CONFIG_UIO_SMX is not set
+# CONFIG_UIO_SERCOS3 is not set
+CONFIG_UIO_PRUSS=m
#
# TI VLYNQ
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index 009e9b5..1687c7c 100755
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -1070,6 +1070,9 @@ static __init void da850_evm_init(void)
platform_device_register(&da850_gpio_i2c);
+ /* Register PRUSS device */
+ da8xx_register_pruss();
+
ret = da8xx_register_watchdog();
if (ret)
pr_warning("da830_evm_init: watchdog registration failed: %d\n",
diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
index 513ae85..8bd1919 100755
--- a/arch/arm/mach-davinci/da850.c
+++ b/arch/arm/mach-davinci/da850.c
@@ -237,6 +237,13 @@ static struct clk tptc2_clk = {
.flags = ALWAYS_ENABLED,
};
+static struct clk pruss_clk = {
+ .name = "pruss",
+ .parent = &pll0_sysclk2,
+ .lpsc = DA8XX_LPSC0_DMAX,
+ .flags = ALWAYS_ENABLED,
+};
+
static struct clk uart0_clk = {
.name = "uart0",
.parent = &pll0_sysclk2,
@@ -385,13 +392,37 @@ static struct clk usb20_clk = {
.gpsc = 1,
};
-
static struct clk sata_clk = {
.name = "ahci",
.parent = &pll0_sysclk2,
.lpsc = DA850_LPSC1_SATA,
.gpsc = 1,
};
+
+static struct clk ecap0_clk = {
+ .name = "ecap0",
+ .parent = &pll0_sysclk2,
+ .lpsc = DA8XX_LPSC1_ECAP,
+ .flags = DA850_CLK_ASYNC3,
+ .gpsc = 1,
+};
+
+static struct clk ecap1_clk = {
+ .name = "ecap1",
+ .parent = &pll0_sysclk2,
+ .lpsc = DA8XX_LPSC1_ECAP,
+ .flags = DA850_CLK_ASYNC3,
+ .gpsc = 1,
+};
+
+static struct clk ecap2_clk = {
+ .name = "ecap2",
+ .parent = &pll0_sysclk2,
+ .lpsc = DA8XX_LPSC1_ECAP,
+ .flags = DA850_CLK_ASYNC3,
+ .gpsc = 1,
+};
+
static struct clk_lookup da850_clks[] = {
CLK(NULL, "ref", &ref_clk),
CLK(NULL, "pll0", &pll0_clk),
@@ -419,6 +450,7 @@ static struct clk_lookup da850_clks[] = {
CLK(NULL, "tptc1", &tptc1_clk),
CLK(NULL, "tpcc1", &tpcc1_clk),
CLK(NULL, "tptc2", &tptc2_clk),
+ CLK(NULL, "pruss", &pruss_clk),
CLK(NULL, "uart0", &uart0_clk),
CLK(NULL, "uart1", &uart1_clk),
CLK(NULL, "uart2", &uart2_clk),
@@ -441,7 +473,9 @@ static struct clk_lookup da850_clks[] = {
CLK(NULL, "usb11", &usb11_clk),
CLK(NULL, "usb20", &usb20_clk),
CLK(NULL, "ahci", &sata_clk),
-
+ CLK(NULL, "ecap0", &ecap0_clk),
+ CLK(NULL, "ecap1", &ecap1_clk),
+ CLK(NULL, "ecap2", &ecap2_clk),
CLK(NULL, NULL, NULL),
};
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c
index 0842590..94979b3 100755
--- a/arch/arm/mach-davinci/devices-da8xx.c
+++ b/arch/arm/mach-davinci/devices-da8xx.c
@@ -972,6 +972,81 @@ int __init da8xx_register_sata(void)
return platform_device_register(&da850_ahci_device);
}
+static struct resource pruss_resources[] = {
+ [0] = {
+ .start = DA8XX_PRUSS_BASE,
+ .end = DA8XX_PRUSS_BASE + SZ_64K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = DA8XX_L3RAM_BASE,
+ .end = DA8XX_L3RAM_BASE + SZ_128K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [2] = {
+ .start = 0,
+ .end = SZ_256K - 1,
+ .flags = IORESOURCE_MEM,
+ },
+
+ [3] = {
+ .start = IRQ_DA8XX_EVTOUT0,
+ .end = IRQ_DA8XX_EVTOUT0,
+ .flags = IORESOURCE_IRQ,
+ },
+ [4] = {
+ .start = IRQ_DA8XX_EVTOUT1,
+ .end = IRQ_DA8XX_EVTOUT1,
+ .flags = IORESOURCE_IRQ,
+ },
+ [5] = {
+ .start = IRQ_DA8XX_EVTOUT2,
+ .end = IRQ_DA8XX_EVTOUT2,
+ .flags = IORESOURCE_IRQ,
+ },
+ [6] = {
+ .start = IRQ_DA8XX_EVTOUT3,
+ .end = IRQ_DA8XX_EVTOUT3,
+ .flags = IORESOURCE_IRQ,
+ },
+ [7] = {
+ .start = IRQ_DA8XX_EVTOUT4,
+ .end = IRQ_DA8XX_EVTOUT4,
+ .flags = IORESOURCE_IRQ,
+ },
+ [8] = {
+ .start = IRQ_DA8XX_EVTOUT5,
+ .end = IRQ_DA8XX_EVTOUT5,
+ .flags = IORESOURCE_IRQ,
+ },
+ [9] = {
+ .start = IRQ_DA8XX_EVTOUT6,
+ .end = IRQ_DA8XX_EVTOUT6,
+ .flags = IORESOURCE_IRQ,
+ },
+ [10] = {
+ .start = IRQ_DA8XX_EVTOUT7,
+ .end = IRQ_DA8XX_EVTOUT7,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
+static struct platform_device pruss_device = {
+ .name = "pruss",
+ .id = 0,
+ .num_resources = ARRAY_SIZE(pruss_resources),
+ .resource = pruss_resources,
+ .dev = {
+ .coherent_dma_mask = 0xffffffff,
+ }
+
+};
+
+int __init da8xx_register_pruss()
+{
+ return platform_device_register(&pruss_device);
+}
+
#define CFGCHIP2 DA8XX_SYSCFG0_VIRT(DA8XX_CFGCHIP2_REG)
/*
* Configure the USB PHY for DA8xx platforms.
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h
index f76433f..632d7e2 100755
--- a/arch/arm/mach-davinci/include/mach/da8xx.h
+++ b/arch/arm/mach-davinci/include/mach/da8xx.h
@@ -75,6 +75,8 @@ extern void __iomem *da8xx_syscfg1_base;
#define DA8XX_USB0_BASE 0x01e00000
#define DA850_SATA_BASE 0x01E18000
#define DA850_SATA_CLK_PWRDN 0x01E2C018
+#define DA8XX_PRUSS_BASE 0x01C30000
+#define DA8XX_L3RAM_BASE 0x80000000
#define PINMUX0 0x00
#define PINMUX1 0x04
@@ -162,6 +164,7 @@ int __init da850_register_vpif_capture(struct vpif_capture_config
int cppi41_init(void);
int da8xx_register_sata(void);
+int da8xx_register_pruss(void);
extern struct platform_device da8xx_serial_device;
--
1.7.0.4
@@ -1,45 +0,0 @@
From: Melissa Watkins <m-watkins@ti.com>
Date: Wed, 24 Nov 2010 04:20:24 -0600
Subject: [PATCH 3/3] uio_pruss3: Workarounds put into core code to support our devices
This patch modifies uio.c to support the uio_pruss driver. The UIO user space module relies on IO memory being mapped to user space. The IO map works fine for all mapped virtual addresses less than 0x80000000. However for the uio_pruss driver, the virtual address is on the higher side, so it fails. The fix added in this patch is mainly to check if the page map returned is correct.
Signed-off-by: Amit Chatterjee <amit.chatterjee@ti.com>
Signed-off-by: Melissa Watkins <m-watkins@ti.com>
---
drivers/uio/uio.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
index e941367..3241d26 100644
--- a/drivers/uio/uio.c
+++ b/drivers/uio/uio.c
@@ -19,7 +19,6 @@
#include <linux/device.h>
#include <linux/mm.h>
#include <linux/idr.h>
-#include <linux/sched.h>
#include <linux/string.h>
#include <linux/kobject.h>
#include <linux/uio_driver.h>
@@ -615,7 +615,7 @@ static int uio_find_mem_index(struct vm_area_struct *vma)
for (mi = 0; mi < MAX_UIO_MAPS; mi++) {
if (idev->info->mem[mi].size == 0)
return -1;
- if (vma->vm_pgoff == mi)
+ if ((idev->info->mem[mi].addr) >> PAGE_SHIFT == vma->vm_pgoff)
return mi;
}
return -1;
@@ -659,7 +664,7 @@ static int uio_vma_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
return 0;
}
-static const struct vm_operations_struct uio_vm_ops = {
+static struct vm_operations_struct uio_vm_ops = {
.open = uio_vma_open,
.close = uio_vma_close,
.fault = uio_vma_fault,
--
1.7.0.4
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,160 +0,0 @@
--- /tmp/mach-types 2009-03-17 16:55:42.000000000 +0100
+++ git/arch/arm/tools/mach-types 2009-03-17 16:56:28.000000000 +0100
@@ -12,7 +12,7 @@
#
# http://www.arm.linux.org.uk/developer/machines/?action=new
#
-# Last update: Sun Nov 30 16:39:36 2008
+# Last update: Tue Mar 17 15:56:28 2009
#
# machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number
#
@@ -1811,7 +1811,7 @@
jade MACH_JADE JADE 1821
ks8695_softplc MACH_KS8695_SOFTPLC KS8695_SOFTPLC 1822
gprisc3 MACH_GPRISC3 GPRISC3 1823
-stamp9260 MACH_STAMP9260 STAMP9260 1824
+stamp9g20 MACH_STAMP9G20 STAMP9G20 1824
smdk6430 MACH_SMDK6430 SMDK6430 1825
smdkc100 MACH_SMDKC100 SMDKC100 1826
tavorevb MACH_TAVOREVB TAVOREVB 1827
@@ -1993,4 +1993,138 @@
benzina MACH_BENZINA BENZINA 2003
blaze MACH_BLAZE BLAZE 2004
linkstation_ls_hgl MACH_LINKSTATION_LS_HGL LINKSTATION_LS_HGL 2005
-htcvenus MACH_HTCVENUS HTCVENUS 2006
+htckovsky MACH_HTCVENUS HTCVENUS 2006
+sony_prs505 MACH_SONY_PRS505 SONY_PRS505 2007
+hanlin_v3 MACH_HANLIN_V3 HANLIN_V3 2008
+sapphira MACH_SAPPHIRA SAPPHIRA 2009
+dack_sda_01 MACH_DACK_SDA_01 DACK_SDA_01 2010
+armbox MACH_ARMBOX ARMBOX 2011
+harris_rvp MACH_HARRIS_RVP HARRIS_RVP 2012
+ribaldo MACH_RIBALDO RIBALDO 2013
+agora MACH_AGORA AGORA 2014
+omap3_mini MACH_OMAP3_MINI OMAP3_MINI 2015
+a9sam6432_b MACH_A9SAM6432_B A9SAM6432_B 2016
+usg2410 MACH_USG2410 USG2410 2017
+pc72052_i10_revb MACH_PC72052_I10_REVB PC72052_I10_REVB 2018
+mx35_exm32 MACH_MX35_EXM32 MX35_EXM32 2019
+topas910 MACH_TOPAS910 TOPAS910 2020
+hyena MACH_HYENA HYENA 2021
+pospax MACH_POSPAX POSPAX 2022
+hdl_gx MACH_HDL_GX HDL_GX 2023
+ctera_4bay MACH_CTERA_4BAY CTERA_4BAY 2024
+ctera_plug_c MACH_CTERA_PLUG_C CTERA_PLUG_C 2025
+crwea_plug_i MACH_CRWEA_PLUG_I CRWEA_PLUG_I 2026
+egauge2 MACH_EGAUGE2 EGAUGE2 2027
+didj MACH_DIDJ DIDJ 2028
+m_s3c2443 MACH_MEISTER MEISTER 2029
+htcblackstone MACH_HTCBLACKSTONE HTCBLACKSTONE 2030
+cpuat9g20 MACH_CPUAT9G20 CPUAT9G20 2031
+smdk6440 MACH_SMDK6440 SMDK6440 2032
+omap_35xx_mvp MACH_OMAP_35XX_MVP OMAP_35XX_MVP 2033
+ctera_plug_i MACH_CTERA_PLUG_I CTERA_PLUG_I 2034
+pvg610_100 MACH_PVG610 PVG610 2035
+hprw6815 MACH_HPRW6815 HPRW6815 2036
+omap3_oswald MACH_OMAP3_OSWALD OMAP3_OSWALD 2037
+nas4220b MACH_NAS4220B NAS4220B 2038
+htcraphael_cdma MACH_HTCRAPHAEL_CDMA HTCRAPHAEL_CDMA 2039
+htcdiamond_cdma MACH_HTCDIAMOND_CDMA HTCDIAMOND_CDMA 2040
+scaler MACH_SCALER SCALER 2041
+zylonite2 MACH_ZYLONITE2 ZYLONITE2 2042
+aspenite MACH_ASPENITE ASPENITE 2043
+teton MACH_TETON TETON 2044
+ttc_dkb MACH_TTC_DKB TTC_DKB 2045
+bishop2 MACH_BISHOP2 BISHOP2 2046
+ippv5 MACH_IPPV5 IPPV5 2047
+farm926 MACH_FARM926 FARM926 2048
+mmccpu MACH_MMCCPU MMCCPU 2049
+sgmsfl MACH_SGMSFL SGMSFL 2050
+tt8000 MACH_TT8000 TT8000 2051
+zrn4300lp MACH_ZRN4300LP ZRN4300LP 2052
+mptc MACH_MPTC MPTC 2053
+h6051 MACH_H6051 H6051 2054
+pvg610_101 MACH_PVG610_101 PVG610_101 2055
+stamp9261_pc_evb MACH_STAMP9261_PC_EVB STAMP9261_PC_EVB 2056
+pelco_odysseus MACH_PELCO_ODYSSEUS PELCO_ODYSSEUS 2057
+tny_a9260 MACH_TNY_A9260 TNY_A9260 2058
+tny_a9g20 MACH_TNY_A9G20 TNY_A9G20 2059
+aesop_mp2530f MACH_AESOP_MP2530F AESOP_MP2530F 2060
+dx900 MACH_DX900 DX900 2061
+cpodc2 MACH_CPODC2 CPODC2 2062
+tilt_8925 MACH_TILT_8925 TILT_8925 2063
+davinci_dm357_evm MACH_DAVINCI_DM357_EVM DAVINCI_DM357_EVM 2064
+swordfish MACH_SWORDFISH SWORDFISH 2065
+corvus MACH_CORVUS CORVUS 2066
+taurus MACH_TAURUS TAURUS 2067
+axm MACH_AXM AXM 2068
+axc MACH_AXC AXC 2069
+baby MACH_BABY BABY 2070
+mp200 MACH_MP200 MP200 2071
+pcm043 MACH_PCM043 PCM043 2072
+hanlin_v3c MACH_HANLIN_V3C HANLIN_V3C 2073
+kbk9g20 MACH_KBK9G20 KBK9G20 2074
+adsturbog5 MACH_ADSTURBOG5 ADSTURBOG5 2075
+avenger_lite1 MACH_AVENGER_LITE1 AVENGER_LITE1 2076
+suc82x MACH_SUC SUC 2077
+at91sam7s256 MACH_AT91SAM7S256 AT91SAM7S256 2078
+mendoza MACH_MENDOZA MENDOZA 2079
+kira MACH_KIRA KIRA 2080
+mx1hbm MACH_MX1HBM MX1HBM 2081
+quatro43xx MACH_QUATRO43XX QUATRO43XX 2082
+quatro4230 MACH_QUATRO4230 QUATRO4230 2083
+nsb400 MACH_NSB400 NSB400 2084
+drp255 MACH_DRP255 DRP255 2085
+thoth MACH_THOTH THOTH 2086
+firestone MACH_FIRESTONE FIRESTONE 2087
+asusp750 MACH_ASUSP750 ASUSP750 2088
+ctera_dl MACH_CTERA_DL CTERA_DL 2089
+socr MACH_SOCR SOCR 2090
+htcoxygen MACH_HTCOXYGEN HTCOXYGEN 2091
+heroc MACH_HEROC HEROC 2092
+zeno6800 MACH_ZENO6800 ZENO6800 2093
+sc2mcs MACH_SC2MCS SC2MCS 2094
+gene100 MACH_GENE100 GENE100 2095
+as353x MACH_AS353X AS353X 2096
+sheevaplug MACH_SHEEVAPLUG SHEEVAPLUG 2097
+at91sam9g20 MACH_AT91SAM9G20 AT91SAM9G20 2098
+mv88f6192gtw_fe MACH_MV88F6192GTW_FE MV88F6192GTW_FE 2099
+cc9200 MACH_CC9200 CC9200 2100
+sm9200 MACH_SM9200 SM9200 2101
+tp9200 MACH_TP9200 TP9200 2102
+snapperdv MACH_SNAPPERDV SNAPPERDV 2103
+avengers_lite MACH_AVENGERS_LITE AVENGERS_LITE 2104
+avengers_lite1 MACH_AVENGERS_LITE1 AVENGERS_LITE1 2105
+omap3axon MACH_OMAP3AXON OMAP3AXON 2106
+ma8xx MACH_MA8XX MA8XX 2107
+mp201ek MACH_MP201EK MP201EK 2108
+davinci_tux MACH_DAVINCI_TUX DAVINCI_TUX 2109
+mpa1600 MACH_MPA1600 MPA1600 2110
+pelco_troy MACH_PELCO_TROY PELCO_TROY 2111
+nsb667 MACH_NSB667 NSB667 2112
+rovers5_4mpix MACH_ROVERS5_4MPIX ROVERS5_4MPIX 2113
+twocom MACH_TWOCOM TWOCOM 2114
+ubisys_p9_rcu3r2 MACH_UBISYS_P9_RCU3R2 UBISYS_P9_RCU3R2 2115
+hero_espresso MACH_HERO_ESPRESSO HERO_ESPRESSO 2116
+afeusb MACH_AFEUSB AFEUSB 2117
+t830 MACH_T830 T830 2118
+spd8020_cc MACH_SPD8020_CC SPD8020_CC 2119
+om_3d7k MACH_OM_3D7K OM_3D7K 2120
+picocom2 MACH_PICOCOM2 PICOCOM2 2121
+uwg4mx27 MACH_UWG4MX27 UWG4MX27 2122
+uwg4mx31 MACH_UWG4MX31 UWG4MX31 2123
+cherry MACH_CHERRY CHERRY 2124
+mx51_babbage MACH_MX51_BABBAGE MX51_BABBAGE 2125
+s3c2440turkiye MACH_S3C2440TURKIYE S3C2440TURKIYE 2126
+tx37 MACH_TX37 TX37 2127
+sbc2800_9g20 MACH_SBC2800_9G20 SBC2800_9G20 2128
+benzglb MACH_BENZGLB BENZGLB 2129
+benztd MACH_BENZTD BENZTD 2130
+cartesio_plus MACH_CARTESIO_PLUS CARTESIO_PLUS 2131
+solrad_g20 MACH_SOLRAD_G20 SOLRAD_G20 2132
+mx27wallace MACH_MX27WALLACE MX27WALLACE 2133
+fmzwebmodul MACH_FMZWEBMODUL FMZWEBMODUL 2134
+rd78x00_masa MACH_RD78X00_MASA RD78X00_MASA 2135
+smallogger MACH_SMALLOGGER SMALLOGGER 2136
+ccw9p9215 MACH_CCW9P9215 CCW9P9215 2137
+dm355_leopard MACH_DM355_LEOPARD DM355_LEOPARD 2138
+ts219 MACH_TS219 TS219 2139
+tny_a9263 MACH_TNY_A9263 TNY_A9263 2140
-56
View File
@@ -1,56 +0,0 @@
require multi-kernel.inc
DESCRIPTION = "Linux kernel for DaVinci processors"
COMPATIBLE_MACHINE = "hawkboard"
DEFAULT_PREFERENCE_hawkboard = "1"
BRANCH = "master"
SRC_URI_append = " file://defconfig "
S = "${WORKDIR}/git"
# The main PR is now using MACHINE_KERNEL_PR, for davinci see conf/machine/include/davinci.inc
# OMAPL tracking master branch - PSP 3.20.00.12
ARAGO_L1_REV = "2acf935c01b9adb50164d421c40cdc5862b9e143"
ARAGO_L1_BR = "master"
ARAGO_L1_PV = "2.6.32+2.6.33-rc4-${PR}+gitr${SRCREV}"
ARAGO_L1_URI = "git://arago-project.org/git/projects/linux-omapl1.git;protocol=git;branch=${BRANCH} "
SRCREV_hawkboard = "${ARAGO_L1_REV}"
PV_omapl138 = "${ARAGO_L1_PV}"
BRANCH_omapl138 = "${ARAGO_L1_BR}"
SRC_URI_append_omapl138 = "${ARAGO_L1_URI}"
SRC_URI_append_omapl138 = " file://logo_linux_clut224.ppm \
file://0001-ahci-ti-Fix-currently-harmless-typo-in-SATA-PHY.patch \
file://0002-ahci-ti-Update-SATA-PHY-configuration-RXCDR.patch \
file://0001-board-da850-evm-Disable-NAND-SUBPAGE.patch \
file://0001-uio_pruss1-Core-driver-addition.patch \
file://0002-uio_pruss2-Platform-changes.patch \
file://0003-uio_pruss3-Workarounds-put-into-core-code.patch \
file://0001-cgroupfs-create-sys-fs-cgroup-to-mount-cgroupfs-on.patch \
file://0001-ARM-6329-1-wire-up-sys_accept4-on-ARM.patch \
"
SRC_URI_append_hawkboard = " \
file://patch-2.6.33rc4-psp-to-hawkboard.patch \
file://0001-board-da850-hawk-Disable-NAND-SUBPAGE.patch \
"
# Perf in 2.6.33rc has broken perl handling, so disable it
do_compile_perf() {
:
}
do_install_perf() {
:
}