diff --git a/Targets/Bonito3a2h/conf/Bonito.3a2h b/Targets/Bonito3a2h/conf/Bonito.3a2h index 571d745f..fbe81365 100644 --- a/Targets/Bonito3a2h/conf/Bonito.3a2h +++ b/Targets/Bonito3a2h/conf/Bonito.3a2h @@ -175,8 +175,8 @@ pcibr2 at mainbus0 #For the port1 device register pcibr4 at mainbus0 #For the port2 device register pcibr6 at mainbus0 #For the port3 device register pci* at pcibr? -#ppb* at pci? dev ? function ? # PCI-PCI bridges -#pci* at ppb? bus ? +ppb* at pci? dev ? function ? # PCI-PCI bridges +pci* at ppb? bus ? #### SCSI support @@ -192,6 +192,7 @@ pci* at pcibr? # fxp normally only used for debugging (enable/disable both) #fxp0 at pci? dev ? function ? # Intel 82559 Device #inphy* at mii? phy ? # Intel 82555 PHYs +igb* at pci? dev ? function ? # Intel 82576 # rtl* at pci? dev ? function ? #rte* at pci? dev ? function ? #rtk* at pci? dev ? function ? diff --git a/sys/dev/bus_dma.c b/sys/dev/bus_dma.c index c6fb0087..5df8cf4d 100644 --- a/sys/dev/bus_dma.c +++ b/sys/dev/bus_dma.c @@ -294,6 +294,7 @@ _dmamap_load_mbuf(t, map, m0, flags) paddr_t lastaddr; int seg, error, first; struct mbuf *m; + char *tmp; /* * Make sure that on error condition we return "no valid mappings." @@ -312,6 +313,13 @@ _dmamap_load_mbuf(t, map, m0, flags) seg = 0; error = 0; for (m = m0; m != NULL && error == 0; m = m->m_next) { +#ifdef LOONGSON_3A2H + if ((unsigned int )m->m_data & 0xf) { + tmp = (char *)(m->m_data - (((unsigned int )m->m_data) & 0xf)); + memcpy(tmp,m->m_data,m->m_len); + m->m_data = tmp; + } +#endif error = _dmamap_load_buffer(t, map, m->m_data, m->m_len, NULL, flags, &lastaddr, &seg, first); first = 0;