HomeFreeBSD

Add bge(4) support for big-endian architectures(part 2/2).
rS153626Unpublished

Unpublished Commit ยท Learn More

No further details are available.

Description

Add bge(4) support for big-endian architectures(part 2/2).

  • removed unused funtion bge_handle_events().
  • removed bus_dmamap_destroy(9) calls for DMA maps created by bus_dmamem_alloc(9). This should fix panics seen on sparc64 in device detach.
  • added check for parent DMA tag creation.
  • switched to use __NO_STRICT_ALIGNMENT as bge(4) supports all architectures.
  • added missing bus_dmamap_sync(9) in bge_txeof().
  • added missing bus_dmamap_sync(9) in bge_encap().
  • corrected memory synchronization operation on status block. As the driver just read status block that was DMAed by NIC it should use BUS_DMASYNC_POSTREAD. Likewise the driver does not need to write status block back, so remove unnecessary bus_dmamap_sync(9) calls in bge_intr().
  • corrected memory synchronization operation on RX return ring. The driver only read the block so remove unnecessary bus_dmamap_sync(9) in bge_rxeof().
  • force bus_dmamap_sync(9) for only modified descriptors. Blindly synching all desciptor rings would reduce performance.
  • call bus_dmamap_sync(9) for DMA maps that were modified in bge_rxeof().

Reviewed by: jkim(initial version)
Tested by: glebius(i386), jkim(amd64 initial version)

Details

Provenance
yongariAuthored on
Parents
rS153625: Note that an MFC of a fix to trimdomain(3) may result in changes to host
Branches
Unknown
Tags
Unknown

Event Timeline