tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: boot problems with bge(4)



On 06/06/11 16:26, SAITOH Masanobu wrote:
Thank you Christoph.

I don't know why the following code fails:

         if (pci_get_capability(sc->sc_pc, sc->sc_pcitag, PCI_CAP_PCIEXPRESS,
                 &sc->bge_pciecap, NULL) != 0) {
                 /* PCIe */
                 sc->bge_flags |= BGE_PCIE;
                 bge_set_max_readrq(sc);
         }

The driver iterates the while-loop in pci_get_capability() three times
and returns 0 then.

Christoph

(2011/06/06 22:13), Christoph Egger wrote:
On 06/03/11 18:37, Christoph Egger wrote:
On 03.06.11 17:55, SAITOH Masanobu wrote:
Hi Christoph.

BCM5785 should not be PCIX chip. It's PCIe chip.

I suspect that your have some local patches for if_bge.c
Could you mail it to me? Please.

Yes, I can do that on monday.

Here we go.

Christoph


Thanks.

(2011/06/03 21:58), Christoph Egger wrote:
On 06/03/11 14:18, Christoph Egger wrote:

Hi,


[...]
bge0 at pci0 dev 20 function 6: Broadcom BCM5785G Gigabit Ethernet
bge0: interrupting at ioapic1 pin 18, event channel 9
bge0: unable to find PCIX capability
bge0: firmware handshake timed out, val = 4b657654
bge0: firmware handshake timed out, val = 4b657654
bge0: ASIC unknown BCM5785 (0x5785041), Ethernet address
00:00:1a:1a:d8:ab
brgphy0 at bge0 phy 1: BCM5785 1000BASE-T media interface, rev. 3
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT,
1000baseT-FD , auto
[...]

I have a local patch to attach brgphy on bge(4) rather ukphy(4) ...


bge0: firmware handshake timed out, val = 4b657654
bge0: firmware handshake timed out, val = 4b657654
bge0: discarding oversize frame (len=-4)
bge0: discarding oversize frame (len=-4)
nfs_boot: trying DHCP/BOOTP
bge0: watchdog timeout -- resetting
bge0: firmware handshake timed out, val = 4b657654
bge0: firmware handshake timed out, val = 4b657654
bge0: discarding oversize frame (len=-4)
bge0: discarding oversize frame (len=-4)
nfs_boot: timeout...
nfs_boot: timeout...


The "discarding oversize frame" message comes from if_ethersubr.c

I just figured out in bge_rxeof():

       m->m_pkthdr.len = m->m_len = cur_rx->bge_len - ETHER_CRC_LEN;

cur_rx->bge_len is 0.

Christoph









Home | Main Index | Thread Index | Old Index