* Fix a CPU definition for Cobalt
@ 2006-01-19 19:24 Martin Michlmayr
2006-01-19 21:04 ` Ralf Baechle
0 siblings, 1 reply; 8+ messages in thread
From: Martin Michlmayr @ 2006-01-19 19:24 UTC (permalink / raw)
To: Ralf Baechle; +Cc: linux-mips
[mips] Fix a CPU definition for Cobalt
If cpu_icache_snoops_remote_store is not set, Cobalt will crash
immediately when starting the kernel.
Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
--- a/include/asm-mips/mach-cobalt/cpu-feature-overrides.h~ 2006-01-19 19:21:35.000000000 +0000
+++ b/include/asm-mips/mach-cobalt/cpu-feature-overrides.h 2006-01-19 19:21:41.000000000 +0000
@@ -45,7 +45,7 @@
#define cpu_has_smartmips 0
#define cpu_has_vtag_icache 0
#define cpu_has_ic_fills_f_dc 0
-#define cpu_icache_snoops_remote_store 0
+#define cpu_icache_snoops_remote_store 1
#define cpu_has_dsp 0
#define cpu_has_mips32r1 0
--
Martin Michlmayr
http://www.cyrius.com/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Fix a CPU definition for Cobalt
2006-01-19 19:24 Fix a CPU definition for Cobalt Martin Michlmayr
@ 2006-01-19 21:04 ` Ralf Baechle
2006-01-19 21:45 ` Martin Michlmayr
0 siblings, 1 reply; 8+ messages in thread
From: Ralf Baechle @ 2006-01-19 21:04 UTC (permalink / raw)
To: Martin Michlmayr; +Cc: linux-mips
On Thu, Jan 19, 2006 at 07:24:14PM +0000, Martin Michlmayr wrote:
> If cpu_icache_snoops_remote_store is not set, Cobalt will crash
> immediately when starting the kernel.
That's papering over the actual bug. The CPU has no scache, so the
scache flushing functions aren't getting initialized and the NULL
pointer is eventually called as a function. So I suggest this below.
Can you test it?
Ralf
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 422b55f..24a59a9 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -235,7 +235,9 @@ static inline void r4k_blast_scache_page
{
unsigned long sc_lsize = cpu_scache_line_size();
- if (sc_lsize == 16)
+ if (scache_size == 0)
+ r4k_blast_scache_page = no_sc_noop;
+ else if (sc_lsize == 16)
r4k_blast_scache_page = blast_scache16_page;
else if (sc_lsize == 32)
r4k_blast_scache_page = blast_scache32_page;
@@ -251,7 +253,9 @@ static inline void r4k_blast_scache_page
{
unsigned long sc_lsize = cpu_scache_line_size();
- if (sc_lsize == 16)
+ if (scache_size == 0)
+ r4k_blast_scache_page = no_sc_noop;
+ else if (sc_lsize == 16)
r4k_blast_scache_page_indexed = blast_scache16_page_indexed;
else if (sc_lsize == 32)
r4k_blast_scache_page_indexed = blast_scache32_page_indexed;
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: Fix a CPU definition for Cobalt
2006-01-19 21:04 ` Ralf Baechle
@ 2006-01-19 21:45 ` Martin Michlmayr
2006-01-20 15:01 ` Ralf Baechle
2006-02-17 19:14 ` Martin Michlmayr
0 siblings, 2 replies; 8+ messages in thread
From: Martin Michlmayr @ 2006-01-19 21:45 UTC (permalink / raw)
To: Ralf Baechle; +Cc: linux-mips
* Ralf Baechle <ralf@linux-mips.org> [2006-01-19 21:04]:
> > If cpu_icache_snoops_remote_store is not set, Cobalt will crash
> > immediately when starting the kernel.
> That's papering over the actual bug. The CPU has no scache, so the
Sorry, I just used trial and error to find out which option caused the
problem and changed it...
> scache flushing functions aren't getting initialized and the NULL
> pointer is eventually called as a function. So I suggest this below.
> Can you test it?
Doesn't work.
--
Martin Michlmayr
http://www.cyrius.com/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Fix a CPU definition for Cobalt
2006-01-19 21:45 ` Martin Michlmayr
@ 2006-01-20 15:01 ` Ralf Baechle
2006-01-20 15:10 ` Martin Michlmayr
2006-02-17 19:14 ` Martin Michlmayr
1 sibling, 1 reply; 8+ messages in thread
From: Ralf Baechle @ 2006-01-20 15:01 UTC (permalink / raw)
To: Martin Michlmayr; +Cc: linux-mips
On Thu, Jan 19, 2006 at 09:45:46PM +0000, Martin Michlmayr wrote:
> * Ralf Baechle <ralf@linux-mips.org> [2006-01-19 21:04]:
> > > If cpu_icache_snoops_remote_store is not set, Cobalt will crash
> > > immediately when starting the kernel.
> > That's papering over the actual bug. The CPU has no scache, so the
>
> Sorry, I just used trial and error to find out which option caused the
> problem and changed it...
>
> > scache flushing functions aren't getting initialized and the NULL
> > pointer is eventually called as a function. So I suggest this below.
> > Can you test it?
>
> Doesn't work.
Indeed - for quite obvioius reasons even. I hope I now covered all cases
in the new patch below.
Ralf
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 4ca93ff..d5b175b 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -251,6 +251,7 @@ config LASAT
select MIPS_GT64120
select MIPS_NILE4
select R5000_CPU_SCACHE
+ select SERIO_I8042
select SYS_HAS_CPU_R5000
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
@@ -438,6 +439,7 @@ config MIPS_XXS1500
config PNX8550_V2PCI
bool "Support for Philips PNX8550 based Viper2-PCI board"
select PNX8550
+ select SERIO_I8042
select SYS_SUPPORTS_LITTLE_ENDIAN
config PNX8550_JBS
@@ -550,6 +552,7 @@ config SGI_IP22
select HW_HAS_EISA
select IP22_CPU_SCACHE
select IRQ_CPU
+ select SERIO_I8042
select SWAP_IO_SPACE
select SYS_HAS_CPU_R4X00
select SYS_HAS_CPU_R5000
@@ -713,6 +716,7 @@ config SNI_RM200_PCI
select HW_HAS_PCI
select I8259
select ISA
+ select SERIO_I8042
select SYS_HAS_CPU_R4X00
select SYS_SUPPORTS_32BIT_KERNEL
select SYS_SUPPORTS_64BIT_KERNEL if EXPERIMENTAL
@@ -762,6 +766,7 @@ config TOSHIBA_RBTX4938
select HW_HAS_PCI
select I8259
select ISA
+ select SERIO_I8042
select SWAP_IO_SPACE
select SYS_HAS_CPU_TX49XX
select SYS_SUPPORTS_32BIT_KERNEL
diff --git a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig
index 85e08aa..abfe9c0 100644
--- a/arch/mips/configs/atlas_defconfig
+++ b/arch/mips/configs/atlas_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:26 2006
+# Fri Jan 20 14:16:02 2006
#
CONFIG_MIPS=y
@@ -903,7 +903,6 @@ CONFIG_MOUSE_SERIAL=m
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index 75db2a9..86de8fc 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:27 2006
+# Fri Jan 20 14:16:03 2006
#
CONFIG_MIPS=y
@@ -535,7 +535,6 @@ CONFIG_NET_SB1250_MAC=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig
index adea137..0700da4 100644
--- a/arch/mips/configs/cobalt_defconfig
+++ b/arch/mips/configs/cobalt_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:27 2006
+# Fri Jan 20 14:16:05 2006
#
CONFIG_MIPS=y
@@ -530,7 +530,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index 75c3e35..dbc91ef 100644
--- a/arch/mips/configs/db1000_defconfig
+++ b/arch/mips/configs/db1000_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:27 2006
+# Fri Jan 20 14:16:06 2006
#
CONFIG_MIPS=y
@@ -604,7 +604,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=m
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig
index 89ac1aa..95326df 100644
--- a/arch/mips/configs/db1100_defconfig
+++ b/arch/mips/configs/db1100_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:27 2006
+# Fri Jan 20 14:16:07 2006
#
CONFIG_MIPS=y
@@ -580,7 +580,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
CONFIG_SERIO_LIBPS2=m
CONFIG_SERIO_RAW=m
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig
index e7cd15e..6ae4bdf 100644
--- a/arch/mips/configs/db1200_defconfig
+++ b/arch/mips/configs/db1200_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:28 2006
+# Fri Jan 20 14:16:08 2006
#
CONFIG_MIPS=y
@@ -645,7 +645,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=y
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig
index 03f1364..52551e9 100644
--- a/arch/mips/configs/db1500_defconfig
+++ b/arch/mips/configs/db1500_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:28 2006
+# Fri Jan 20 14:16:10 2006
#
CONFIG_MIPS=y
@@ -671,7 +671,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig
index de88f39..016530d 100644
--- a/arch/mips/configs/db1550_defconfig
+++ b/arch/mips/configs/db1550_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:28 2006
+# Fri Jan 20 14:16:11 2006
#
CONFIG_MIPS=y
@@ -711,7 +711,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/ddb5476_defconfig b/arch/mips/configs/ddb5476_defconfig
index d885993..0c85a90 100644
--- a/arch/mips/configs/ddb5476_defconfig
+++ b/arch/mips/configs/ddb5476_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:28 2006
+# Fri Jan 20 14:16:12 2006
#
CONFIG_MIPS=y
@@ -546,7 +546,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig
index 108f8e2..bca51f7 100644
--- a/arch/mips/configs/ddb5477_defconfig
+++ b/arch/mips/configs/ddb5477_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:29 2006
+# Fri Jan 20 14:16:13 2006
#
CONFIG_MIPS=y
@@ -531,7 +531,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig
index f3db69e..07372d6 100644
--- a/arch/mips/configs/e55_defconfig
+++ b/arch/mips/configs/e55_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:29 2006
+# Fri Jan 20 14:16:15 2006
#
CONFIG_MIPS=y
@@ -511,7 +511,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=m
diff --git a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig
index 20e1316..048e1ce 100644
--- a/arch/mips/configs/ev64120_defconfig
+++ b/arch/mips/configs/ev64120_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:29 2006
+# Fri Jan 20 14:16:17 2006
#
CONFIG_MIPS=y
@@ -525,7 +525,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig
index 159d5fe..edb0876 100644
--- a/arch/mips/configs/ev96100_defconfig
+++ b/arch/mips/configs/ev96100_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:29 2006
+# Fri Jan 20 14:16:18 2006
#
CONFIG_MIPS=y
@@ -478,7 +478,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=m
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index 90ec84f..ebb602e 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:30 2006
+# Fri Jan 20 14:16:20 2006
#
CONFIG_MIPS=y
@@ -633,7 +633,6 @@ CONFIG_SGI_IOC3_ETH_HW_TX_CSUM=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=m
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index 23dcecc..391695d 100644
--- a/arch/mips/configs/ip32_defconfig
+++ b/arch/mips/configs/ip32_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Thu Jan 19 14:38:42 2006
+# Fri Jan 20 14:16:21 2006
#
CONFIG_MIPS=y
@@ -591,7 +591,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_MACEPS2 is not set
diff --git a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig
index 128a3b1..dec0e18 100644
--- a/arch/mips/configs/it8172_defconfig
+++ b/arch/mips/configs/it8172_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:30 2006
+# Fri Jan 20 14:16:22 2006
#
CONFIG_MIPS=y
@@ -571,7 +571,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=m
diff --git a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig
index 09709b0..1faf00b 100644
--- a/arch/mips/configs/ivr_defconfig
+++ b/arch/mips/configs/ivr_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:31 2006
+# Fri Jan 20 14:16:24 2006
#
CONFIG_MIPS=y
@@ -537,7 +537,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig
index 9b6d676..4241657 100644
--- a/arch/mips/configs/jmr3927_defconfig
+++ b/arch/mips/configs/jmr3927_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:31 2006
+# Fri Jan 20 14:16:28 2006
#
CONFIG_MIPS=y
@@ -508,7 +508,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig
index 86a7f50..2c6e0c3 100644
--- a/arch/mips/configs/malta_defconfig
+++ b/arch/mips/configs/malta_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:31 2006
+# Fri Jan 20 14:16:31 2006
#
CONFIG_MIPS=y
@@ -938,7 +938,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig
index 7c1872b..3db9a72 100644
--- a/arch/mips/configs/mipssim_defconfig
+++ b/arch/mips/configs/mipssim_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:32 2006
+# Fri Jan 20 14:16:32 2006
#
CONFIG_MIPS=y
@@ -509,7 +509,6 @@ CONFIG_INPUT=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
# CONFIG_SERIO_RAW is not set
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig
index 804aeda..13afef3 100644
--- a/arch/mips/configs/mpc30x_defconfig
+++ b/arch/mips/configs/mpc30x_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:32 2006
+# Fri Jan 20 14:16:33 2006
#
CONFIG_MIPS=y
@@ -584,7 +584,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/ocelot_3_defconfig b/arch/mips/configs/ocelot_3_defconfig
index d3cc3dc..dc43187 100644
--- a/arch/mips/configs/ocelot_3_defconfig
+++ b/arch/mips/configs/ocelot_3_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:32 2006
+# Fri Jan 20 14:16:34 2006
#
CONFIG_MIPS=y
@@ -650,7 +650,6 @@ CONFIG_INPUT=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig
index bbb5316..fbb63d9 100644
--- a/arch/mips/configs/ocelot_c_defconfig
+++ b/arch/mips/configs/ocelot_c_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:32 2006
+# Fri Jan 20 14:16:35 2006
#
CONFIG_MIPS=y
@@ -518,7 +518,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig
index 2d1c73e..791a1fe 100644
--- a/arch/mips/configs/ocelot_defconfig
+++ b/arch/mips/configs/ocelot_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:33 2006
+# Fri Jan 20 14:16:37 2006
#
CONFIG_MIPS=y
@@ -474,7 +474,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=y
diff --git a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig
index 062e0e6..5e636cf 100644
--- a/arch/mips/configs/ocelot_g_defconfig
+++ b/arch/mips/configs/ocelot_g_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:33 2006
+# Fri Jan 20 14:16:38 2006
#
CONFIG_MIPS=y
@@ -521,7 +521,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig
index f8e9bbf..075541d 100644
--- a/arch/mips/configs/pb1100_defconfig
+++ b/arch/mips/configs/pb1100_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:33 2006
+# Fri Jan 20 14:16:39 2006
#
CONFIG_MIPS=y
@@ -598,7 +598,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=m
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig
index b05c510..4e0ea12 100644
--- a/arch/mips/configs/pb1500_defconfig
+++ b/arch/mips/configs/pb1500_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:33 2006
+# Fri Jan 20 14:16:40 2006
#
CONFIG_MIPS=y
@@ -707,7 +707,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
index dd4a635..8753202 100644
--- a/arch/mips/configs/pb1550_defconfig
+++ b/arch/mips/configs/pb1550_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:34 2006
+# Fri Jan 20 14:16:41 2006
#
CONFIG_MIPS=y
@@ -699,7 +699,6 @@ CONFIG_INPUT_EVDEV=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig
index dcd88a5..af8a7c2 100644
--- a/arch/mips/configs/pnx8550-jbs_defconfig
+++ b/arch/mips/configs/pnx8550-jbs_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:34 2006
+# Fri Jan 20 14:16:43 2006
#
CONFIG_MIPS=y
@@ -643,7 +643,6 @@ CONFIG_INPUT=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index bc79f49..7e0d3b8 100644
--- a/arch/mips/configs/sb1250-swarm_defconfig
+++ b/arch/mips/configs/sb1250-swarm_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:35 2006
+# Fri Jan 20 14:16:48 2006
#
CONFIG_MIPS=y
@@ -549,7 +549,6 @@ CONFIG_NET_SB1250_MAC=y
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_PCIPS2 is not set
# CONFIG_SERIO_LIBPS2 is not set
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig
index 74eb1de..a081c5f 100644
--- a/arch/mips/configs/workpad_defconfig
+++ b/arch/mips/configs/workpad_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
# Linux kernel version:
-# Wed Jan 11 17:48:36 2006
+# Fri Jan 20 14:16:53 2006
#
CONFIG_MIPS=y
@@ -536,7 +536,6 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# Hardware I/O ports
#
CONFIG_SERIO=y
-# CONFIG_SERIO_I8042 is not set
CONFIG_SERIO_SERPORT=y
# CONFIG_SERIO_LIBPS2 is not set
CONFIG_SERIO_RAW=m
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig
index 98acf17..109913f 100644
--- a/drivers/input/serio/Kconfig
+++ b/drivers/input/serio/Kconfig
@@ -21,7 +21,7 @@ if SERIO
config SERIO_I8042
tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
default y
- depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K
+ depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K && !MIPS
---help---
i8042 is the chip over which the standard AT keyboard and PS/2
mouse are connected to the computer. If you use these devices,
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: Fix a CPU definition for Cobalt
2006-01-20 15:01 ` Ralf Baechle
@ 2006-01-20 15:10 ` Martin Michlmayr
2006-01-20 15:19 ` Ralf Baechle
0 siblings, 1 reply; 8+ messages in thread
From: Martin Michlmayr @ 2006-01-20 15:10 UTC (permalink / raw)
To: Ralf Baechle; +Cc: linux-mips
* Ralf Baechle <ralf@linux-mips.org> [2006-01-20 16:01]:
> > > pointer is eventually called as a function. So I suggest this below.
> > > Can you test it?
> > Doesn't work.
> Indeed - for quite obvioius reasons even. I hope I now covered all cases
> in the new patch below.
You attached the SERIO patch. ;-)
--
Martin Michlmayr
http://www.cyrius.com/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Fix a CPU definition for Cobalt
2006-01-20 15:10 ` Martin Michlmayr
@ 2006-01-20 15:19 ` Ralf Baechle
2006-01-20 16:00 ` Martin Michlmayr
0 siblings, 1 reply; 8+ messages in thread
From: Ralf Baechle @ 2006-01-20 15:19 UTC (permalink / raw)
To: Martin Michlmayr; +Cc: linux-mips
On Fri, Jan 20, 2006 at 03:10:05PM +0000, Martin Michlmayr wrote:
> * Ralf Baechle <ralf@linux-mips.org> [2006-01-20 16:01]:
> > > > pointer is eventually called as a function. So I suggest this below.
> > > > Can you test it?
> > > Doesn't work.
> > Indeed - for quite obvioius reasons even. I hope I now covered all cases
> > in the new patch below.
>
> You attached the SERIO patch. ;-)
Just checking your attention ;-)
Ralf
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 422b55f..614dceb 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -235,7 +235,9 @@ static inline void r4k_blast_scache_page
{
unsigned long sc_lsize = cpu_scache_line_size();
- if (sc_lsize == 16)
+ if (scache_size == 0)
+ r4k_blast_scache_page = no_sc_noop;
+ else if (sc_lsize == 16)
r4k_blast_scache_page = blast_scache16_page;
else if (sc_lsize == 32)
r4k_blast_scache_page = blast_scache32_page;
@@ -251,7 +253,9 @@ static inline void r4k_blast_scache_page
{
unsigned long sc_lsize = cpu_scache_line_size();
- if (sc_lsize == 16)
+ if (scache_size == 0)
+ r4k_blast_scache_page = no_sc_noop;
+ else if (sc_lsize == 16)
r4k_blast_scache_page_indexed = blast_scache16_page_indexed;
else if (sc_lsize == 32)
r4k_blast_scache_page_indexed = blast_scache32_page_indexed;
@@ -495,7 +499,7 @@ static inline void local_r4k_flush_icach
}
}
- if (!cpu_icache_snoops_remote_store) {
+ if (!cpu_icache_snoops_remote_store && scache_size) {
if (end - start > scache_size) {
r4k_blast_scache();
} else {
@@ -728,7 +732,7 @@ static void local_r4k_flush_cache_sigtra
R4600_HIT_CACHEOP_WAR_IMPL;
protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
- if (!cpu_icache_snoops_remote_store)
+ if (!cpu_icache_snoops_remote_store && scache_size)
protected_writeback_scache_line(addr & ~(sc_lsize - 1));
protected_flush_icache_line(addr & ~(ic_lsize - 1));
if (MIPS4K_ICACHE_REFILL_WAR) {
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: Fix a CPU definition for Cobalt
2006-01-20 15:19 ` Ralf Baechle
@ 2006-01-20 16:00 ` Martin Michlmayr
0 siblings, 0 replies; 8+ messages in thread
From: Martin Michlmayr @ 2006-01-20 16:00 UTC (permalink / raw)
To: Ralf Baechle; +Cc: linux-mips
* Ralf Baechle <ralf@linux-mips.org> [2006-01-20 16:19]:
> > You attached the SERIO patch. ;-)
> Just checking your attention ;-)
This one gives me a really interesting set of error messages:
> execute console=ttyS0,{console-speed} root=/dev/hda2
elf64: 00080000 - 0039b01f (ffffffff.80348000) (ffffffff.80000000)
elf64: ffffffff.80080000 (80080000) 3084422t + 171930t
net: interface down
Linux version 2.6.15 (tbm@deprecation) (gcc version 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)) #8 Fri Jan 20 15:57:27 GMT 2006
CPU revision is: 000028a0
FPU revision is: 000028a0
Cobalt board ID: 5
Determined physical RAM map:
memory: 0000000008000000 @ 0000000000000000 (usable)
Built 1 zonelists
Kernel command line: console=ttyS0,115200 root=/dev/hda2
Primary instruction cache 32kB, physically tagged, 2-way, linesize 32 bytes.
Primary data cache 32kB, 2-way, linesize 32 bytes.
Synthesized TLB refill handler (32 instructions).
Synthesized TLB load handler fastpath (46 instructions).
Synthesized TLB store handler fastpath (46 instructions).
Synthesized TLB modify handler fastpath (45 instructions).
PID hash table entries: 1024 (order: 10, 32768 bytes)
Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Memory: 125012k/131072k available (2265k kernel code, 5912k reserved, 578k data, 168k init, 0k highmem)
Mount-cache hash table entries: 256
Checking for 'wait' instruction... available.
Checking for the multiply/shift bug... no.
Checking for the daddi bug... no.
Checking for the daddiu bug... no.
NET: Registered protocol family 16
usbcore: registered new driver usbfs
usbcore: registered new driver hub
Galileo: fixed bridge class
Galileo: revision 17
Initializing Cryptographic API
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Activating ISA DMA hang workarounds.
rtc: Digital UNIX epoch (1952) detected
Real Time Clock Driver v1.12a
Cobalt LCD Driver v2.10
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
ÿserial8250: ttyS0 at I/O 0xc800000 (irq = 21) is a ST16650V2
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
VP_IDE: IDE controller at PCI slot 0000:00:09.1
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
VP_IDE: VIA vt82c586a (rev 27) IDE UDMA33 controller on pci0000:00:09.1
ide0: BM-DMA at 0x1460-0x1467, BIOS settings: hda:pio, hdb:pio
ide1: BM-DMA at 0x1468-0x146f, BIOS settings: hdc:pio, hdd:pio
hda: QUANTUM FIREBALLlct08 04, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: max request size: 128KiB
hda: 8421840 sectors (4311 MB) w/418KiB Cache, CHS=8912/15/63
hda: cache flushes not supported
hda: hda1 hda2 hda3 < hda5 hda6 >
usbmon: debugfs is not available
NET: Registered protocol family 2
IP route cache hash table entries: 2048 (order: 2, 16384 bytes)
TCP established hash table entries: 8192 (order: 4, 65536 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
EXT3-fs: INFO: recovery required on readonly filesystem.
EXT3-fs: write access will be enabled during recovery.
kjournald starting. Commit interval 5 seconds
EXT3-fs: recovery complete.
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 168k freed
modprobe: FATAL: Could not load /lib/modules/2.6.15/modules.dep: No such file or directory
modprobe: FATAL: Could not load /lib/modules/2.6.15/modules.dep: No such file or directory
INIT: version 2.86 booting
CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == 0000000000000000, ra == ffffffff800a36dc
Oops[#1]:
Cpu 0
$ 0 : 0000000000000000 ffffffffb00064e0 ffffffff80370000 0000000000000000
$ 4 : ffffffff80005000 0000000000008000 ffffffff80006000 0000000000000001
$ 8 : 0000000000004000 0000000000008000 ffffffff80370000 ffffffff80370000
$12 : ffffffff80370000 ffffffff80370000 ffffffff80094e80 0000000000000000
$16 : ffffffff80005000 0000000000000004 000000007f885ec8 98000000011a9668
$20 : 980000000797a348 980000000797d428 0000000007918613 9800000000363620
$24 : 0000000000000000 ffffffff80370000
$28 : 9800000007970000 9800000007973cc0 ffffffff80380000 ffffffff800a36dc
Hi : 0000000000016c77
Lo : 000000000000797d
epc : 0000000000000000 _stext+0x7ff7fc00/0x40 Not tainted
ra : ffffffff800a36dc r4k_flush_cache_page+0x13c/0x208
Status: b00064e3 KX SX UX KERNEL EXL IE
Cause : 00808008
BadVA : 0000000000000000
PrId : 000028a0
Modules linked in:
Process rcS (pid: 600, threadinfo=9800000007970000, task=980000000796f848)
Stack : 980000000797a348 000000007f885ec8 980000000798b000 98000000011a7d40
ffffffff800fc748 ffffffff80374400 980000000797cfe0 ffffffff900064e1
6800000000000000 0000000007918613 980000000797d428 000000007f885ec8
980000000797cfe0 980000000797a348 9800000000363620 6db6db6db6db6db7
0000000000000001 ffffffff800fce88 0000000000000002 00000000100189c8
000000000045c000 0000000000000001 0000000000000000 0000000000000000
0000000000000428 ffffffff80380000 9800000007973eb0 980000000797a348
000000007f885ec8 9800000000363678 980000000796f848 9800000000363620
0000000000030000 0000000000000001 0000000000000000 ffffffff8009f640
0003000207973eb0 0000000000000012 9800000007973df0 9800000007973df0
...
Call Trace:
[<ffffffff800fc748>] do_wp_page+0x310/0x740
[<ffffffff800fce88>] __handle_mm_fault+0x310/0xe50
[<ffffffff8009f640>] do_page_fault+0x2a0/0x470
[<ffffffff800c8b14>] do_sigaction+0x1dc/0x258
[<ffffffff8010ef8c>] filp_close+0x64/0xc0
[<ffffffff8010ef80>] filp_close+0x58/0xc0
[<ffffffff800a0228>] tlb_do_page_fault_1+0x110/0x118
[<ffffffff800829b8>] handle_cpu_int+0x20/0x28
[<ffffffff80094e80>] sys32_rt_sigprocmask+0x0/0x180
Code: (Bad address in epc)
CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == 0000000000000000, ra == ffffffff800a36dc
Oops[#2]:
Cpu 0
$ 0 : 0000000000000000 ffffffffb00064e0 ffffffff80370000 0000000000000000
$ 4 : ffffffff80005000 0000000000008000 ffffffff80006000 0000000000000001
$ 8 : 0000000000004000 0000000000008000 0000000007918613 ffffffff80370000
$12 : ffffffff80370000 ffffffff80370000 ffffffff80094e80 0000000000000000
$16 : ffffffff80005000 0000000000000004 000000007f885ca8 9800000007987428
$20 : 980000000797a348 980000000797a348 0000000007918613 9800000000363060
$24 : 0000000000000000 0000000000416a00
$28 : 9800000007970000 9800000007973cc0 0000000000000001 ffffffff800a36dc
Hi : 0000000000016c95
Lo : 0000000000007987
epc : 0000000000000000 _stext+0x7ff7fc00/0x40 Not tainted
ra : ffffffff800a36dc r4k_flush_cache_page+0x13c/0x208
Status: b00064e3 KX SX UX KERNEL EXL IE
Cause : 00808008
BadVA : 0000000000000000
PrId : 000028a0
Modules linked in:
Process rcS (pid: 602, threadinfo=9800000007970000, task=980000000796f848)
Stack : 980000000797a348 000000007f885ca8 0000000000000001 98000000011a7d40
ffffffff800fc908 ffffffff800fc8dc 980000000798ffe0 fffffffffffffdee
6800000000000000 0000000007918613 9800000007987428 000000007f885ca8
980000000798ffe0 980000000797a348 9800000000363060 6db6db6db6db6db7
0000000000000001 ffffffff800fce88 0000000000000002 ffffffff00000001
0000000000416000 0000000000000000 0000000000000000 0000000000000000
0000000000000428 ffffffff80000010 9800000007973eb0 980000000797a348
000000007f885ca8 98000000003630b8 980000000796f848 9800000000363060
0000000000030000 0000000000000001 0000000000000000 ffffffff8009f640
00030002800d6a80 9800000007973de8 9800000007973de8 ffffffff80100de4
...
Call Trace:
[<ffffffff800fc908>] do_wp_page+0x4d0/0x740
[<ffffffff800fc8dc>] do_wp_page+0x4a4/0x740
[<ffffffff800fce88>] __handle_mm_fault+0x310/0xe50
[<ffffffff8009f640>] do_page_fault+0x2a0/0x470
[<ffffffff80100de4>] do_brk+0x1dc/0x358
[<ffffffff800a0228>] tlb_do_page_fault_1+0x110/0x118
[<ffffffff800829b8>] handle_cpu_int+0x20/0x28
[<ffffffff80094e80>] sys32_rt_sigprocmask+0x0/0x180
Code: (Bad address in epc)
/etc/init.d/rcS: line 59: 602 Segmentation fault ( trap - INT QUIT TSTP; set start; . $i )
CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == 0000000000000000, ra == ffffffff800a36dc
Oops[#3]:
Cpu 0
$ 0 : 0000000000000000 ffffffffb00064e0 ffffffff80370000 0000000000000000
$ 4 : ffffffff80005000 0000000000008000 ffffffff80006000 0000000000000001
$ 8 : 0000000000004000 0000000000008000 0000000007918613 ffffffff80370000
$12 : ffffffff80370000 ffffffff80370000 ffffffff80094e80 0000000000000000
$16 : ffffffff80005000 0000000000000004 000000007f885ec8 9800000007990428
$20 : 9800000007f28208 9800000007f28208 0000000007918613 9800000000363060
$24 : 0000000000000000 0000000000416a00
$28 : 9800000007970000 9800000007973cc0 0000000000000001 ffffffff800a36dc
Hi : 0000000000016cb0
Lo : 0000000000007990
epc : 0000000000000000 _stext+0x7ff7fc00/0x40 Not tainted
ra : ffffffff800a36dc r4k_flush_cache_page+0x13c/0x208
Status: b00064e3 KX SX UX KERNEL EXL IE
Cause : 00808008
BadVA : 0000000000000000
PrId : 000028a0
Modules linked in:
Process rcS (pid: 603, threadinfo=9800000007970000, task=980000000796f848)
Stack : 9800000007f28208 000000007f885ec8 0000000000000001 98000000011a7d40
ffffffff800fc908 ffffffff800fc8dc 980000000797efe0 00000000000168ea
6800000000000000 0000000007918613 9800000007990428 000000007f885ec8
980000000797efe0 9800000007f28208 9800000000363060 6db6db6db6db6db7
0000000000000001 ffffffff800fce88 9800000000000002 9800000000363060
000000000045c000 0000000000000000 0000000000000000 0000000000000000
0000000000000428 ffffffff80000010 9800000007973eb0 9800000007f28208
000000007f885ec8 98000000003630b8 980000000796f848 9800000000363060
0000000000030000 0000000000000001 0000000000000000 ffffffff8009f640
00030002800d6a80 9800000007973de8 9800000007973de8 ffffffff80100de4
...
Call Trace:
[<ffffffff800fc908>] do_wp_page+0x4d0/0x740
[<ffffffff800fc8dc>] do_wp_page+0x4a4/0x740
[<ffffffff800fce88>] __handle_mm_fault+0x310/0xe50
[<ffffffff8009f640>] do_page_fault+0x2a0/0x470
[<ffffffff80100de4>] do_brk+0x1dc/0x358
[<ffffffff800c8b14>] do_sigaction+0x1dc/0x258
[<ffffffff8010ef8c>] filp_close+0x64/0xc0
[<ffffffff8010ef80>] filp_close+0x58/0xc0
[<ffffffff800a0228>] tlb_do_page_fault_1+0x110/0x118
[<ffffffff800829b8>] handle_cpu_int+0x20/0x28
[<ffffffff80094e80>] sys32_rt_sigprocmask+0x0/0x180
Code: (Bad address in epc)
CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == 0000000000000000, ra == ffffffff800a36dc
Oops[#4]:
Cpu 0
$ 0 : 0000000000000000 ffffffffb00064e0 ffffffff80370000 0000000000000000
$ 4 : ffffffff80003000 0000000000008000 ffffffff80004000 0000000000000001
$ 8 : 0000000000004000 0000000000008000 ffffffff80370000 ffffffff80370000
$12 : ffffffff80370000 ffffffff80370000 ffffffff80094e80 0000000000000000
$16 : ffffffff80003000 0000000000000004 000000007fe13ff8 98000000011aaaf8
$20 : 98000000079d8818 98000000079da098 00000000079b9613 9800000000363620
$24 : 0000000000000000 ffffffff80370000
$28 : 98000000079d0000 98000000079d3cc0 ffffffff80380000 ffffffff800a36dc
Hi : 0000000000016d8e
Lo : 00000000000079da
epc : 0000000000000000 _stext+0x7ff7fc00/0x40 Not tainted
ra : ffffffff800a36dc r4k_flush_cache_page+0x13c/0x208
Status: b00064e3 KX SX UX KERNEL EXL IE
Cause : 00808008
BadVA : 0000000000000000
PrId : 000028a0
Modules linked in:
Process S02mountvirtfs (pid: 606, threadinfo=98000000079d0000, task=980000000796f260)
Stack : 98000000079d8818 000000007fe13ff8 98000000079e9000 98000000011aa078
ffffffff800fc748 ffffffff800a1f48 98000000079d9ff8 ffffffff8037da90
6800000000000000 00000000079b9613 98000000079da098 000000007fe13ff8
98000000079d9ff8 98000000079d8818 9800000000363620 6db6db6db6db6db7
0000000000000001 ffffffff800fce88 0000000000000002 ffffffff800c1110
000000000041a000 98000000079d3d60 0000000000000000 0000000000000000
0000000000000098 ffffffff80380000 98000000079d3eb0 98000000079d8818
000000007fe13ff8 9800000000363678 980000000796f260 9800000000363620
0000000000030000 0000000000000001 000000007fe14008 ffffffff8009f640
00030002079d3eb0 0000000000000012 98000000079d3df0 98000000079d3df0
...
Call Trace:
[<ffffffff800fc748>] do_wp_page+0x310/0x740
[<ffffffff800a1f48>] r4k_blast_dcache_page_dc32+0x88/0xa0
[<ffffffff800fce88>] __handle_mm_fault+0x310/0xe50
[<ffffffff800c1110>] do_softirq+0xa0/0xd0
[<ffffffff8009f640>] do_page_fault+0x2a0/0x470
[<ffffffff800a0228>] tlb_do_page_fault_1+0x110/0x118
[<ffffffff800829b8>] handle_cpu_int+0x20/0x28
[<ffffffff80094e80>] sys32_rt_sigprocmask+0x0/0x180
Code: (Bad address in epc)
CPU 0 Unable to handle kernel paging request at virtual address 0000000000000000, epc == 0000000000000000, ra == ffffffff800a36dc
Oops[#5]:
Cpu 0
$ 0 : 0000000000000000 ffffffffb00064e0 ffffffff80370000 0000000000000000
$ 4 : ffffffff80003000 0000000000008000 ffffffff80004000 0000000000000001
$ 8 : 0000000000004000 0000000000008000 00000000079b9613 ffffffff80370000
$12 : ffffffff80370000 ffffffff80370000 ffffffff80094e80 0000000000000000
$16 : ffffffff80003000 0000000000000004 000000007fe13f88 98000000079de098
$20 : 98000000079314c8 98000000079314c8 00000000079b9613 9800000000363620
$24 : 0000000000000000 0000000000416a00
$28 : 98000000079d0000 98000000079d3cc0 0000000000000001 ffffffff800a36dc
Hi : 0000000000016d9a
Lo : 00000000000079de
epc : 0000000000000000 _stext+0x7ff7fc00/0x40 Not tainted
ra : ffffffff800a36dc r4k_flush_cache_page+0x13c/0x208
Status: b00064e3 KX SX UX KERNEL EXL IE
Cause : 00808008
BadVA : 0000000000000000
PrId : 000028a0
Modules linked in:
Process S02mountvirtfs (pid: 607, threadinfo=98000000079d0000, task=980000000796f260)
Stack : 98000000079314c8 000000007fe13f88 0000000000000001 98000000011aa078
ffffffff800fc908 ffffffff800fc8dc 98000000079e1ff8 ffffffff8037da90
6800000000000000 00000000079b9613 98000000079de098 000000007fe13f88
98000000079e1ff8 98000000079314c8 9800000000363620 6db6db6db6db6db7
0000000000000001 ffffffff800fce88 0000000000000002 ffffffff800c1110
000000000045c000 98000000079d3d60 0000000000000000 0000000000000000
0000000000000098 ffffffff80380000 98000000079d3eb0 98000000079314c8
000000007fe13f88 9800000000363678 980000000796f260 9800000000363620
0000000000030000 0000000000000001 0000000000000000 ffffffff8009f640
00030002079d3eb0 0000000000000012 98000000079d3df0 98000000079d3df0
...
Call Trace:
[<ffffffff800fc908>] do_wp_page+0x4d0/0x740
[<ffffffff800fc8dc>] do_wp_page+0x4a4/0x740
[<ffffffff800fce88>] __handle_mm_fault+0x310/0xe50
[<ffffffff800c1110>] do_softirq+0xa0/0xd0
[<ffffffff8009f640>] do_page_fault+0x2a0/0x470
[<ffffffff800a0228>] tlb_do_page_fault_1+0x110/0x118
[<ffffffff800829b8>] handle_cpu_int+0x20/0x28
[<ffffffff80094e80>] sys32_rt_sigprocmask+0x0/0x180
Code: (Bad address in epc)
Break instruction in kernel code[#6]:
Cpu 0
$ 0 : 0000000000000000 ffffffffb00064e0 ffffffffffffffff ffffffffb00064e1
$ 4 : 0000000000000020 6800000000000000 98000000079cb000 0000000000000000
$ 8 : 0000000000000017 0000c00000000003 ffffffff80370000 2ae156c600000000
$12 : ffffffff80380000 000000001000001e ffffffff80091258 20203e706d75643c
$16 : 98000000079ca000 98000000011aa078 000000007fe13fb0 98000000011aa430
$20 : 9800000007f28208 9800000007976098 00000000079b969b 9800000000363060
$24 : 0000000000000000 ffffffff800a1ec0
$28 : 9800000007970000 9800000007973cf0 ffffffff80380000 ffffffff800fc70c
Hi : 0000000000016c62
Lo : 0000000000007976
epc : ffffffff801036c8 page_remove_rmap+0x78/0x88 Not tainted
ra : ffffffff800fc70c do_wp_page+0x2d4/0x740
Status: b00064e3 KX SX UX KERNEL EXL IE
Cause : 00808024
PrId : 000028a0
Modules linked in:
Process S02mountvirtfs (pid: 605, threadinfo=9800000007970000, task=980000000796f848)
Stack : 980000000799aff8 fffffffffffffdee 6800000000000000 00000000079b969b
9800000007976098 000000007fe13fb0 980000000799aff8 9800000007f28208
9800000000363060 6db6db6db6db6db7 0000000000000001 ffffffff800fce88
0000000000000002 ffffffff00000001 9800000007973d60 9800000007973d60
980000000796f848 0000000000000001 0000000000000098 ffffffff80380000
9800000007973eb0 9800000007f28208 000000007fe13fb0 98000000003630b8
980000000796f848 9800000000363060 0000000000030000 0000000000000001
0000000000000002 ffffffff8009f640 0003000207973eb0 0000000000000012
9800000007973df0 9800000007973df0 0000000000000000 ffffffff8037a578
000000000000000a ffffffff80380000 0000000000000001 ffffffff8037da90
...
Call Trace:
[<ffffffff800fce88>] __handle_mm_fault+0x310/0xe50
[<ffffffff8009f640>] do_page_fault+0x2a0/0x470
[<ffffffff800c0f94>] __do_softirq+0xbc/0x198
[<ffffffff800a0228>] tlb_do_page_fault_1+0x110/0x118
[<ffffffff800829b8>] handle_cpu_int+0x20/0x28
[<ffffffff80091258>] sys32_llseek+0x0/0x30
Code: 24040020 0803a884 2405ffff <0200000d> 24040020 0803a884 2405ffff 67bdffb0 ffb20020
Break instruction in kernel code[#7]:
Cpu 0
$ 0 : 0000000000000000 ffffffffb00064e0 fffffffffffffffe ffffffffb00064e1
$ 4 : 0000000000000020 0000000000000000 00000000079b969b 00000000001aa078
$ 8 : 00000000000079b9 000000007fe13000 ffffffff80373ce0 ffffffff80370000
$12 : ffffffff803a0000 ffffffff80390000 ffffffff80310000 ffffffff80380000
$16 : 9800000007976098 ffffffffffffffbf 000000007fe13000 98000000011aa078
$20 : 000000007fe15000 000000000028cc95 000000007fe15000 980000000799aff8
$24 : ffffffff80310000 ffffffff802c0000
$28 : 9800000007970000 98000000079739a0 0000000000000000 ffffffff800fb440
Hi : 0000000000016c62
Lo : 0000000000007976
epc : ffffffff801036c8 page_remove_rmap+0x78/0x88 Not tainted
ra : ffffffff800fb440 unmap_vmas+0x350/0x788
Status: b00064e3 KX SX UX KERNEL EXL IE
Cause : 00808024
PrId : 000028a0
Modules linked in:
Process S02mountvirtfs (pid: 605, threadinfo=9800000007970000, task=980000000796f848)
Stack : 0000000000000000 000000007fe15000 000000007fe14fff 000000007fe14fff
9800000000363060 ffffffff80373ce0 fffffffffffffffc 9800000007994008
9800000007994008 0000000000000001 0000000000000000 0000000000000001
9800000007973a80 9800000007f28208 0000000000000000 ffffffffffffffff
9800000007973a88 0000000000000000 98000000079316d8 9800000000363060
0000000000000001 000000000000000b 9800000007f28208 9800000007976098
00000000079b969b 9800000000363060 ffffffff80380000 ffffffff800ff244
ffffffff80373ce0 0000000000000059 9800000000363060 980000000796f848
ffffffff800b67a0 ffffffff800b6798 9800000007973bc0 ffffffff800bcba0
9800000007973ae8 ffffffff80310000 9800000007973bc0 98000000011aa078
...
Call Trace:
[<ffffffff800ff244>] exit_mmap+0x8c/0x178
[<ffffffff800b67a0>] mmput+0x88/0x158
[<ffffffff800b6798>] mmput+0x80/0x158
[<ffffffff800bcba0>] do_exit+0x198/0xda8
[<ffffffff800887d0>] nmi_exception_handler+0x0/0x50
[<ffffffff800887c8>] die+0xb0/0xb8
[<ffffffff80088d20>] do_tr+0x0/0x118
[<ffffffff802b3254>] __wait_on_bit_lock+0x104/0x1c0
[<ffffffff800e5010>] __lock_page+0x80/0x90
[<ffffffff800d6bf8>] wake_bit_function+0x0/0x58
[<ffffffff800827b8>] handle_bp_int+0x20/0x28
[<ffffffff80091258>] sys32_llseek+0x0/0x30
[<ffffffff800a1ec0>] r4k_blast_dcache_page_dc32+0x0/0xa0
[<ffffffff800fc70c>] do_wp_page+0x2d4/0x740
[<ffffffff801036c8>] page_remove_rmap+0x78/0x88
[<ffffffff800fce88>] __handle_mm_fault+0x310/0xe50
[<ffffffff8009f640>] do_page_fault+0x2a0/0x470
[<ffffffff800c0f94>] __do_softirq+0xbc/0x198
[<ffffffff800a0228>] tlb_do_page_fault_1+0x110/0x118
[<ffffffff800829b8>] handle_cpu_int+0x20/0x28
[<ffffffff80091258>] sys32_llseek+0x0/0x30
Code: 24040020 0803a884 2405ffff <0200000d> 24040020 0803a884 2405ffff 67bdffb0 ffb20020
Fixing recursive fault but reboot is needed!
--
Martin Michlmayr
http://www.cyrius.com/
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Fix a CPU definition for Cobalt
2006-01-19 21:45 ` Martin Michlmayr
2006-01-20 15:01 ` Ralf Baechle
@ 2006-02-17 19:14 ` Martin Michlmayr
1 sibling, 0 replies; 8+ messages in thread
From: Martin Michlmayr @ 2006-02-17 19:14 UTC (permalink / raw)
To: Ralf Baechle; +Cc: linux-mips
* Martin Michlmayr <tbm@cyrius.com> [2006-01-19 21:45]:
> > scache flushing functions aren't getting initialized and the NULL
> > pointer is eventually called as a function. So I suggest this below.
> > Can you test it?
> Doesn't work.
OK, I found the bug in your patch, fixed this and also added proper
type casting. Tested patch below; please commit to git and push to
Linus since Cobalt support is completely broken without this patch.
From: Martin Michlmayr <tbm@cyrius.com>
[PATCH] Initialize scache flushing functions when CPU has no scache
When a CPU has no scache, the scache flushing functions currently
aren't getting initialized and the NULL pointer is eventually called
as a function. Initialize the scache flushing functions as a noop
when there's no scache.
Signed-off-by: Martin Michlmayr <tbm@cyrius.com>
---
c-r4k.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 1b71d91..0668e9b 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -235,7 +235,9 @@ static inline void r4k_blast_scache_page
{
unsigned long sc_lsize = cpu_scache_line_size();
- if (sc_lsize == 16)
+ if (scache_size == 0)
+ r4k_blast_scache_page = (void *)no_sc_noop;
+ else if (sc_lsize == 16)
r4k_blast_scache_page = blast_scache16_page;
else if (sc_lsize == 32)
r4k_blast_scache_page = blast_scache32_page;
@@ -251,7 +253,9 @@ static inline void r4k_blast_scache_page
{
unsigned long sc_lsize = cpu_scache_line_size();
- if (sc_lsize == 16)
+ if (scache_size == 0)
+ r4k_blast_scache_page_indexed = (void *)no_sc_noop;
+ else if (sc_lsize == 16)
r4k_blast_scache_page_indexed = blast_scache16_page_indexed;
else if (sc_lsize == 32)
r4k_blast_scache_page_indexed = blast_scache32_page_indexed;
@@ -267,7 +271,9 @@ static inline void r4k_blast_scache_setu
{
unsigned long sc_lsize = cpu_scache_line_size();
- if (sc_lsize == 16)
+ if (scache_size == 0)
+ r4k_blast_scache = (void *)no_sc_noop;
+ else if (sc_lsize == 16)
r4k_blast_scache = blast_scache16;
else if (sc_lsize == 32)
r4k_blast_scache = blast_scache32;
@@ -482,7 +488,7 @@ static inline void local_r4k_flush_icach
protected_blast_dcache_range(start, end);
}
- if (!cpu_icache_snoops_remote_store) {
+ if (!cpu_icache_snoops_remote_store && scache_size) {
if (end - start > scache_size)
r4k_blast_scache();
else
@@ -651,7 +657,7 @@ static void local_r4k_flush_cache_sigtra
R4600_HIT_CACHEOP_WAR_IMPL;
protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
- if (!cpu_icache_snoops_remote_store)
+ if (!cpu_icache_snoops_remote_store && scache_size)
protected_writeback_scache_line(addr & ~(sc_lsize - 1));
protected_flush_icache_line(addr & ~(ic_lsize - 1));
if (MIPS4K_ICACHE_REFILL_WAR) {
--
Martin Michlmayr
http://www.cyrius.com/
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2006-02-17 19:07 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-01-19 19:24 Fix a CPU definition for Cobalt Martin Michlmayr
2006-01-19 21:04 ` Ralf Baechle
2006-01-19 21:45 ` Martin Michlmayr
2006-01-20 15:01 ` Ralf Baechle
2006-01-20 15:10 ` Martin Michlmayr
2006-01-20 15:19 ` Ralf Baechle
2006-01-20 16:00 ` Martin Michlmayr
2006-02-17 19:14 ` Martin Michlmayr
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox