Index: sys/dev/bge/if_bge.c =================================================================== --- sys/dev/bge/if_bge.c (revision 296253) +++ sys/dev/bge/if_bge.c (working copy) @@ -4196,7 +4196,11 @@ bge_reset(struct bge_softc *sc) CSR_WRITE_4(sc, BGE_MARB_MODE, BGE_MARBMODE_ENABLE); /* Fix up byte swapping. */ - CSR_WRITE_4(sc, BGE_MODE_CTL, bge_dma_swap_options(sc)); + if (sc->bge_asf_mode & ASF_STACKUP) + CSR_WRITE_4(sc, BGE_MODE_CTL, bge_dma_swap_options(sc) | + BGE_MODECTL_STACKUP); + else + CSR_WRITE_4(sc, BGE_MODE_CTL, bge_dma_swap_options(sc)); val = CSR_READ_4(sc, BGE_MAC_MODE); val = (val & ~mac_mode_mask) | mac_mode;