我想知道是否可以修改上述驱动程序以防止适配器使用嵌入式 SRAM,而使用系统 RAM。如果是这样,该怎么做。
我有一台带有 Broadcom Netlink (BCM57780) 以太网适配器的笔记本电脑,该适配器的内存芯片显然有问题:
插入电缆后几秒钟即可完全正常工作(与路由器建立连接并连接到互联网)。然后它停止工作,并立即使整个系统停止。
答案1
这是不可能的,因为使用该 SRAM 的不是驱动程序,而是适配器本身。该SRAM包含以太网芯片的硬件寄存器,驱动程序使用这些硬件寄存器与其进行通信,并且物理上是这样布置的。它并不是这个驱动程序所独有的,它是计算机系统中不同硬件组件之间交互的非常典型的方式。
答案2
我受过教育的最佳猜测:不,不可能完全禁用 SRAM。
快速浏览一下 Linuxtg3
驱动程序代码drivers/net/ethernet/broadcom/tg3.*
就会发现,SRAM 操作无处不在。例如,它甚至似乎包含 MAC 地址:
#define NIC_SRAM_MAC_ADDR_HIGH_MBOX 0x00000c14
#define NIC_SRAM_MAC_ADDR_LOW_MBOX 0x00000c18
我在图片中看到特定的内存地址0x00008000
给你带来了麻烦。根据驱动程序的说法,这确实是MBUF的起始地址。对于我读到的内容这里关于 mbufs 的一点是,它对于执行网络接口卡的任务是绝对必要的。
所以我对此的看法是:更换网卡,它有问题。