Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Apr 2003 01:00:54 +0200 (CEST)
From:      Julian Stacey <jhs@berklix.com>
To:        freebsd-hackers@freebsd.org
Cc:        Michael Elbel <mwe@consol.de>
Subject:   Re: Anyone seen 4.8-RELEASE running on a real 386 (not 486 586 etc) ? 
Message-ID:  <200304132300.h3DN0sM91460@flip.jhs.private>
In-Reply-To: Message from Erik Trulsson <ertr1013@student.uu.se>  <20030410193810.GA52024@falcon.midgard.homeip.net> 

next in thread | previous in thread | raw e-mail | index | archive | help
Erik Trulsson wrote:
> On Thu, Apr 10, 2003 at 08:43:04PM +0200, Julian Stacey wrote:
> > Anyone seen 4.8-RELEASE running on a real 386 processor (not a 486, 586 etc
> 
> Try the following patch.
> Makes my 386sx/33 work fine at least.
> (Without it I get the same panic as you do.)

This works :-)  I'm now running 4.8, Thanks !

-----------

> From: John Baldwin <jhb@FreeBSD.org>

> > Try the following patch.
> > Makes my 386sx/33 work fine at least.
> > (Without it I get the same panic as you do.)
> 
> Oh my, I hope that isn't it.  If so it's my fault. :(
> 
> Hmm, can you try this patch instead?
> 
> http://www.FreeBSD.org/~jhb/patches/4x_386.patch

Thanks, but these patches Did Not fix the problem. They also did not apply
cleanly to 4.8, perhaps made against current or stable ?
whatever, it was easy to see what you intended, so I produced a 4.8
compliant set, including both Erik's & yours commented out at:

http://www.berklix.com/~jhs/src/bsd/fixes/freebsd/src/gen/sys/i386/i386/i386_cpu.REL=4.8-RELEASE.diff

I'm not sure if Erik's one line patch is good to commit for all
processors (I haven't read the logic, just know i fixes my 386).
If anyone want to send me new patches to test before they commit,
feel free.  Ideally that would be in next day or so, before I return
machine to remote service (where boot failure is inconvenient, but
I could test later too if necessary).

--------------

> From: Peter Jeremy <peterjeremy@optushome.com.au>
> 
> AFAIK, the only difference is external bus width (SX is 16 bit, DX is
> 32 bit).  It's only 486 where the SX means half the CPU doesn't work.

Thanks, I'd forgotten that.

> >I recall 386 support was dropped in 5.0, but presume not dropped in 4.8,
> 
> It's only dropped in 5.0 GENERIC - you should still be able to compile
> your own kernel with I386_CPU specified (and all other CPU options removed).

I built one, but it hung, but no problem, it probably wanted 5 instead
of 4 type entries in /dev & /boot, maybe later I'll try 5 on that
box, but for now I want it as a 4 service machine so dont want to
change dev & boot, thanks though.

> More useful would be a debug kernel and a crash dump.  You can then
> use gdb on it and find the offending line of source code.

Yes, sorry I missed that.

> >   Fatal trap 1: priveleged instruction fault while in kernel mode
> >   instruction pointer = 0x8:0xc02695a0
> 
> If you can't get a crash dump, do an 'nm -n' on the kernel and find
> the function containing this address.

Not sure what the 0x8: means (I hated segmented 8086 asm from day one :-)

c02693cc T pmap_mincore
c02694a8 T pmap_activate
c026950c T pmap_addr_hint
c0269534 T pmap_pte
c0269570 T pmap_kenter
c02695a8 T pmap_kremove
c02695d8 T procfs_read_regs
c02695f8 T procfs_write_regs
c0269618 T procfs_read_dbregs

> >   stopped at 0xc02695a0:     invlpg  0(%ecx)
> 
> invlpg doesn't exist on i386 - you have to invalidate the entire TLB.
> It looks like someone forgot to protect an invlpg instruction.

OK, Erik & John seem to have a handle on this, thanks.

-
Julian Stacey       Freelance Systems Engineer, Unix & Net Consultant, Munich.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200304132300.h3DN0sM91460>