summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin <martin@NetBSD.org>2022-05-19 16:24:20 +0000
committermartin <martin@NetBSD.org>2022-05-19 16:24:20 +0000
commit518ee032b03825f9267173caca9fa45c32a4160f (patch)
tree5c608e38faa520822e1cc751a624ed8fea689e3b
parent7013e3d9b4ad18fd5ef728c755f84ab1fa006adf (diff)
Pull up following revision(s) (requested by buhrow in ticket #1456):
sys/dev/pci/if_bge.c: revision 1.353 For chips which contain an ASF/IPMI firmware, instruct the chip to shut the host ASF firmware down when attaching the device so the IPMI BMC can use the same physical port even when NetBSD doesn't have a network configuration on the device. By contrast, when the device gets a network configuration assigned to it and bge_init() is called, the host ASF firmware is brought up so both NetBSD and the IPMI BMc can use the same physical port. This now matches FreeBSD behavior, as well as behavior from NetBSD-5.2. Tested on a Sunfire X2200-M2 system with the following chip: bge1 at pci7 dev 4 function 1: Broadcom BCM5715 Gigabit Ethernet bge1: interrupting at ioapic0 pin 11 bge1: HW config 000000d4, 00000014, 00000000, 00000000 00000000 bge1: ASIC BCM5715 A3 (0x9003), Ethernet address 00:1e:68:XX:XX:XX bge1: setting short Tx thresholds brgphy1 at bge1 phy 1: BCM5714 1000BASE-T/X media interface, rev. 0 brgphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
-rw-r--r--sys/dev/pci/if_bge.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/sys/dev/pci/if_bge.c b/sys/dev/pci/if_bge.c
index 8769d0c4fee..fa0a79f57f9 100644
--- a/sys/dev/pci/if_bge.c
+++ b/sys/dev/pci/if_bge.c
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bge.c,v 1.335.2.1 2019/11/27 11:08:24 martin Exp $ */
+/* $NetBSD: if_bge.c,v 1.335.2.2 2022/05/19 16:24:20 martin Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
@@ -79,7 +79,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.335.2.1 2019/11/27 11:08:24 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.335.2.2 2022/05/19 16:24:20 martin Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -3646,7 +3646,7 @@ bge_attach(device_t parent, device_t self, void *aux)
BGE_SETBIT_FLUSH(sc, BGE_MISC_LOCAL_CTL, BGE_MLC_AUTO_EEPROM);
bge_stop_fw(sc);
- bge_sig_pre_reset(sc, BGE_RESET_START);
+ bge_sig_pre_reset(sc, BGE_RESET_SHUTDOWN);
if (bge_reset(sc))
aprint_error_dev(sc->bge_dev, "chip reset failed\n");
@@ -3680,8 +3680,8 @@ bge_attach(device_t parent, device_t self, void *aux)
"HW config %08x, %08x, %08x, %08x %08x\n",
hwcfg, hwcfg2, hwcfg3, hwcfg4, hwcfg5);
- bge_sig_legacy(sc, BGE_RESET_START);
- bge_sig_post_reset(sc, BGE_RESET_START);
+ bge_sig_legacy(sc, BGE_RESET_SHUTDOWN);
+ bge_sig_post_reset(sc, BGE_RESET_SHUTDOWN);
if (bge_chipinit(sc)) {
aprint_error_dev(sc->bge_dev, "chip initialization failed\n");