Date: Tue, 04 Feb 1997 18:19:39 -0800 From: David Greenman <dg@root.com> To: "Brian J. McGovern" <mcgovern@spoon.beta.com> Cc: questions@freebsd.org, hackers@freebsd.org Subject: Re: Cyclades driver causes kernel panic Message-ID: <199702050219.SAA03221@root.com> In-Reply-To: Your message of "Tue, 04 Feb 1997 17:54:56 EST." <199702042254.RAA02641@spoon.beta.com>
next in thread | previous in thread | raw e-mail | index | archive | help
>Well, its back, and I'm pulling my hair out of my head. It appears
>that on HPs, Dells, Eclipse machines, and a handful of others,
>the Cyclades driver causes a RAM parity error, causing the kernel
>to panic, and the system to reboot. I've sen this on at least
>a half dozen systems. And I've found about two that work.
>
>Has anyone seen this? Worked around it? I'm kind of at a crunch
>to get some multi-port serial cards working, and I could use all
>the help I can get.
>
>The machines are HP 586/133s and 166s. The dells are Dell 586/100s. The
>only machine I've see it work in for any length of time was a AMD clone 586/100.
>
>I don't think its a RAM parity error, simply because a half-dozen
>machines with EDO Ram can't all be wrong (or i'd see it elsewhere),
>and the DOS drivers tend to get the card up and working on multiple
>ports with no problems.
Install the attached patch...it has fixed the problem for other people.
-DG
David Greenman
Core-team/Principal Architect, The FreeBSD Project
Index: locore.s
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/locore.s,v
retrieving revision 1.52.4.5
diff -c -r1.52.4.5 locore.s
*** locore.s 1996/11/14 15:55:40 1.52.4.5
--- locore.s 1997/01/30 20:17:10
***************
*** 613,619 ****
movl _KPTphys-KERNBASE,%ebx /* base of kernel page tables */
lea (0xa0 * PTESIZE)(%ebx),%ebx /* hardwire ISA hole at KERNBASE + 0xa0000 */
movl $0x100-0xa0,%ecx /* for this many pte s, */
! movl $(0xa0000|PG_V|PG_KW|PG_N),%eax /* valid, kernel read/write, non-cacheable */
movl %ebx,_atdevphys-KERNBASE /* save phys addr of ptes */
fillkpt
--- 613,619 ----
movl _KPTphys-KERNBASE,%ebx /* base of kernel page tables */
lea (0xa0 * PTESIZE)(%ebx),%ebx /* hardwire ISA hole at KERNBASE + 0xa0000 */
movl $0x100-0xa0,%ecx /* for this many pte s, */
! movl $(0xa0000|PG_V|PG_KW),%eax /* valid, kernel read/write, non-cacheable */
movl %ebx,_atdevphys-KERNBASE /* save phys addr of ptes */
fillkpt
Index: pmap.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/i386/pmap.c,v
retrieving revision 1.58.4.6
diff -c -r1.58.4.6 pmap.c
*** pmap.c 1996/06/26 06:18:10 1.58.4.6
--- pmap.c 1997/01/23 22:14:19
***************
*** 2043,2049 ****
for (tmpva = va; size > 0;) {
pte = vtopte(tmpva);
! *pte = (pt_entry_t) ((int) (pa | PG_RW | PG_V | PG_N));
size -= PAGE_SIZE;
tmpva += PAGE_SIZE;
pa += PAGE_SIZE;
--- 2043,2049 ----
for (tmpva = va; size > 0;) {
pte = vtopte(tmpva);
! *pte = (pt_entry_t) ((int) (pa | PG_RW | PG_V));
size -= PAGE_SIZE;
tmpva += PAGE_SIZE;
pa += PAGE_SIZE;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199702050219.SAA03221>
