Anyone seen 4.8-RELEASE running on a real 386 (not 486 586 etc) ?

Erik Trulsson ertr1013 at student.uu.se
Thu Apr 10 12:38:17 PDT 2003


On Thu, Apr 10, 2003 at 08:43:04PM +0200, Julian Stacey wrote:
> freebsd-hackers@,
> Anyone seen 4.8-RELEASE running on a real 386 processor (not a 486, 586 etc) ?
> 
> I have a 386 that runs 4.7, dmesg below, both GENERIC & my own kernel;
> But it wont boot 4.8 { either generic or my own config } compiled on my
> other 4.8 box.  I tried making with & without /etc/make.conf
> 	CFLAGS =        -m386 -march=i386 -msoft-float -mcpu=i386 -O -pipe
> 	COPTFLAGS=      -m386 -march=i386 -msoft-float -mcpu=i386 -O -pipe
> I tried the /kernel copied from a 4.8 cdrom to hard disk (no cdrom
> drive on the box).  I tried 4.8 boot floppies (to prove its not
> something wrong in hard disc /boot) Every 4.8 kernel crashes during boot -s.
> 
> This 386 box is no bigger than a book, so worth persevering :-)
> "SX 33" is written on chip, though dmesg reports "DX".
> 
> I recall 386 support was dropped in 5.0, but presume not dropped in 4.8,
> ( I don't see any signs in /usr/share/mk comparing 4.7 & 4.8 )
> The 4.8 cdrom /[A-Z]* files say i386 is still supported.
> 
> I removed the only card in the box (a 3com ISA ethernet jumperless) - 
> it still wouldnt boot, so put ethernet card back in, as not the problem.
> 
> I compiled a kernel with ddb,  Results copied by hand as no serial for
> remote gdb.t present
> 
> Ideas or solutions anyone ?
> 
> 4.8 ddb:
>    Fatal trap 1: priveleged instruction fault while in kernel mode
>    instruction pointer = 0x8:0xc02695a0
>    stack pointewr      = 0x10:0xc0379fcc
>    frame pointer       = 0x10:0xc0379fcc
>    code segment	    = base 0x0, limit 0xfffff, type 0x1b
>    		    = DPL 0, pres 1, def 32 1, gran 1
>    processor eflags    = interrupt enabled, resume, IOPL = 0
>    current process     = Idle
>    interrupt mask      = net tty bio cam
>    kernel: type 1 trap, code=0
>    stopped at 0xc02695a0:     invlpg  0(%ecx)

Try the following patch.
Makes my 386sx/33 work fine at least.
(Without it I get the same panic as you do.)


===================================================================
RCS file: /ncvs/src/sys/i386/i386/identcpu.c,v
retrieving revision 1.80.2.14
diff -u -r1.80.2.14 identcpu.c
--- sys/i386/i386/identcpu.c    22 Jan 2003 20:14:52 -0000
1.80.2.14
+++ sys/i386/i386/identcpu.c    13 Mar 2003 14:55:52 -0000
@@ -80,7 +80,7 @@
 static void print_transmeta_info(void);
 static void setup_tmx86_longrun(void);
-int    cpu_class;
+int    cpu_class=CPUCLASS_386;
 u_int  cpu_exthigh;            /* Highest arg to extended CPUID */
 u_int  cyrix_did;              /* Device ID of Cyrix CPU */
 char machine[] = "i386";




-- 
<Insert your favourite quote here.>
Erik Trulsson
ertr1013 at student.uu.se


More information about the freebsd-hackers mailing list