On 15/10/15(Thu) 17:23, Miod Vallat wrote: > The following diff attempts to fix two small bge(4) bugs: > > - the first chunk fixes what seems to be a logic error on BCM 5720, > where the code attemps to preserve the state of four bits, but these > have actually already been set in the local variable by the call to > bge_dma_swap_options() immediately above. For some reason the > bge_dma_swap_options() logic does not affect BCM 5762, and I'm not > sure whether this is a bug or not. > > - the second chunk repairs BCM5704 A3 support, as found on some G5 Xserve > (RackMac3,1), by using the proper function pointer to write a magic > register. Apparently, using the wrong function only works once, which > allows the driver to attach, but as soon as you attempt to give it an > IP address, the machine freezes without that change. > > I could only test this on: > > bge0 at pci0 dev 3 function 0 "Broadcom BCM5701" rev 0x15, BCM5701 B5 > (0x105): irq 3, xbow irq 60, address 08:00:69:11:da:82 > > bge0 at pci1 dev 5 function 0 "Broadcom BCM5703X" rev 0x02, BCM5702/5703 A2 > (0x1002): dec 6600 irq 4, address 00:02:a5:c6:11:b3 > > bge0 at pci3 dev 4 function 0 "Broadcom BCM5704C" rev 0x03, BCM5704 A3 > (0x2003): irq 54, address 00:0d:93:9b:f2:94 > > tests on more models would be welcome, as the second chunk affects > almost all models.
Still works on macppc with: bge0 at pci3 dev 4 function 0 "Broadcom BCM5780" rev 0x03, BCM5714 B3 (0x8003): irq 66, address 00:16:cb:39:1d:ba brgphy0 at bge0 phy 1: BCM5780 10/100/1000baseT/SX PHY, rev. 0
