stop() wrbcr(20, 2) # reset wrcsr(3, 0) # byte swapping mode wrbcr(2, rdbcr(2) | 2) # Autoneg memsize = 32 * 1024 bufsize = 1536 nrxbufs = 16 ntxbufs = 4 logging.debug("DMA memory: size = %#x (TX buffers: %u, RX buffers: %u)" % (memsize, ntxbufs, nrxbufs)) mem_tag = busdma.tag_create(dev, 16, 0, 0xffffffff, memsize, 1, memsize, 0, 0) dmamem = busdma.mem_alloc(mem_tag, 0) busseg = busdma.md_first_seg(dmamem, busdma.MD_BUS_SPACE) cpuseg = busdma.md_first_seg(dmamem, busdma.MD_VIRT_SPACE) busaddr = busdma.seg_get_addr(busseg) cpuaddr = busdma.seg_get_addr(cpuseg) logging.debug("DMA memory: CPU address: %#x, device address: %#x" % (cpuaddr, busaddr)) addr_initblock = cpuaddr addr_rxdesc = addr_initblock + ctypes.sizeof(initblock) addr_txdesc = addr_rxdesc + ctypes.sizeof(bufdesc) * nrxbufs addr_rxbufs = addr_txdesc + ctypes.sizeof(bufdesc) * ntxbufs addr_txbufs = addr_rxbufs + bufsize * nrxbufs ib = initblock.from_address(addr_initblock) ib.mode = ((ffs(ntxbufs) - 1) << 28) | ((ffs(nrxbufs) - 1) << 20) for i in xrange(len(mac)):
stop() wrbcr(20, 2) # reset wrcsr(3, 0) # byte swapping mode wrbcr(2, rdbcr(2) | 2) # Autoneg memsize = 32*1024 bufsize = 1536 nrxbufs = 16 ntxbufs = 4 logging.debug("DMA memory: size = %#x (TX buffers: %u, RX buffers: %u)" % (memsize, ntxbufs, nrxbufs)) mem_tag = busdma.tag_create(dev, 16, 0, 0xffffffff, memsize, 1, memsize, 0, 0) dmamem = busdma.mem_alloc(mem_tag, 0) busseg = busdma.md_first_seg(dmamem, busdma.MD_BUS_SPACE) cpuseg = busdma.md_first_seg(dmamem, busdma.MD_VIRT_SPACE) busaddr = busdma.seg_get_addr(busseg) cpuaddr = busdma.seg_get_addr(cpuseg) logging.debug("DMA memory: CPU address: %#x, device address: %#x" % (cpuaddr, busaddr)) addr_initblock = cpuaddr addr_rxdesc = addr_initblock + ctypes.sizeof(initblock) addr_txdesc = addr_rxdesc + ctypes.sizeof(bufdesc) * nrxbufs addr_rxbufs = addr_txdesc + ctypes.sizeof(bufdesc) * ntxbufs addr_txbufs = addr_rxbufs + bufsize * nrxbufs ib = initblock.from_address(addr_initblock) ib.mode = ((ffs(ntxbufs) - 1) << 28) | ((ffs(nrxbufs) - 1) << 20) for i in xrange(len(mac)):