Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 30 Apr 2006 14:09:56 -0700 (PDT)
From:      =?ISO-8859-1?Q?Mikko_Ty=F6l=E4j=E4rvi?= <mbsd@pacbell.net>
To:        Mike Silbersack <silby@silby.com>
Cc:        mobile@freebsd.org
Subject:   Re: if_bfe and > 1 GB of ram is now fixed (fwd)
Message-ID:  <20060430134609.U4092@antec.home>
In-Reply-To: <20060429102214.V9858@odysseus.silby.com>
References:  <20060429102214.V9858@odysseus.silby.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 29 Apr 2006, Mike Silbersack wrote:

>
> Google told me that some of you guys were discussing this issue on 
> freebsd-mobile, so I'm forwarding my post over here.
>
> Mike "Silby" Silbersack
>

Great!  However, it does not quite work for me (on -current as of
yesterday, with version 1.36 of if_bfe.c).  Busdma wants a lock
function:

   panic: driver error: busdma dflt_lock called

Using busdma_lock_mutex() and &sc->bfe_mtx results in watchdog
timeouts, lots of LORs and no network traffic, so some other lock is
apparently needed.

Any ideas?

# kgdb -q /boot/kernel/kernel.symbols vmcore.4
[GDB will not be able to debug user-mode threads:
/usr/lib/libthread_db.so: Undefined symbol "ps_pglobal_lookup"]

Unread portion of the kernel message buffer:
panic: driver error: busdma dflt_lock called
KDB: enter: panic
panic: from debugger
Uptime: 8m53s
Physical memory: 2022 MB
Dumping 66 MB: 51 35 19 3

#0  doadump () at pcpu.h:166
166     pcpu.h: No such file or directory.
         in pcpu.h
(kgdb) bt
#0  doadump () at pcpu.h:166
#1  0xc049b7b6 in boot (howto=260) at
/usr/src/sys/kern/kern_shutdown.c:409
#2  0xc049b278 in panic (fmt=0x0) at
/usr/src/sys/kern/kern_shutdown.c:565
#3  0xc04420c2 in db_panic (addr=-1068778798, have_addr=0, count=-1,
     modif=0xe34a9a98 "") at /usr/src/sys/ddb/db_command.c:426
#4  0xc04424af in db_command_loop () at
/usr/src/sys/ddb/db_command.c:395
#5  0xc04443a4 in db_trap (type=3, code=0) at
/usr/src/sys/ddb/db_main.c:221
#6  0xc04bbf81 in kdb_trap (type=0, code=0, tf=0x0)
     at /usr/src/sys/kern/subr_kdb.c:481
#7  0xc05cf5e5 in trap (frame=
       {tf_fs = -1067188216, tf_es = 40, tf_ds = -481689560, tf_edi =
       256, tf_esi = -1067155904, tf_ebp = -481649552, tf_isp =
       -481649580, tf_ebx = -1067155904, tf_edx = 0, tf_ecx =
       -1067155904, tf_eax = 18, tf_trapno = 3, tf_err = 0, tf_eip =
       -1068778798, tf_cs = 32, tf_eflags = 646, tf_esp = -1067456709,
       tf_ss = -1067465896}) at /usr/src/sys/i386/i386/trap.c:622
#8  0xc05be96a in calltrap () at
/usr/src/sys/i386/i386/exception.s:138
#9  0xc04bbad2 in kdb_enter (msg=0x12 <Address 0x12 out of bounds>)
     at cpufunc.h:60
#10 0xc049b2ef in panic (
     fmt=0xc0647e40 "driver error: busdma dflt_lock called")
     at /usr/src/sys/kern/kern_shutdown.c:549
#11 0xc05b9712 in dflt_lock (arg=0x0, op=BUS_DMA_LOCK)
     at /usr/src/sys/i386/i386/busdma_machdep.c:202
#12 0xc05bbd47 in busdma_swi () at
/usr/src/sys/i386/i386/busdma_machdep.c:1151
#13 0xc0482598 in ithread_loop (arg=0xc4857260)
     at /usr/src/sys/kern/kern_intr.c:662
#14 0xc04812a3 in fork_exit (callout=0xc0482340 <ithread_loop>,
arg=0x12,
     frame=0x12) at /usr/src/sys/kern/kern_fork.c:819
#15 0xc05be9cc in fork_trampoline () at
/usr/src/sys/i386/i386/exception.s:199
(kgdb) q

Dell Inspiron 700m, 2GB ram and this network chip:

ndis0@pci2:5:0: class=0x020000 card=0x018d1028 chip=0x170c14e4 rev=0x02 hdr=0x00
     vendor   = 'Broadcom Corporation'
     device   = 'BCM440x 100Base-TX Fast Ethernet'
     class    = network
     subclass = ethernet

     /Mikko

> ---------- Forwarded message ----------
> Date: Fri, 28 Apr 2006 00:44:18 -0500 (CDT)
> From: Mike Silbersack <silby@silby.com>
> To: stable@freebsd.org
> Subject: if_bfe and > 1 GB of ram is now fixed
>
>
> If anyone was using a bfe card and seeing interrupt storms when you attempted 
> to bring the card up, this is the fix for you.  The driver wasn't previously 
> taking into account the fact that the chipset doesn't like addresses over the 
> 1GB mark.
>
> If you'd like an even quicker fix, just add hw.mem = "1000M" to your 
> loader.conf and reboot. :)
>
> Mike "Silby" Silbersack
>
> ---------- Forwarded message ----------
> Date: Fri, 28 Apr 2006 05:39:58 +0000 (UTC)
> From: Mike Silbersack <silby@FreeBSD.org>
> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
> Subject: cvs commit: src/sys/dev/bfe if_bfe.c
>
> silby       2006-04-28 05:39:58 UTC
>
>  FreeBSD src repository
>
>  Modified files:        (Branch: RELENG_6)
>    sys/dev/bfe          if_bfe.c
>  Log:
>  MFC revs 1.33, 1.34, 1.35, and 1.36.
>
>  These changes allow bfe to work on machines with > 1GB of ram.
>
>  Approved by:    re
>
>  Revision  Changes    Path
>  1.25.2.5  +20 -17    src/sys/dev/bfe/if_bfe.c
> _______________________________________________
> freebsd-mobile@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
> To unsubscribe, send any mail to "freebsd-mobile-unsubscribe@freebsd.org"
>



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