projects
/
openwrt.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kernel: add scsi cdrom support
[openwrt.git]
/
target
/
linux
/
lantiq
/
patches
/
809-mt-vpe.patch
diff --git
a/target/linux/lantiq/patches/809-mt-vpe.patch
b/target/linux/lantiq/patches/809-mt-vpe.patch
index
07312c7
..
ea50761
100644
(file)
--- a/
target/linux/lantiq/patches/809-mt-vpe.patch
+++ b/
target/linux/lantiq/patches/809-mt-vpe.patch
@@
-1,6
+1,6
@@
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
-@@ -1
669,6 +1669
,28 @@ config MIPS_VPE_LOADER
+@@ -1
837,6 +1837
,28 @@ config MIPS_VPE_LOADER
Includes a loader for loading an elf relocatable object
onto another VPE and running it.
Includes a loader for loading an elf relocatable object
onto another VPE and running it.
@@
-140,7
+140,7
@@
#define read_tc_gpr_sp() mftgpr(29)
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
#define read_tc_gpr_sp() mftgpr(29)
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
-@@ -8
4,7 +84
,8 @@ obj-$(CONFIG_MIPS32_O32) += binfmt_elfo3
+@@ -8
5,7 +85
,8 @@ obj-$(CONFIG_MIPS32_O32) += binfmt_elfo3
obj-$(CONFIG_KGDB) += kgdb.o
obj-$(CONFIG_PROC_FS) += proc.o
obj-$(CONFIG_KGDB) += kgdb.o
obj-$(CONFIG_PROC_FS) += proc.o
@@
-152,7
+152,7
@@
obj-$(CONFIG_I8253) += i8253.o
--- a/arch/mips/kernel/mips-mt.c
+++ b/arch/mips/kernel/mips-mt.c
obj-$(CONFIG_I8253) += i8253.o
--- a/arch/mips/kernel/mips-mt.c
+++ b/arch/mips/kernel/mips-mt.c
-@@ -21,26 +21,9
5
@@
+@@ -21,26 +21,9
6
@@
#include <asm/cacheflush.h>
int vpelimit;
#include <asm/cacheflush.h>
int vpelimit;
@@
-228,7
+228,8
@@
+ tlbsiz = (((config1val >> 25) & 0x3f) + 1);
+ if (tlbsiz > 64)
+ tlbsiz = 64;
+ tlbsiz = (((config1val >> 25) & 0x3f) + 1);
+ if (tlbsiz > 64)
+ tlbsiz = 64;
-+ cpu_data[0].tlbsize = current_cpu_data.tlbsize = tlbsiz;
++ cpu_data[0].tlbsize = tlbsiz;
++ current_cpu_data.tlbsize = tlbsiz;
+ }
+
+ }
+ }
+
+ }
@@
-253,7
+254,7
@@
/*
* Dump new MIPS MT state for the core. Does not leave TCs halted.
/*
* Dump new MIPS MT state for the core. Does not leave TCs halted.
-@@ -78,18 +14
7
,18 @@ void mips_mt_regdump(unsigned long mvpct
+@@ -78,18 +14
8
,18 @@ void mips_mt_regdump(unsigned long mvpct
if ((read_tc_c0_tcbind() & TCBIND_CURVPE) == i) {
printk(" VPE %d\n", i);
printk(" VPEControl : %08lx\n",
if ((read_tc_c0_tcbind() & TCBIND_CURVPE) == i) {
printk(" VPE %d\n", i);
printk(" VPEControl : %08lx\n",
@@
-279,7
+280,7
@@
break; /* Next VPE */
}
}
break; /* Next VPE */
}
}
-@@ -287,6 +35
6
,9 @@ void mips_mt_set_cpuoptions(void)
+@@ -287,6 +35
7
,9 @@ void mips_mt_set_cpuoptions(void)
printk("Mapped %ld ITC cells starting at 0x%08x\n",
((itcblkgrn & 0x7fe00000) >> 20), itc_base);
}
printk("Mapped %ld ITC cells starting at 0x%08x\n",
((itcblkgrn & 0x7fe00000) >> 20), itc_base);
}
@@
-337,7
+338,7
@@
flush_icache_all();
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
flush_icache_all();
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
-@@ -7
7,6 +77
,58 @@ static struct kspd_notifications kspd_ev
+@@ -7
6,6 +76
,58 @@ static struct kspd_notifications kspd_ev
static int kspd_events_reqd;
#endif
static int kspd_events_reqd;
#endif
@@
-396,7
+397,7
@@
/* grab the likely amount of memory we will need. */
#ifdef CONFIG_MIPS_VPE_LOADER_TOM
#define P_SIZE (2 * 1024 * 1024)
/* grab the likely amount of memory we will need. */
#ifdef CONFIG_MIPS_VPE_LOADER_TOM
#define P_SIZE (2 * 1024 * 1024)
-@@ -26
9,6 +321
,13 @@ static void *alloc_progmem(unsigned long
+@@ -26
8,6 +320
,13 @@ static void *alloc_progmem(unsigned long
void *addr;
#ifdef CONFIG_MIPS_VPE_LOADER_TOM
void *addr;
#ifdef CONFIG_MIPS_VPE_LOADER_TOM
@@
-410,7
+411,7
@@
/*
* This means you must tell Linux to use less memory than you
* physically have, for example by passing a mem= boot argument.
/*
* This means you must tell Linux to use less memory than you
* physically have, for example by passing a mem= boot argument.
-@@ -74
7,6 +806
,12 @@ static int vpe_run(struct vpe * v)
+@@ -74
6,6 +805
,12 @@ static int vpe_run(struct vpe * v)
}
/* Write the address we want it to start running from in the TCPC register. */
}
/* Write the address we want it to start running from in the TCPC register. */
@@
-423,7
+424,7
@@
write_tc_c0_tcrestart((unsigned long)v->__start);
write_tc_c0_tccontext((unsigned long)0);
write_tc_c0_tcrestart((unsigned long)v->__start);
write_tc_c0_tccontext((unsigned long)0);
-@@ -7
60,6 +825
,20 @@ static int vpe_run(struct vpe * v)
+@@ -7
59,6 +824
,20 @@ static int vpe_run(struct vpe * v)
write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H);
write_tc_c0_tchalt(read_tc_c0_tchalt() & ~TCHALT_H);
@@
-444,7
+445,7
@@
/*
* The sde-kit passes 'memsize' to __start in $a3, so set something
* here... Or set $a3 to zero and define DFLT_STACK_SIZE and
/*
* The sde-kit passes 'memsize' to __start in $a3, so set something
* here... Or set $a3 to zero and define DFLT_STACK_SIZE and
-@@ -83
4,6 +913
,9 @@ static int find_vpe_symbols(struct vpe *
+@@ -83
3,6 +912
,9 @@ static int find_vpe_symbols(struct vpe *
if ( (v->__start == 0) || (v->shared_ptr == NULL))
return -1;
if ( (v->__start == 0) || (v->shared_ptr == NULL))
return -1;
@@
-454,7
+455,7
@@
return 0;
}
return 0;
}
-@@ -99
5,6 +1077
,15 @@ static int vpe_elfload(struct vpe * v)
+@@ -99
4,6 +1076
,15 @@ static int vpe_elfload(struct vpe * v)
(unsigned long)v->load_addr + v->len);
if ((find_vpe_symbols(v, sechdrs, symindex, strtab, &mod)) < 0) {
(unsigned long)v->load_addr + v->len);
if ((find_vpe_symbols(v, sechdrs, symindex, strtab, &mod)) < 0) {
@@
-470,7
+471,7
@@
if (v->__start == 0) {
printk(KERN_WARNING "VPE loader: program does not contain "
"a __start symbol\n");
if (v->__start == 0) {
printk(KERN_WARNING "VPE loader: program does not contain "
"a __start symbol\n");
-@@ -106
5,6 +1156
,9 @@ static int vpe_open(struct inode *inode,
+@@ -106
4,6 +1155
,9 @@ static int vpe_open(struct inode *inode,
struct vpe_notifications *not;
struct vpe *v;
int ret;
struct vpe_notifications *not;
struct vpe *v;
int ret;
@@
-480,7
+481,7
@@
if (minor != iminor(inode)) {
/* assume only 1 device at the moment. */
if (minor != iminor(inode)) {
/* assume only 1 device at the moment. */
-@@ -109
1,14 +1185,23
@@ static int vpe_open(struct inode *inode,
+@@ -109
0,6 +1184,12
@@ static int vpe_open(struct inode *inode,
cleanup_tc(get_tc(tclimit));
}
cleanup_tc(get_tc(tclimit));
}
@@
-492,11
+493,15
@@
+#else
/* this of-course trashes what was there before... */
v->pbuffer = vmalloc(P_SIZE);
+#else
/* this of-course trashes what was there before... */
v->pbuffer = vmalloc(P_SIZE);
+ if (!v->pbuffer) {
+@@ -1097,11 +1197,13 @@ static int vpe_open(struct inode *inode,
+ return -ENOMEM;
+ }
v->plen = P_SIZE;
+#endif
v->load_addr = NULL;
v->len = 0;
v->plen = P_SIZE;
+#endif
v->load_addr = NULL;
v->len = 0;
-
+-
+#if 0
v->uid = filp->f_cred->fsuid;
v->gid = filp->f_cred->fsgid;
+#if 0
v->uid = filp->f_cred->fsuid;
v->gid = filp->f_cred->fsgid;
@@
-504,7
+509,7
@@
#ifdef CONFIG_MIPS_APSP_KSPD
/* get kspd to tell us when a syscall_exit happens */
#ifdef CONFIG_MIPS_APSP_KSPD
/* get kspd to tell us when a syscall_exit happens */
-@@ -13
51,6 +1454
,133 @@ static void kspd_sp_exit( int sp_id)
+@@ -13
49,6 +1451
,133 @@ static void kspd_sp_exit( int sp_id)
cleanup_tc(get_tc(sp_id));
}
#endif
cleanup_tc(get_tc(sp_id));
}
#endif
@@
-638,7
+643,7
@@
static ssize_t store_kill(struct device *dev, struct device_attribute *attr,
const char *buf, size_t len)
static ssize_t store_kill(struct device *dev, struct device_attribute *attr,
const char *buf, size_t len)
-@@ -143
2,6 +1662
,18 @@ static int __init vpe_module_init(void)
+@@ -143
0,6 +1659
,18 @@ static int __init vpe_module_init(void)
printk("VPE loader: not a MIPS MT capable processor\n");
return -ENODEV;
}
printk("VPE loader: not a MIPS MT capable processor\n");
return -ENODEV;
}
@@
-657,7
+662,7
@@
if (vpelimit == 0) {
printk(KERN_WARNING "No VPEs reserved for AP/SP, not "
if (vpelimit == 0) {
printk(KERN_WARNING "No VPEs reserved for AP/SP, not "
-@@ -147
6,10 +1718
,12 @@ static int __init vpe_module_init(void)
+@@ -147
4,10 +1715
,12 @@ static int __init vpe_module_init(void)
mtflags = dmt();
vpflags = dvpe();
mtflags = dmt();
vpflags = dvpe();
@@
-671,7
+676,7
@@
val = read_c0_mvpconf0();
hw_tcs = (val & MVPCONF0_PTC) + 1;
val = read_c0_mvpconf0();
hw_tcs = (val & MVPCONF0_PTC) + 1;
-@@ -14
91,6 +1735
,7 @@ static int __init vpe_module_init(void)
+@@ -14
89,6 +1732
,7 @@ static int __init vpe_module_init(void)
* reschedule send IPIs or similar we might hang.
*/
clear_c0_mvpcontrol(MVPCONTROL_VPC);
* reschedule send IPIs or similar we might hang.
*/
clear_c0_mvpcontrol(MVPCONTROL_VPC);
@@
-679,7
+684,7
@@
evpe(vpflags);
emt(mtflags);
local_irq_restore(flags);
evpe(vpflags);
emt(mtflags);
local_irq_restore(flags);
-@@ -151
6,6 +1761
,7 @@ static int __init vpe_module_init(void)
+@@ -151
4,6 +1758
,7 @@ static int __init vpe_module_init(void)
}
v->ntcs = hw_tcs - tclimit;
}
v->ntcs = hw_tcs - tclimit;
@@
-687,7
+692,7
@@
/* add the tc to the list of this vpe's tc's. */
list_add(&t->tc, &v->tc);
/* add the tc to the list of this vpe's tc's. */
list_add(&t->tc, &v->tc);
-@@ -158
4,6 +1830
,7 @@ static int __init vpe_module_init(void)
+@@ -158
2,6 +1827
,7 @@ static int __init vpe_module_init(void)
out_reenable:
/* release config state */
clear_c0_mvpcontrol(MVPCONTROL_VPC);
out_reenable:
/* release config state */
clear_c0_mvpcontrol(MVPCONTROL_VPC);
@@
-835,7
+840,7
@@
+ * Write to perf counter registers based on text input
+ */
+
+ * Write to perf counter registers based on text input
+ */
+
-+#define TXTBUFSZ 10
24
++#define TXTBUFSZ 10
0
+
+static int proc_write_mtsched(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+
+static int proc_write_mtsched(struct file *file, const char *buffer,
+ unsigned long count, void *data)
@@
-1048,7
+1053,7
@@
+ * Write to perf counter registers based on text input
+ */
+
+ * Write to perf counter registers based on text input
+ */
+
-+#define TXTBUFSZ 10
24
++#define TXTBUFSZ 10
0
+
+static int proc_write_perf(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+
+static int proc_write_perf(struct file *file, const char *buffer,
+ unsigned long count, void *data)
This page took
0.031852 seconds
and
4
git commands to generate.