Re: bce(4) on IBM BladeCenter HS22

From: Pyun YongHyeon <pyunyh_at_gmail.com>
Date: Tue, 19 Jan 2010 10:15:18 -0800
On Tue, Jan 19, 2010 at 02:11:49PM +0100, Oliver Fromme wrote:
> Ok, I've got more information.  Maybe this is helpful.
> I enabled BCE_DEBUG and set bce_debug = BCE_INSANE_PHY.
> At first I got a compile error and had to apply this patch:
> 
> --- src/sys/dev/bce/if_bce.c.orig	2009-10-21 14:47:09.000000000 +0200
> +++ src/sys/dev/bce/if_bce.c	2010-01-19 13:13:36.000000000 +0100
> _at__at_ -10038,9 +10045,9 _at__at_
>  	BCE_PRINTF("0x%08X - (0x%06X) state\n",
>  		val, BCE_BC_STATE);
>  
> -	val = bce_shmem_rd(sc, BCE_BC_CONDITION);
> +	val = bce_shmem_rd(sc, BCE_BC_STATE_CONDITION);
>  	BCE_PRINTF("0x%08X - (0x%06X) condition\n",
> -		val, BCE_BC_CONDITION);
> +		val, BCE_BC_STATE_CONDITION);
>  
>  	val = bce_shmem_rd(sc, BCE_BC_STATE_DEBUG_CMD);
>  	BCE_PRINTF("0x%08X - (0x%06X) debug_cmd\n",
> 
> Then I got this output during boot:
> 
> bce0: <Broadcom NetXtreme II BCM5709 1000Base-SX (C0)> mem 0x92000000-0x93ffffff irq 30 at device 0.0 on pci16
> bce0: attempting to allocate 1 MSI vectors (16 supported)
> msi: routing MSI IRQ 260 to local APIC 0 vector 112
> bce0: using IRQ 260 for MSI
> bce0: bce_get_media(enter)
> bce0: Using PHY address 2.
> bce0: bce_get_media(exit)
> bce0: bce_dma_alloc(): status_block_paddr = 0xCE36480
> bce0: bce_dma_alloc(): stats_block_paddr = 0xCE21800
> bce0: bce_dma_alloc(): ctx_paddr[0] = 0xCE77000
> bce0: bce_dma_alloc(): ctx_paddr[1] = 0xCE37000
> bce0: bce_dma_alloc(): tx_bd_chain_paddr[0] = 0x7D9F8000
> bce0: bce_dma_alloc(): tx_bd_chain_paddr[1] = 0x7D9F9000
> bce0: bce_dma_alloc(): rx_bd_chain_paddr[0] = 0x7D9FA000
> bce0: bce_dma_alloc(): rx_bd_chain_paddr[1] = 0x7D9FB000
> bce0: bce_dma_alloc(): Creating rx_mbuf_tag (max size = 0x2400 max segments = 1, max segment size = 0x2400)
> bce0: Invalid PHY address 0 for PHY read!
> bce0: Invalid PHY address 1 for PHY read!
> bce0: bce_miibus_read_reg(): phy = 2, reg = 0x0001 (BMSR   ), val = 0x0
> bce0: Invalid PHY address 3 for PHY read!
> bce0: Invalid PHY address 4 for PHY read!
> bce0: Invalid PHY address 5 for PHY read!
> bce0: Invalid PHY address 6 for PHY read!
> bce0: Invalid PHY address 7 for PHY read!
> bce0: Invalid PHY address 8 for PHY read!
> bce0: Invalid PHY address 9 for PHY read!
> bce0: Invalid PHY address 10 for PHY read!
> bce0: Invalid PHY address 11 for PHY read!
> bce0: Invalid PHY address 12 for PHY read!
> bce0: Invalid PHY address 13 for PHY read!
> bce0: Invalid PHY address 14 for PHY read!
> bce0: Invalid PHY address 15 for PHY read!
> bce0: Invalid PHY address 16 for PHY read!
> bce0: Invalid PHY address 17 for PHY read!
> bce0: Invalid PHY address 18 for PHY read!
> bce0: Invalid PHY address 19 for PHY read!
> bce0: Invalid PHY address 20 for PHY read!
> bce0: Invalid PHY address 21 for PHY read!
> bce0: Invalid PHY address 22 for PHY read!
> bce0: Invalid PHY address 23 for PHY read!
> bce0: Invalid PHY address 24 for PHY read!
> bce0: Invalid PHY address 25 for PHY read!
> bce0: Invalid PHY address 26 for PHY read!
> bce0: Invalid PHY address 27 for PHY read!
> bce0: Invalid PHY address 28 for PHY read!
> bce0: Invalid PHY address 29 for PHY read!
> bce0: Invalid PHY address 30 for PHY read!
> bce0: Invalid PHY address 31 for PHY read!
> bce0: /usr/src/sys/dev/bce/if_bce.c(1098): No PHY found on child MII bus!
> bce0: bce_miibus_read_reg(): phy = 2, reg = 0x0002, val = 0x0000
> PHYID1: 0x0000
> bce0: bce_miibus_read_reg(): phy = 2, reg = 0x0003, val = 0x0000
> PHYID2: 0x0000
> device_attach: bce0 attach returned 6

Thanks for the detailed information. I vaguely guess bce(4) used
wrong PHY address for controller. How about attached patch?
The patch just reset the PHY address to 1, it's not correct way to
set it but just wants to know whether brgphy(4) is attached to the
PHY.

Received on Tue Jan 19 2010 - 17:15:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:00 UTC