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


_______________________________________________
Qemu-devel mailing list
Qemu-devel@nongnu.org
http://lists.nongnu.org/mailman/listinfo/qemu-devel

Reply via email to