NetBSD on VMware

  • 投稿日:
  • by
  • カテゴリ:

vmwareでNetBSDを動かすとネットワークあたりで落ちるので-currentから引っ張ってきて対応。for NetBSD-3.1.1:



*** if_pcn.c.org        Mon Oct 29 15:48:11 2007
--- if_pcn.c    Mon Oct 29 15:56:54 2007
***************
*** 127,132 ****
--- 127,133 ----
   * transmit logic can deal with this, we just are hoping to sneak by.
   */
  #define       PCN_NTXSEGS             16
+ #define       PCN_NTXSEGS_VMWARE      8
  
  #define       PCN_TXQUEUELEN          128
  #define       PCN_TXQUEUELEN_MASK     (PCN_TXQUEUELEN - 1)
***************
*** 712,720 ****
        }
  
        /* Create the transmit buffer DMA maps. */
        for (i = 0; i < PCN_TXQUEUELEN; i++) {
                if ((error = bus_dmamap_create(sc->sc_dmat, MCLBYTES,
!                    PCN_NTXSEGS, MCLBYTES, 0, 0,
                     &sc->sc_txsoft[i].txs_dmamap)) != 0) {
                        printf("%s: unable to create tx DMA map %d, "
                            "error = %d\n", sc->sc_dev.dv_xname, i, error);
--- 713,722 ----
        }
  
        /* Create the transmit buffer DMA maps. */
+       printf("%s: VMware Tx segment count bug detected\n", sc->sc_dev.dv_xname);
        for (i = 0; i < PCN_TXQUEUELEN; i++) {
                if ((error = bus_dmamap_create(sc->sc_dmat, MCLBYTES,
!                    PCN_NTXSEGS_VMWARE, MCLBYTES, 0, 0,
                     &sc->sc_txsoft[i].txs_dmamap)) != 0) {
                        printf("%s: unable to create tx DMA map %d, "
                            "error = %d\n", sc->sc_dev.dv_xname, i, error);