Subject: Bug#3320: Kernel oops - problem with APM BIOS?

From: Marek Michalkiewicz <[email-masked]>
Date: Wed, 19 Jun 1996 02:25:50 +0200 (MET DST)

Package: (bootdisk)
Version: 1996_6_16

APM support is enabled in the 2.0 kernel on this bootdisk.  Some
"green" motherboards have problems with this, resulting in kernel
oops every time during kernel startup (before mounting the root
filesystem).  Turning off power management in BIOS setup doesn't
change anything - the buggy APM BIOS is still there.

The machine has a 486DX2-66 "green" motherboard with Phoenix BIOS
(more details on request).  Another machine (with Award BIOS) works
fine.  The 1.2.13 kernel from 0.93R6 boots fine (because it has no
APM support).  The EIP value from the oops looks rather strange
(2045:[<0000d9c5>]), but call trace suggests a problem with APM.

The startup messages (may be inaccurate - they had to be written
down manually):

APM BIOS version 1.0  Flags 0x0b  (Driver version 1.2)
Entry f000:dbdf  cseg16 f000  dseg 40
AC unknown, battery status unknown, battery life unknown
Ramdisk ...
hda: ST3660A, 520MB ...
hdb: WDC AC280M, 81MB ...
... other messages ...
FDC 0 is an 8272A.
Unable to handle kernel NULL pointer dereference at virtual address c00004ed
current->tss.cr3 = 00101000, %cr3 = 00101000
*pde = 00102067
*pte = 00000027
Oops: 0000
CPU: 0
EIP: 2045:[<0000d9c5>]
EFLAGS: 00010012
eax: 00000016 ebx:00173700 ecx:00000000 edx:00000000
esi: 0020b838 edi:00000016 ebp:00007e38 esp:00007e30
ds: 2050 es:0000 fs:0000 gs:0000 ss:0018
Process swapper (pid: 1, process nr: 1, stackpage=00007000)
Stack: [snipped, was too much to write down]
Call Trace:
001731fe - apm_get_event
00110018 - wake_up_interruptible
00173700 - do_apm_timer
00173579 - get_event
00173645 - check_events
00173700 - do_apm_timer
00173774 - do_apm_timer
00110834 - timer_bh
00115ec7 - do_bottom_half
0010a40b - handle_bottom_half

Aiee, killing interrupt handler

This problem makes it impossible to install the system on that
particular machine.  I'd suggest to disable APM support in the
default installation kernels - it's not very important to be
"green" during installation, users who need APM can recompile
the kernel later, and APM code causes some kernel bloat too
(RAM is cheap now, but anyway - has anyone tried if it's still
possible to install Debian on machines with only 4MB of RAM?).

Ideally, it should be possible to enable/disable APM support
using boot time parameters.  Currently the only way to disable
APM is to recompile the kernel, which may be difficult if you
don't have a working system first...

Marek