I was wondering whether it's possible to modify the said driver in order to prevent adapter from using embedded SRAM, and use system RAM instead. And if so, how to do it.

I have a laptop with Broadcom Netlink (BCM57780) Ethernet adapter, which apparently has bad memory chip:

enter image description here

It's fully functional (establishes connection with router and connects to Internet) for few seconds after plugging in the cable. Then it stops working, and immediately brings whole system to halt.


It is not possible because it's not driver who uses this SRAM, it's adapter itself. This SRAM contains hardware registers of Ethernet chip that are used by driver to communicate with it and is physically arranged this way. And it is not unique for this driver, it's very typical way of interacting between different hardware components in computer system.


My educated best guess: No, it's not possible to completely disable the SRAM.

A quick look in the Linux tg3 driver code drivers/net/ethernet/broadcom/tg3.* reveals that SRAM operations are like everywhere in there. For example, it even appears to contain the MAC address:

#define NIC_SRAM_MAC_ADDR_HIGH_MBOX     0x00000c14
#define NIC_SRAM_MAC_ADDR_LOW_MBOX      0x00000c18

I see in the picture that a specific memory address 0x00008000 is causing you trouble. According to the driver that is indeed the starting address of the MBUF. For what I read here about mbufs is that is absolutely necessary to perform the tasks of a network interface card.

So my view on this: get the NIC replaced, it's faulty.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.