Skip to contentSkip to conversation

Crash on Cobalt with CONFIG_SERIO=y

PATCH Martin Michlmayr 3 participants 7 messages Jan 20, 2006 – Mar 1, 2006

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

I get the following crash on Cobalt when CONFIG_SERIO=y is set. I realize that this option is not really necessary on Cobalt but the kernel should neverless not crash if it is enabled.

Activating ISA DMA hang workarounds.
rtc: Digital UNIX epoch (1952) detected
Real Time Clock Driver v1.12a
Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Unhandled kernel unaligned access[#1]:
Cpu 0

 $ 0   : 0000000000000000 ffffffff940044e0 996bffffff4093b8 0000000000000000
 $ 4   : ffffffff8026a280 ffffffffdc620028 0000000000000000 996bffffff409398
 $ 8   : 980000000032c000 980000000032fdc0 0000000000000000 ffffffff80300000
 $12   : ffffffff940044e0 000000001000001e ffffffff802a0000 ffffffff80300000
 $16   : 980000000032fdc0 ffffffff802a2408 0000000000000000 ffffffff80310000
 $20   : ffffffff802b0000 ffffffff802a0000 ffffffff802a0000 ffffffff80280000
 $24   : ffffffff80310000 ffffffff802b0000                                  
 $28   : 980000000032c000 980000000032fd90 ffffffff80270000 ffffffff8008236c
 Hi    : 000000000000007b
 Lo    : e76c8b43957fdc00
 epc   : ffffffff80089a58 do_ade+0x398/0x4a0     Not tainted
 ra    : ffffffff8008236c handle_adel_int+0x34/0x48
 Status: 940044e2    KX SX UX KERNEL EXL 
 Cause : 00808010
 BadVA : 996bffffff40939f
 PrId  : 000028a0
 Modules linked in:
 Process swapper (pid: 1, threadinfo=980000000032c000, task=9800000000331788)
 Stack : ffffffff80310000 ffffffff802a2408 ffffffff940044e1 ffffffff80310000
         ffffffff8008236c ffffffff80300000 0000000000000000 ffffffff940044e0
         0033ffffffc01510 996bffffff409370 ffffffff80310000 9800000001000000
         000000000000006f ffffffff802a23f8 000000000000006f 0000000080000000
         ffffffff80300000 ffffffff80300000 ffffffff802a0000 ffffffff80300000
         ffffffff802a0000 ffffffff80300000 ffffffff80310000 ffffffff802a2408
         ffffffff940044e1 ffffffff80310000 ffffffff802b0000 ffffffff802a0000
         ffffffff802a0000 ffffffff80280000 ffffffff80310000 ffffffff802b0000
         980000000032feb8 ffffffff801bbe70 980000000032c000 980000000032fef0
         ffffffff80270000 ffffffff802f3944 ffffffff940044e2 000000000000007b
         ...
 Call Trace:
  [<ffffffff8008236c>] handle_adel_int+0x34/0x48
  [<ffffffff801bbe70>] i8042_command+0x1e8/0x3a8
  [<ffffffff802f3944>] i8042_init+0x11c/0xac8
  [<ffffffff800dc878>] kfree+0x70/0x110
  [<ffffffff802f3944>] i8042_init+0x11c/0xac8
  [<ffffffff801c8e70>] bus_register+0x120/0x270
  [<ffffffff80080600>] init+0x158/0x448
  [<ffffffff80083900>] kernel_thread_helper+0x10/0x18
  [<ffffffff800838f0>] kernel_thread_helper+0x0/0x18
 Code: 00621824  5460ff7d  de020100 <68e30007> 6ce30000  24020000  1440ffa0  00051402  08022657 
 Kernel panic - not syncing: Attempted to kill init!

The only difference between a broken and working kernel is:

config-working renamed from config-broken +2 -7
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.15
-# Fri Jan 20 00:24:47 2006
+# Fri Jan 20 00:30:33 2006
 #
 CONFIG_MIPS=y
 
@@ -531,12 +531,7 @@
 #
 # Hardware I/O ports
 #
-CONFIG_SERIO=y
-CONFIG_SERIO_I8042=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_PCIPS2 is not set
-# CONFIG_SERIO_LIBPS2 is not set
-# CONFIG_SERIO_RAW is not set
+# CONFIG_SERIO is not set
 # CONFIG_GAMEPORT is not set
 
 #
Signature · 2 lines
Martin Michlmayr
http://www.cyrius.com/
#1 lore raw
Quoted 11 lines · Martin Michlmayr

I get the following crash on Cobalt when CONFIG_SERIO=y is set. I realize that this option is not really necessary on Cobalt but the kernel should neverless not crash if it is enabled.

Activating ISA DMA hang workarounds.
rtc: Digital UNIX epoch (1952) detected
Real Time Clock Driver v1.12a
Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Unhandled kernel unaligned access[#1]:

The i8042 error message is a little surprising. The Cobalt boards afair have some sort of SuperIO chip on the board which includes PS/2 keyboard even though that has not been wired. I wonder if anybody can take a look at the board what type of SuperIO is there?

Anyway, the kernel code seems to be correct at a glance so I have to assume the PS/2 hardware really doesn't work and I propose below patch.

Ralf

arch/mips/Kconfig +5 -0
index 4ca93ff..d5b175b 100644
@@ -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
arch/mips/configs/atlas_defconfig +1 -2
index 85e08aa..abfe9c0 100644
@@ -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
arch/mips/configs/bigsur_defconfig +1 -2
index 75db2a9..86de8fc 100644
@@ -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
arch/mips/configs/cobalt_defconfig +1 -2
index adea137..0700da4 100644
@@ -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
arch/mips/configs/db1000_defconfig +1 -2
index 75c3e35..dbc91ef 100644
@@ -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
arch/mips/configs/db1100_defconfig +1 -2
index 89ac1aa..95326df 100644
@@ -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
arch/mips/configs/db1200_defconfig +1 -2
index e7cd15e..6ae4bdf 100644
@@ -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
arch/mips/configs/db1500_defconfig +1 -2
index 03f1364..52551e9 100644
@@ -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
arch/mips/configs/db1550_defconfig +1 -2
index de88f39..016530d 100644
@@ -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
arch/mips/configs/ddb5476_defconfig +1 -2
index d885993..0c85a90 100644
@@ -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
arch/mips/configs/ddb5477_defconfig +1 -2
index 108f8e2..bca51f7 100644
@@ -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
arch/mips/configs/e55_defconfig +1 -2
index f3db69e..07372d6 100644
@@ -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
arch/mips/configs/ev64120_defconfig +1 -2
index 20e1316..048e1ce 100644
@@ -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
arch/mips/configs/ev96100_defconfig +1 -2
index 159d5fe..edb0876 100644
@@ -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
arch/mips/configs/ip27_defconfig +1 -2
index 90ec84f..ebb602e 100644
@@ -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
arch/mips/configs/ip32_defconfig +1 -2
index 23dcecc..391695d 100644
@@ -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
arch/mips/configs/it8172_defconfig +1 -2
index 128a3b1..dec0e18 100644
@@ -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
arch/mips/configs/ivr_defconfig +1 -2
index 09709b0..1faf00b 100644
@@ -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
arch/mips/configs/jmr3927_defconfig +1 -2
index 9b6d676..4241657 100644
@@ -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
arch/mips/configs/malta_defconfig +1 -2
index 86a7f50..2c6e0c3 100644
@@ -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
arch/mips/configs/mipssim_defconfig +1 -2
index 7c1872b..3db9a72 100644
@@ -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
arch/mips/configs/mpc30x_defconfig +1 -2
index 804aeda..13afef3 100644
@@ -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
arch/mips/configs/ocelot_3_defconfig +1 -2
index d3cc3dc..dc43187 100644
@@ -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
arch/mips/configs/ocelot_c_defconfig +1 -2
index bbb5316..fbb63d9 100644
@@ -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
arch/mips/configs/ocelot_defconfig +1 -2
index 2d1c73e..791a1fe 100644
@@ -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
arch/mips/configs/ocelot_g_defconfig +1 -2
index 062e0e6..5e636cf 100644
@@ -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
arch/mips/configs/pb1100_defconfig +1 -2
index f8e9bbf..075541d 100644
@@ -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
arch/mips/configs/pb1500_defconfig +1 -2
index b05c510..4e0ea12 100644
@@ -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
arch/mips/configs/pb1550_defconfig +1 -2
index dd4a635..8753202 100644
@@ -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
arch/mips/configs/pnx8550-jbs_defconfig +1 -2
index dcd88a5..af8a7c2 100644
@@ -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
arch/mips/configs/sb1250-swarm_defconfig +1 -2
index bc79f49..7e0d3b8 100644
@@ -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
arch/mips/configs/workpad_defconfig +1 -2
index 74eb1de..a081c5f 100644
@@ -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
drivers/input/serio/Kconfig +1 -1
index 98acf17..109913f 100644
@@ -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,
#2 lore raw
Quoted 4 lines · Ralf Baechle

The i8042 error message is a little surprising. The Cobalt boards afair have some sort of SuperIO chip on the board which includes PS/2 keyboard even though that has not been wired. I wonder if anybody can take a look at the board what type of SuperIO is there?

Maybe Peter Horton can take a look.

Quoted 2 lines

Anyway, the kernel code seems to be correct at a glance so I have to assume the PS/2 hardware really doesn't work and I propose below patch.

That's fine with me.

Signature · 2 lines
Martin Michlmayr
http://www.cyrius.com/
#3 lore raw
In reply to Ralf Baechle
Quoted 14 lines · Ralf Baechle
Quoted 11 lines · Martin Michlmayr

I get the following crash on Cobalt when CONFIG_SERIO=y is set. I realize that this option is not really necessary on Cobalt but the kernel should neverless not crash if it is enabled.

Activating ISA DMA hang workarounds.
rtc: Digital UNIX epoch (1952) detected
Real Time Clock Driver v1.12a
Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Unhandled kernel unaligned access[#1]:

Quoted 5 lines

The i8042 error message is a little surprising. The Cobalt boards afair have some sort of SuperIO chip on the board which includes PS/2 keyboard even though that has not been wired. I wonder if anybody can take a look at the board what type of SuperIO is there?

No SuperIO, but there is a bog standard VIA PCI-ISA bridge which contains a bog standard PS/2 keyboard controller, which you would have thought should just work ...

P.

#4 lore raw
Quoted 9 lines · Peter Horton
Quoted 6 lines
Quoted 4 lines

Real Time Clock Driver v1.12a
Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Unhandled kernel unaligned access[#1]:

The i8042 error message is a little surprising. The Cobalt boards afair

No SuperIO, but there is a bog standard VIA PCI-ISA bridge which contains a bog standard PS/2 keyboard controller, which you would have thought should just work ...

That's really interesting. I tried latest git (2.6.16-rc5) to see if this is still there. First of all, 32-bit is fine, both regarding i8042 as well as ALSA with a PCI audio card. With a 64-bit kernel, i8042 appears to be okay now. I get:

Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled

and the kernel boots fine.

I then built ALSA support into the kernel to see whether
http://www.linux-mips.org/archives/linux-mips/2006-01/msg00325.html
disappeared too. I got almost the same oops as the one I got before because of i8042.

Peter, does that make any sense to you? I assume your recent PCI fix may be related.

...
Real Time Clock Driver v1.12a
Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled ÿserial8250: ttyS0 at I/O 0xc800000 (irq = 21) is a ST16650V2
loop: loaded (max 8 devices)
...
Advanced Linux Sound Architecture Driver Version 1.0.11rc2 (Wed Jan 04 08:57:20 2006 UTC). Unhandled kernel unaligned access[#1]:
Cpu 0

$ 0   : 0000000000000000 ffffffff940044e0 9b64000001014c88 0000000000000000
$ 4   : ffffffff803b1c20 ffffffffdc820000 0000000000000000 9b64000001014c80
$ 8   : 98000000004d8000 98000000004dbc00 0000000000000000 ffffffff8040dc60
$12   : ffffffff940044e0 000000001000001e ffffffff803c9758 ffffffff804a0000
$16   : 98000000004dbc00 0000000000000004 0000000000000000 0000000000010000
$20   : 0000000000000004 0000000000000002 0000000000000002 98000000005dbc00
$24   : 0000000000000010 ffffffff80096fc8                                  
$28   : 98000000004d8000 98000000004dbbd0 ffffffff803f0000 ffffffff8008234c
Hi    : 0000000000000000
Lo    : 0000000000000380
epc   : ffffffff80089ae8 do_ade+0x398/0x4a0     Not tainted
ra    : ffffffff8008234c handle_adel_int+0x34/0x48
Status: 940044e2    KX SX UX KERNEL EXL 
Cause : 0080a010
BadVA : 9b64000001014c87
PrId  : 000028a0
Process swapper (pid: 1, threadinfo=98000000004d8000, task=98000000004d7848)
Stack : 98000000005c7048 0000000000000004 90000000005f0000 0000000000010000
        ffffffff8008234c ffffffff8040dd40 0000000000000000 ffffffff940044e0
        0000000000000380 ffffffff940044e1 9b64000001014c80 9b64000001014cb8
        9b64000001015000 0000000000004000 0000000000008000 ffffffff804a0000
        0000000000000004 ffffffff8040dc60 0000000000000000 ffffffff80207a2c
        ffffffff803c9758 ffffffff804a0000 98000000005c7048 0000000000000004
        90000000005f0000 0000000000010000 0000000000000004 0000000000000002
        0000000000000002 98000000005dbc00 0000000000000010 ffffffff80096fc8
        00000000000005f0 ffffffff800dcd10 98000000004d8000 98000000004dbd30
        ffffffff803f0000 ffffffff802b26c8 ffffffff940044e2 0000000000000000
        ...
Call Trace:
 [<ffffffff8008234c>] handle_adel_int+0x34/0x48
 [<ffffffff80207a2c>] memset_partial+0x48/0x60
 [<ffffffff80096fc8>] blast_dcache32+0x0/0x100
 [<ffffffff800dcd10>] __get_free_pages+0x60/0xf0
 [<ffffffff802b26c8>] snd_dma_alloc_pages+0x118/0x1a8
 [<ffffffff802b1d10>] mark_pages+0x60/0xa8
 [<ffffffff802b1994>] snd_pcm_lib_preallocate_pages+0x16c/0x1e0
 [<ffffffff802b1a68>] snd_pcm_lib_preallocate_pages_for_all+0x60/0xb0
 [<ffffffff802a3b88>] snd_pcm_new+0x98/0x180
 [<ffffffff802e008c>] snd_audiopci_probe+0x8f4/0xd00
 [<ffffffff802dd290>] snd_ensoniq_mixer_free_ac97+0x0/0x10
 [<ffffffff802170c0>] pci_device_probe+0x80/0xa8
 [<ffffffff802503e8>] driver_probe_device+0x58/0x110
 [<ffffffff802507c4>] __driver_attach+0x1cc/0x218
 [<ffffffff802505f8>] __driver_attach+0x0/0x218
 [<ffffffff8024f210>] bus_for_each_dev+0x50/0xb8
 [<ffffffff80201c0c>] kobject_register+0x5c/0xa0
 [<ffffffff8024f6f0>] bus_add_driver+0xb8/0x1f8
 [<ffffffff80490000>] netlink_proto_init+0x1c8/0x3f8
 [<ffffffff80216b04>] __pci_register_driver+0xb4/0x118
 [<ffffffff80216b04>] __pci_register_driver+0xb4/0x118
 [<ffffffff800805f8>] init+0x150/0x448
 [<ffffffff800805f8>] init+0x150/0x448
 [<ffffffff800838e0>] kernel_thread_helper+0x10/0x18
 [<ffffffff800838d0>] kernel_thread_helper+0x0/0x18
Code: 00621824  5460ff7d  de020100 <68e30007> 6ce30000  24020000  1440ffa0  00051402  0802267b 
Kernel panic - not syncing: Attempted to kill init!
Signature · 2 lines
Martin Michlmayr
http://www.cyrius.com/
#5 lore raw
Quoted 22 lines · Martin Michlmayr
Quoted 9 lines · Peter Horton
Quoted 6 lines
Quoted 4 lines

Real Time Clock Driver v1.12a
Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Unhandled kernel unaligned access[#1]:

The i8042 error message is a little surprising. The Cobalt boards afair

No SuperIO, but there is a bog standard VIA PCI-ISA bridge which contains a bog standard PS/2 keyboard controller, which you would have thought should just work ...

That's really interesting. I tried latest git (2.6.16-rc5) to see if this is still there. First of all, 32-bit is fine, both regarding i8042 as well as ALSA with a PCI audio card. With a 64-bit kernel, i8042 appears to be okay now. I get:

Cobalt LCD Driver v2.10
i8042.c: i8042 controller self test timeout.
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled

and the kernel boots fine.

Quoted 8 lines

I then built ALSA support into the kernel to see whether
http://www.linux-mips.org/archives/linux-mips/2006-01/msg00325.html
disappeared too. I got almost the same oops as the one I got before because of i8042.

Peter, does that make any sense to you? I assume your recent PCI fix may be related.

Those addresses that begin 9b640000 (including the fault address) look very strange. The low 32-bits look like a valid physical address in the PCI space but the top bits definitely don't look right (unless the kernel's playing tricks with unused address bits; I'll have to check the RM523x data sheet to see if they have any effect). Have any of the MIPs experts commented ?

Quoted 3 lines

BadVA : 9b64000001014c87

P.

#6 lore raw
Quoted 6 lines · Peter Horton

Those addresses that begin 9b640000 (including the fault address) look very strange. The low 32-bits look like a valid physical address in the PCI space but the top bits definitely don't look right (unless the kernel's playing tricks with unused address bits; I'll have to check the RM523x data sheet to see if they have any effect). Have any of the MIPs experts commented ?

Raaalf? ;-)

Signature · 2 lines
Martin Michlmayr
http://www.cyrius.com/