* CONFIG_I8042
@ 2003-09-28 15:03 Russell King
2003-09-28 15:10 ` CONFIG_I8042 Russell King
2003-09-28 17:16 ` CONFIG_I8042 Michael Frank
0 siblings, 2 replies; 10+ messages in thread
From: Russell King @ 2003-09-28 15:03 UTC (permalink / raw)
To: Linux Kernel List; +Cc: Vojtech Pavlik
How can we turn this option off on non-x86 and without selecting
CONFIG_EMBEDDED? It seems that as the configuration files stand,
it is impossible to deselect this option:
config SERIO_I8042
tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86
default y
select SERIO
It seems that in menuconfig, it isn't possible to change this option
either:
x x --- Serial i/o support x x
x x --- i8042 PC Keyboard controller x x
x x <M> Serial port line discipline x x
Maybe "!X86" doesn't mean "not X86 architectures" when it isn't
defined?
This means that all architectures which do not support 8042 get
8042 support forced in them. In my case, this is the result:
Unable to handle kernel NULL pointer dereference at virtual address 00000064
pgd = c0204000
[00000064] *pgd=00000000
Internal error: Oops: c0207005 [#1]
CPU: 0
PC is at i8042_flush+0x20/0x58
LR is at i8042_controller_init+0x14/0x168
pc : [<c0330fc8>] lr : [<c02159cc>] Not tainted
sp : c01e1f84 ip : 00000064 fp : c01e1f90
r10: 00000000 r9 : 00000000 r8 : 00000000
r7 : c021bee4 r6 : 00000000 r5 : c021bec0 r4 : c01e0000
r3 : a0000093 r2 : 0000000c r1 : a0000013 r0 : 00000000
Flags: NzCv IRQs off FIQs on Mode SVC_32 Segment kernel
Control: C020717F Table: C020717F DAC: 0000001D
Process swapper (pid: 1, stack limit = 0xc01e00ec)
Stack: (0xc01e1f84 to 0xc01e2000)
1f80: c01e1fa8 c01e1f94 c02159cc c0330fb4 00000000 c01e0000 c01e1fc4
1fa0: c01e1fac c021606c c02159c4 c01e0000 c021bec0 00000000 c01e1fe4 c01e1fc8
1fc0: c0208774 c0216024 00000000 00000000 00000000 00000000 c01e1ff4 c01e1fe8
1fe0: c021c0a0 c0208738 00000000 c01e1ff8 c023ae48 c021c084 5a5a5a5a 5a5a5a5a
Backtrace:
[<c0330fa8>] (i8042_flush+0x0/0x58) from [<c02159cc>] (i8042_controller_init+0x14/0x168)
[<c02159b8>] (i8042_controller_init+0x0/0x168) from [<c021606c>] (i8042_init+0x54/0x1ac)
[<c0216018>] (i8042_init+0x0/0x1ac) from [<c0208774>] (do_initcalls+0x48/0xb8)
[<c020872c>] (do_initcalls+0x0/0xb8) from [<c021c0a0>] (init+0x28/0xc8)
[<c021c078>] (init+0x0/0xc8) from [<c023ae48>] (do_exit+0x0/0x398)
Code: e10f1000 e3813080 e121f003 e3a0c064 (e5dc3000)
0>Kernel panic: Attempted to kill init!
--
Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/
2.6 Serial core
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: CONFIG_I8042 2003-09-28 15:03 CONFIG_I8042 Russell King @ 2003-09-28 15:10 ` Russell King 2003-09-28 17:31 ` CONFIG_I8042 Michael Frank 2003-09-28 18:37 ` CONFIG_I8042 Linus Torvalds 2003-09-28 17:16 ` CONFIG_I8042 Michael Frank 1 sibling, 2 replies; 10+ messages in thread From: Russell King @ 2003-09-28 15:10 UTC (permalink / raw) To: Linux Kernel List, Vojtech Pavlik, Linus Torvalds Correction - it is due to this change: | --- 1.7/drivers/input/keyboard/Kconfig Fri Sep 19 12:51:31 2003 | +++ 1.8/drivers/input/keyboard/Kconfig Sun Sep 21 03:44:11 2003 | @@ -13,9 +13,9 @@ | | config KEYBOARD_ATKBD | tristate "AT keyboard support" if EMBEDDED || !X86 | - default y if INPUT=y && INPUT_KEYBOARD=y && SERIO=y | - default m | - depends on INPUT && INPUT_KEYBOARD && SERIO | + default y | + depends on INPUT && INPUT_KEYBOARD | + select SERIO_I8042 | help | Say Y here if you want to use a standard AT or PS/2 keyboard. Usually | you'll need this, unless you have a different type keyboard (USB, ADB If we have an AT Keyboard, that does _NOT_ mean that we have an I8042. Linus, since you're the owner of this change, how do you want this fixed? My personal perference is to drop the "select SERIO_I8042" clause since it makes no sense on non-x86 platforms. ===== drivers/input/keyboard/Kconfig 1.9 vs edited ===== --- 1.9/drivers/input/keyboard/Kconfig Thu Sep 25 04:34:24 2003 +++ edited/drivers/input/keyboard/Kconfig Sun Sep 28 16:10:24 2003 @@ -15,7 +15,6 @@ tristate "AT keyboard support" if EMBEDDED || !X86 default y depends on INPUT && INPUT_KEYBOARD - select SERIO_I8042 help Say Y here if you want to use a standard AT or PS/2 keyboard. Usually you'll need this, unless you have a different type keyboard (USB, ADB On Sun, Sep 28, 2003 at 04:03:14PM +0100, Russell King wrote: > How can we turn this option off on non-x86 and without selecting > CONFIG_EMBEDDED? It seems that as the configuration files stand, > it is impossible to deselect this option: > > config SERIO_I8042 > tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 > default y > select SERIO > > It seems that in menuconfig, it isn't possible to change this option > either: > > x x --- Serial i/o support x x > x x --- i8042 PC Keyboard controller x x > x x <M> Serial port line discipline x x > > Maybe "!X86" doesn't mean "not X86 architectures" when it isn't > defined? > > This means that all architectures which do not support 8042 get > 8042 support forced in them. In my case, this is the result: > > Unable to handle kernel NULL pointer dereference at virtual address 00000064 > pgd = c0204000 > [00000064] *pgd=00000000 > Internal error: Oops: c0207005 [#1] > CPU: 0 > PC is at i8042_flush+0x20/0x58 > LR is at i8042_controller_init+0x14/0x168 > pc : [<c0330fc8>] lr : [<c02159cc>] Not tainted > sp : c01e1f84 ip : 00000064 fp : c01e1f90 > r10: 00000000 r9 : 00000000 r8 : 00000000 > r7 : c021bee4 r6 : 00000000 r5 : c021bec0 r4 : c01e0000 > r3 : a0000093 r2 : 0000000c r1 : a0000013 r0 : 00000000 > Flags: NzCv IRQs off FIQs on Mode SVC_32 Segment kernel > Control: C020717F Table: C020717F DAC: 0000001D > Process swapper (pid: 1, stack limit = 0xc01e00ec) > Stack: (0xc01e1f84 to 0xc01e2000) > 1f80: c01e1fa8 c01e1f94 c02159cc c0330fb4 00000000 c01e0000 c01e1fc4 > 1fa0: c01e1fac c021606c c02159c4 c01e0000 c021bec0 00000000 c01e1fe4 c01e1fc8 > 1fc0: c0208774 c0216024 00000000 00000000 00000000 00000000 c01e1ff4 c01e1fe8 > 1fe0: c021c0a0 c0208738 00000000 c01e1ff8 c023ae48 c021c084 5a5a5a5a 5a5a5a5a > Backtrace: > [<c0330fa8>] (i8042_flush+0x0/0x58) from [<c02159cc>] (i8042_controller_init+0x14/0x168) > [<c02159b8>] (i8042_controller_init+0x0/0x168) from [<c021606c>] (i8042_init+0x54/0x1ac) > [<c0216018>] (i8042_init+0x0/0x1ac) from [<c0208774>] (do_initcalls+0x48/0xb8) > [<c020872c>] (do_initcalls+0x0/0xb8) from [<c021c0a0>] (init+0x28/0xc8) > [<c021c078>] (init+0x0/0xc8) from [<c023ae48>] (do_exit+0x0/0x398) > Code: e10f1000 e3813080 e121f003 e3a0c064 (e5dc3000) > 0>Kernel panic: Attempted to kill init! > > -- > Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/ > Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ > maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ > 2.6 Serial core > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/ Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 15:10 ` CONFIG_I8042 Russell King @ 2003-09-28 17:31 ` Michael Frank 2003-09-28 18:37 ` CONFIG_I8042 Linus Torvalds 1 sibling, 0 replies; 10+ messages in thread From: Michael Frank @ 2003-09-28 17:31 UTC (permalink / raw) To: Russell King, Linux Kernel List, Vojtech Pavlik, Linus Torvalds On Sunday 28 September 2003 23:10, Russell King wrote: > Correction - it is due to this change: > > | --- 1.7/drivers/input/keyboard/Kconfig Fri Sep 19 12:51:31 2003 > | +++ 1.8/drivers/input/keyboard/Kconfig Sun Sep 21 03:44:11 2003 > | @@ -13,9 +13,9 @@ > | > | config KEYBOARD_ATKBD > | tristate "AT keyboard support" if EMBEDDED || !X86 > | - default y if INPUT=y && INPUT_KEYBOARD=y && SERIO=y > | - default m > | - depends on INPUT && INPUT_KEYBOARD && SERIO > | + default y > | + depends on INPUT && INPUT_KEYBOARD > | + select SERIO_I8042 > | help > | Say Y here if you want to use a standard AT or PS/2 keyboard. Usually > | you'll need this, unless you have a different type keyboard (USB, ADB > Could there be another menu to select system type when x86 -Standard-PC EMBEDDED=0 X86=1, MMU=1, VID16=1, SBUS=0, GENERIC_ISA_DMA=1 Use this for ease of configuration in most PC applications. -Custom-PC EMBEDDED=0 X86=0, MMU=1, VID16=1, SBUS=0, GENERIC_ISA_DMA=1 Use this in specialized PC applications to enable less frequently used configuration options. Beware that this requires more intricate knowledge of PC hardware and the kernel subsystems -Embedded EMBEDDED=1 X86=0, MMU=user, VID16=user, SBUS=user, GENERIC_ISA_DMA=user Use this option when running the kernel on an embedded system to maximize configuration capability. This option is generally unsuitable in PC applications. Regards Michael ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 15:10 ` CONFIG_I8042 Russell King 2003-09-28 17:31 ` CONFIG_I8042 Michael Frank @ 2003-09-28 18:37 ` Linus Torvalds 2003-09-28 18:45 ` CONFIG_I8042 Russell King 1 sibling, 1 reply; 10+ messages in thread From: Linus Torvalds @ 2003-09-28 18:37 UTC (permalink / raw) To: Russell King; +Cc: Linux Kernel List, Vojtech Pavlik On Sun, 28 Sep 2003, Russell King wrote: > > If we have an AT Keyboard, that does _NOT_ mean that we have an I8042. Well, it does require us to have at least SERIO. Also, we need to have some way to make sure that I8042 does get selected on a PC. Apart from that, it doesn't matter how it's solved.. Linus ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 18:37 ` CONFIG_I8042 Linus Torvalds @ 2003-09-28 18:45 ` Russell King 2003-09-28 18:49 ` CONFIG_I8042 Linus Torvalds 2003-09-28 19:21 ` CONFIG_I8042 Roman Zippel 0 siblings, 2 replies; 10+ messages in thread From: Russell King @ 2003-09-28 18:45 UTC (permalink / raw) To: Linus Torvalds; +Cc: Linux Kernel List, Roman Zippel On Sun, Sep 28, 2003 at 11:37:18AM -0700, Linus Torvalds wrote: > On Sun, 28 Sep 2003, Russell King wrote: > > If we have an AT Keyboard, that does _NOT_ mean that we have an I8042. > > Well, it does require us to have at least SERIO. Also, we need to have > some way to make sure that I8042 does get selected on a PC. > > Apart from that, it doesn't matter how it's solved.. It appears that "select" doesn't accept conditionals as the kconfig language stands - jejb also ran into this issue, and tried various ways around. The only solution which seems to work is to remove this select line entirely. Maybe RZ can comment further. (Problem Summary: several architectures need to be able to select KEYBOARD_ATKBD without automatically selecting I8042.) -- Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/ Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 18:45 ` CONFIG_I8042 Russell King @ 2003-09-28 18:49 ` Linus Torvalds 2003-09-28 19:15 ` CONFIG_I8042 Russell King 2003-09-28 19:21 ` CONFIG_I8042 Roman Zippel 1 sibling, 1 reply; 10+ messages in thread From: Linus Torvalds @ 2003-09-28 18:49 UTC (permalink / raw) To: Russell King; +Cc: Linux Kernel List, Roman Zippel On Sun, 28 Sep 2003, Russell King wrote: > > It appears that "select" doesn't accept conditionals as the kconfig > language stands - jejb also ran into this issue, and tried various > ways around. The only solution which seems to work is to remove this > select line entirely. That is WRONG. At least it should unconditionally select "SERIO", since the damn driver won't link without it. The fact that it also requires a I8042 driver to actually _work_ on a PC is a separate issue, but one that needs to also be resolved some way. Linus ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 18:49 ` CONFIG_I8042 Linus Torvalds @ 2003-09-28 19:15 ` Russell King 0 siblings, 0 replies; 10+ messages in thread From: Russell King @ 2003-09-28 19:15 UTC (permalink / raw) To: Linus Torvalds; +Cc: Linux Kernel List, Roman Zippel On Sun, Sep 28, 2003 at 11:49:45AM -0700, Linus Torvalds wrote: > > On Sun, 28 Sep 2003, Russell King wrote: > > > > It appears that "select" doesn't accept conditionals as the kconfig > > language stands - jejb also ran into this issue, and tried various > > ways around. The only solution which seems to work is to remove this > > select line entirely. > > That is WRONG. I don't think you've interpreted what I've said correctly. I'm not arguing at all about SERIO itself. In fact, I completely agree that selecting KEYBOARD_ATKBD should automatically select SERIO since atkbd.c uses serio.c. The information I received today from James Bottomley, who is also seeing this issue, is that the following construct resulted in I8042 being unconditionally selected: config KEYBOARD_ATKBD ... select SERIO select SERIO_I8042 if X86 However, I've just decided to try it myself, and it does indeed work as expected. Here's a (tested on non-x86) patch which fixes this issue and gives us the correct behaviour for non-x86 platforms, and should also give the desired behaviour for x86 and embedded platforms. --- orig/drivers/input/keyboard/Kconfig Sun Sep 28 09:54:29 2003 +++ linux/drivers/input/keyboard/Kconfig Sun Sep 28 20:06:40 2003 @@ -15,7 +15,8 @@ tristate "AT keyboard support" if EMBEDDED || !X86 default y depends on INPUT && INPUT_KEYBOARD - select SERIO_I8042 + select SERIO + select SERIO_I8042 if !EMBEDDED && X86 help Say Y here if you want to use a standard AT or PS/2 keyboard. Usually you'll need this, unless you have a different type keyboard (USB, ADB -- Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/ Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 18:45 ` CONFIG_I8042 Russell King 2003-09-28 18:49 ` CONFIG_I8042 Linus Torvalds @ 2003-09-28 19:21 ` Roman Zippel 2003-09-28 19:30 ` CONFIG_I8042 Russell King 1 sibling, 1 reply; 10+ messages in thread From: Roman Zippel @ 2003-09-28 19:21 UTC (permalink / raw) To: Russell King; +Cc: Linus Torvalds, Linux Kernel List Hi, On Sun, 28 Sep 2003, Russell King wrote: > > Well, it does require us to have at least SERIO. Also, we need to have > > some way to make sure that I8042 does get selected on a PC. > > > > Apart from that, it doesn't matter how it's solved.. > > It appears that "select" doesn't accept conditionals as the kconfig > language stands - jejb also ran into this issue, and tried various > ways around. The only solution which seems to work is to remove this > select line entirely. What did you try? E.g. "select SERIO_I8042 if !EMBEDDED && X86" works fine here. bye, Roman ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 19:21 ` CONFIG_I8042 Roman Zippel @ 2003-09-28 19:30 ` Russell King 0 siblings, 0 replies; 10+ messages in thread From: Russell King @ 2003-09-28 19:30 UTC (permalink / raw) To: Roman Zippel; +Cc: Linus Torvalds, Linux Kernel List On Sun, Sep 28, 2003 at 09:21:15PM +0200, Roman Zippel wrote: > What did you try? E.g. "select SERIO_I8042 if !EMBEDDED && X86" works fine > here. My information concerning this aspect of the problem came from jejb - I should have verified it myself before posting. -- Russell King (rmk@arm.linux.org.uk) http://www.arm.linux.org.uk/personal/ Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/ maintainer of: 2.6 PCMCIA - http://pcmcia.arm.linux.org.uk/ 2.6 Serial core ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: CONFIG_I8042 2003-09-28 15:03 CONFIG_I8042 Russell King 2003-09-28 15:10 ` CONFIG_I8042 Russell King @ 2003-09-28 17:16 ` Michael Frank 1 sibling, 0 replies; 10+ messages in thread From: Michael Frank @ 2003-09-28 17:16 UTC (permalink / raw) To: Russell King, Linux Kernel List; +Cc: Vojtech Pavlik On Sunday 28 September 2003 23:03, Russell King wrote: > How can we turn this option off on non-x86 and without selecting > CONFIG_EMBEDDED? It seems that as the configuration files stand, > it is impossible to deselect this option: > > config SERIO_I8042 > tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 > default y > select SERIO > > It seems that in menuconfig, it isn't possible to change this option > either: > > x x --- Serial i/o support x x > x x --- i8042 PC Keyboard controller x x > x x <M> Serial port line discipline x x > > Maybe "!X86" doesn't mean "not X86 architectures" when it isn't > defined? Yeah, to make X86 under-donkey proof... One can't make i8042 a module either. Michael ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2003-09-28 19:30 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2003-09-28 15:03 CONFIG_I8042 Russell King 2003-09-28 15:10 ` CONFIG_I8042 Russell King 2003-09-28 17:31 ` CONFIG_I8042 Michael Frank 2003-09-28 18:37 ` CONFIG_I8042 Linus Torvalds 2003-09-28 18:45 ` CONFIG_I8042 Russell King 2003-09-28 18:49 ` CONFIG_I8042 Linus Torvalds 2003-09-28 19:15 ` CONFIG_I8042 Russell King 2003-09-28 19:21 ` CONFIG_I8042 Roman Zippel 2003-09-28 19:30 ` CONFIG_I8042 Russell King 2003-09-28 17:16 ` CONFIG_I8042 Michael Frank
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox