Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Oct 2005 19:14:21 +0100 (BST)
From:      Gavin Atkinson <gavin.atkinson@ury.york.ac.uk>
To:        John Nielsen <lists@jnielsen.net>
Cc:        current@freebsd.org
Subject:   Re: Broadcom BCM5751 not attaching on IBM ThinkCentre A51
Message-ID:  <20051008172037.O56323@ury.york.ac.uk>
In-Reply-To: <200510071557.50553.lists@jnielsen.net>
References:  <200510061139.37825.lists@jnielsen.net> <1128704293.29031.5.camel@buffy.york.ac.uk> <200510071557.50553.lists@jnielsen.net>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Fri, 7 Oct 2005, John Nielsen wrote:
> On Friday 07 October 2005 12:58, Gavin Atkinson wrote:
>> Can you post the output of pciconf -l please?
>
> Attached, along with dmesg output and kernel config file (basically a
> stripped-down GENERIC).

Can you try applying the attached patch, and the patch in 
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/79139 and if the latter 
patch makes no difference, show the output of the extra line?

You could also try http://people.freebsd.org/~yongari/bge.patch.0908 - but 
I don't believe it will help in this case. (it's actually to fix endian 
issues on other platforms, but it does change the way the driver talks to 
the chip subtly)

Gavin
[-- Attachment #2 --]
Index: sys/dev/bge/if_bge.c
===================================================================
RCS file: /usr/cvs/src/sys/dev/bge/if_bge.c,v
retrieving revision 1.91.2.2
diff -u -r1.91.2.2 if_bge.c
--- sys/dev/bge/if_bge.c	25 Aug 2005 05:01:05 -0000	1.91.2.2
+++ sys/dev/bge/if_bge.c	8 Oct 2005 17:58:16 -0000
@@ -1197,6 +1197,7 @@
 {
 	int			i;
 	u_int32_t		dma_rw_ctl;
+	u_int32_t		rxcpu_mode;
 
 	/* Set endianness before we access any non-PCI registers. */
 #if BYTE_ORDER == BIG_ENDIAN
@@ -1211,7 +1212,9 @@
 	 * Check the 'ROM failed' bit on the RX CPU to see if
 	 * self-tests passed.
 	 */
-	if (CSR_READ_4(sc, BGE_RXCPU_MODE) & BGE_RXCPUMODE_ROMFAIL) {
+	rxcpu_mode = CSR_READ_4(sc, BGE_RXCPU_MODE);
+	printf("bge%d: register value %x\n", sc->bge_unit, rxcpu_mode);
+	if (rxcpu_mode & BGE_RXCPUMODE_ROMFAIL) {
 		printf("bge%d: RX CPU self-diagnostics failed!\n",
 		    sc->bge_unit);
 		return(ENODEV);

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