From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1EmgYM-0003gR-M3 for qemu-devel@nongnu.org; Wed, 14 Dec 2005 19:00:58 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1EmgYH-0003TA-A6 for qemu-devel@nongnu.org; Wed, 14 Dec 2005 19:00:54 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1EmgYF-0003Qj-Tq for qemu-devel@nongnu.org; Wed, 14 Dec 2005 19:00:52 -0500 Received: from [65.74.133.11] (helo=mail.codesourcery.com) by monty-python.gnu.org with esmtp (TLS-1.0:DHE_RSA_3DES_EDE_CBC_SHA:24) (Exim 4.34) id 1EmgaP-00020I-4l for qemu-devel@nongnu.org; Wed, 14 Dec 2005 19:03:05 -0500 From: Paul Brook Subject: Re: [Qemu-devel] ARM ethernet fixes Date: Thu, 15 Dec 2005 00:00:05 +0000 References: <20051214221705.GA21427@nevyn.them.org> In-Reply-To: <20051214221705.GA21427@nevyn.them.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200512150000.07159.paul@codesourcery.com> Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org On Wednesday 14 December 2005 22:17, Daniel Jacobowitz wrote: > This is enough to let me use apt-get within qemu-system-arm :-) I'd totally missed that there were _two_ TX FIFOs. > @@ -364,6 +381,8 @@ static void smc91c111_writeb(void *opaqu > return; > case 12: /* Interrupt ACK. */ > s->int_level &= ~(value & 0xd6); > + if (value & INT_TX) > + smc91c111_pop_tx_fifo_done(s); > smc91c111_update(s); > return; I'm fairly sure this is still wrong. We should only clear INT_TX if the tx completion fifo is empty. Maybe have smc91c111_update set the INT_TX bit if tx_fifo_done_len != 0. You also need to make smc91c111_reset, smc91c111_writeb: bank 2 offset 0 cmd 2 (Reset MMU) and smc91c111_writeb: bank 2 offset 0 cmd 7 (Reset TX FIFO) set s->tx_fifo_done_len = 0. Paul