[haiku-bugs] Re: [Haiku] #2998: bcm440x doesn't initialize the NIC

#2998: bcm440x doesn't initialize the NIC
-----------------------------+----------------------------
   Reporter:  cssvb94        |      Owner:  axeld
       Type:  bug            |     Status:  new
   Priority:  normal         |  Milestone:  R1
  Component:  System/Kernel  |    Version:  R1/Development
 Resolution:                 |   Keywords:
 Blocked By:                 |   Blocking:  8016
Has a Patch:  0              |   Platform:  x86
-----------------------------+----------------------------
Changes (by diver):

 * version:  R1/pre-alpha1 => R1/Development
 * component:  Drivers/Network/broadcom440x => System/Kernel


Old description:

> bcm440x driver compiles without a problem and reckognizes the NIC by
> vendorID/productID, but does not initialize the network card.
> I've put some debug messages and found that in b44um.c @ line 119:
>
> if (b44_LM_GetAdapterInfo(&be_b44_dev_cards[sCardsFound].lm_dev) !=
> LM_STATUS_SUCCESS)
>
> b44_LM_GetAdapterInfo() never returns LM_STATUS_SUCCESS.
>
> in b44lm.c @ line 199:
>     /* check sprom version */
>     if ((eprom[126] != 1) && (eprom[126] != 0x10))
>         return LM_STATUS_FAILURE;
> Always return LM_STATUS_FAILURE, I don't know which are the correct
> values or b44_LM_EepromReadBlock(pDevice, 0, eprom_dw, sizeof(eprom_dw));
> doesn't reads the values correctly.
>
> I did the lamest thing and hacked some functions and recompiled to return
> LM_STATUS_SUCCESS. I can see that during ping request NIC card's LEDs are
> flashing, i.e. packets are sent, but DHCP server can not be found and
> even after setting IP address and default GW the other machines in the
> network can not be reached.

New description:

 bcm440x driver compiles without a problem and reckognizes the NIC by
 vendorID/productID, but does not initialize the network card.

 I've put some debug messages and found that in b44um.c @ line 119:
 {{{
 if (b44_LM_GetAdapterInfo(&be_b44_dev_cards[sCardsFound].lm_dev) !=
 LM_STATUS_SUCCESS)

 b44_LM_GetAdapterInfo() never returns LM_STATUS_SUCCESS.

 in b44lm.c @ line 199:
     /* check sprom version */
     if ((eprom[126] != 1) && (eprom[126] != 0x10))
         return LM_STATUS_FAILURE;
 }}}
 Always return LM_STATUS_FAILURE, I don't know which are the correct values
 or b44_LM_EepromReadBlock(pDevice, 0, eprom_dw, sizeof(eprom_dw)); doesn't
 reads the values correctly.

 I did the lamest thing and hacked some functions and recompiled to return
 LM_STATUS_SUCCESS. I can see that during ping request NIC card's LEDs are
 flashing, i.e. packets are sent, but DHCP server can not be found and even
 after setting IP address and default GW the other machines in the network
 can not be reached.

--

Comment:

 Probably a kernel issue.

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/2998#comment:82>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: