diff --git a/src/network/net_l80225.c b/src/network/net_l80225.c index 341799e57..6493edec6 100644 --- a/src/network/net_l80225.c +++ b/src/network/net_l80225.c @@ -34,17 +34,8 @@ l80225_mii_readw(uint16_t *regs, uint16_t addr) return 0; } -/* Readonly mask for MDI (PHY) registers */ -static const uint16_t tulip_mdi_mask[] = { - 0x0000, 0xffff, 0xffff, 0xffff, 0xc01f, 0xffff, 0xffff, 0x0000, - 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0fff, 0x0000, 0xffff, 0xffff, 0x0000, 0xffff, 0xffff, 0xffff, - 0xffff, 0xffff, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - -}; - void l80225_mii_writew(uint16_t *regs, uint16_t addr, uint16_t val) { - regs[addr] = val & tulip_mdi_mask[addr]; + regs[addr] = val; } diff --git a/src/network/net_tulip.c b/src/network/net_tulip.c index f93ac8767..a575a4cfb 100644 --- a/src/network/net_tulip.c +++ b/src/network/net_tulip.c @@ -346,10 +346,10 @@ static void tulip_desc_read(TULIPState *s, uint32_t p, struct tulip_descriptor *desc) { - dma_bm_read(p , (uint8_t *) &(desc->status) , 4, 4); - dma_bm_read(p + 4, (uint8_t *) &(desc->control) , 4, 4); - dma_bm_read(p + 8, (uint8_t *) &(desc->buf_addr1), 4, 4); - dma_bm_read(p + 12, (uint8_t *) &(desc->buf_addr2), 4, 4); + desc->status = mem_readl_phys(p); + desc->control = mem_readl_phys(p + 4); + desc->buf_addr1 = mem_readl_phys(p + 8); + desc->buf_addr2 = mem_readl_phys(p + 12); if (s->csr[0] & CSR0_DBO) { bswap32s(&desc->status); @@ -364,20 +364,15 @@ tulip_desc_write(TULIPState *s, uint32_t p, struct tulip_descriptor *desc) { if (s->csr[0] & CSR0_DBO) { - uint32_t status = bswap32(desc->status); - uint32_t control = bswap32(desc->control); - uint32_t buf_addr1 = bswap32(desc->buf_addr1); - uint32_t buf_addr2 = bswap32(desc->buf_addr2); - - dma_bm_write(p , (uint8_t *) &status , 4, 4); - dma_bm_write(p + 4, (uint8_t *) &control , 4, 4); - dma_bm_write(p + 8, (uint8_t *) &buf_addr1, 4, 4); - dma_bm_write(p + 12, (uint8_t *) &buf_addr2, 4, 4); + mem_writel_phys(p, bswap32(desc->status)); + mem_writel_phys(p + 4, bswap32(desc->control)); + mem_writel_phys(p + 8, bswap32(desc->buf_addr1)); + mem_writel_phys(p + 12, bswap32(desc->buf_addr2)); } else { - dma_bm_write(p , (uint8_t *) &(desc->status) , 4, 4); - dma_bm_write(p + 4, (uint8_t *) &(desc->control) , 4, 4); - dma_bm_write(p + 8, (uint8_t *) &(desc->buf_addr1), 4, 4); - dma_bm_write(p + 12, (uint8_t *) &(desc->buf_addr2), 4, 4); + mem_writel_phys(p, desc->status); + mem_writel_phys(p + 4, desc->control); + mem_writel_phys(p + 8, desc->buf_addr1); + mem_writel_phys(p + 12, desc->buf_addr2); } } @@ -438,10 +433,6 @@ tulip_copy_rx_bytes(TULIPState *s, struct tulip_descriptor *desc) len = s->rx_frame_len; } - if (s->rx_frame_len + len > sizeof(s->rx_frame)) { - return; - } - dma_bm_write(desc->buf_addr1, s->rx_frame + (s->rx_frame_size - s->rx_frame_len), len, 4); s->rx_frame_len -= len; } @@ -453,10 +444,6 @@ tulip_copy_rx_bytes(TULIPState *s, struct tulip_descriptor *desc) len = s->rx_frame_len; } - if (s->rx_frame_len + len > sizeof(s->rx_frame)) { - return; - } - dma_bm_write(desc->buf_addr2, s->rx_frame + (s->rx_frame_size - s->rx_frame_len), len, 4); s->rx_frame_len -= len; } @@ -581,7 +568,7 @@ static const uint16_t tulip_mdi_default[] = { 0x0600, 0x0001, 0x0000, - 0x3b40, + 0x0000, 0x0000, 0x0000, 0x0000,