xfs
[Top] [All Lists]

486 and Linux-2.3.99pre2+XFS

To: linux-xfs@xxxxxxxxxxx
Subject: 486 and Linux-2.3.99pre2+XFS
From: suzukis@xxxxxxxxxxxxxxxxxxxxxx
Date: Sun, 09 Apr 2000 19:08:02 +0900
Sender: owner-linux-xfs@xxxxxxxxxxx
# For first, I must apologize,
# this is NOT related to the XFS implementation itself,
# this is related to the kernel source publisized by SGI.
# However, I wish, it's not completely-meaningless for
# linux-xfs subscribers who failed to run on 486 PC.

Hello,

There's anybody who makes Linux-XFS kernel (by SGI)
running on 486 PC? Yet I've not succeed to do it.
Even if the kernel can run on 586 (and later) PCs,
it fails on 486. Of course, I choose 386 + math emulation
in kernel configuration. I receive following message.

My environments are almost from RedHat Linux 6.2.

gcc             :egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)
binutils        :binutils-2.9.5.0.22

---------------------------------------------------------------------
zone(0): 4096 pages.
zone(1): 12360 pages.
zone(2): 0 pages.
Initializing CPU#0
Console: colour VGA 80x25
Calibrating delay loop... 33.10 BogoMIPS
Memory: 62076k/65824k available (1336k kernel code, 3360k reserved, 94k data, 
192k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... 
invalid operand: 0000
CPU:    0
EIP:    0010:[<c010b200>]
EFLAGS: 00010206
eax: 00101001   ebx: 00000530   ecx: 000001d9   edx: 00001000
esi: 00000100   edi: 00000014   ebp: 00000001   esp: c0267f98
Process swapper (pid: 0, stackpage=c0267000)
Stack: 00101001 00001000 00000063 c0290003 c026bf1a c0260010 00010206 c026c11f
       00000000 00092000 c0105000 00001ff0 0000f27c 00131560 00000002 00004048
       00000002 00004048 00000348 c02689a5 00000000 c0267ff8 c01f3da0 00000000
Call Trace: [<c0105000>][<c01f3da0>][<c010018d>]
Code 0f 32 03 e0 fe 0f 30 58 5a 59 68 c0 0f 11 cc0 e9 9c fe ff ff
Kernel Panic: Attempted to kill the idle task!
In idle task - not syncing
---------------------------------------------------------------------
The error seems to be related to the SGI's modification of
"page_fault" entry in arch/i386/kernel/entry.S.

diff -x CVS -Nur linux-2.3.99pre2/arch/i386/kernel/entry.S 
linux-sgi/arch/i386/kernel/entry.S
--- linux-2.3.99pre2/arch/i386/kernel/entry.S   Sun Apr  2 16:26:51 2000
+++ linux-sgi/arch/i386/kernel/entry.S  Sat Mar 25 09:41:33 2000
@@ -410,6 +432,16 @@
        jmp error_code
 
 ENTRY(page_fault)
+       pushl %ecx
+       pushl %edx
+       pushl %eax
+       movl  $473,%ecx
+       rdmsr
+       andl  $0xfffffffe,%eax
+       wrmsr
+       popl  %eax
+       popl  %edx
+       popl  %ecx
        pushl $ SYMBOL_NAME(do_page_fault)
        jmp error_code

When I remove above additional instructions, the WP bit
checking succeed. What the above instructions are to do,
and what feature requests them, and it's possible to port
on 386/486 PCs?

suzuki

<Prev in Thread] Current Thread [Next in Thread>