qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] playing with qemu's 8139 nic and FreeBSD (loopback mode missing?)
@ 2006-04-27 20:37 Juergen Lock
  2006-04-28 16:25 ` [Qemu-devel] " Igor Kovalenko
  0 siblings, 1 reply; 6+ messages in thread
From: Juergen Lock @ 2006-04-27 20:37 UTC (permalink / raw)
  To: qemu-devel, freebsd-emulation; +Cc: Igor Kovalenko

I played with
	qemu -monitor stdio -m 256 -cdrom 6.1-RC1-i386-disc1.iso -usb -soundhw es1370 -kernel-kqemu -net nic,model=rtl8139 -net user
and got it as far as
	re0: diagnostic failed, failed to receive packet in loopback mode
(followed by a panic :) with the (experimental) patches below.

 Anyone in the mood to implement loopback mode for this nic?

 Hmm actually...  I just found the original posting in the archive,
is C+ mode implemented now?  If not re is probably not what I want,
but the rl driver that it attaches without that #if 0'd (now) hunk
below doesnt seem to be able to get data thru either and I get
	rl0: watchdog timeout
in dmesg, which usually means the driver doesnt receive interrupts.

 What the heck, I'll append a log of a run just doing in fixit->cdrom:
	ifconfig rl0 10.0.2.15
and then exiting (which is enough to trigger the watchdog timeout...)

Index: qemu/hw/rtl8139.c
@@ -31,6 +31,9 @@
 
 /* debug RTL8139 card */
 //#define DEBUG_RTL8139 1
+#if 1
+#define DEBUG_RTL8139 1
+#endif
 
 /* debug RTL8139 card C+ mode only */
 //#define DEBUG_RTL8139CP 1
@@ -512,6 +516,19 @@
             eeprom->output <<= 1;
             if (eeprom->tick == 16)
             {
+#if 1
+		// the FreeBSD drivers (rl and re) don't explicitly toggle
+		// CS between reads (or does setting Cfg9346 to 0 count too?),
+		// so we need to enter wait-for-command state here
+                eeprom->mode = Chip9346_enter_command_mode;
+                eeprom->input = 0;
+                eeprom->tick = 0;
+
+#if defined(DEBUG_RTL8139)
+                printf("eeprom: +++ end of read, awaiting next command\n");
+#endif
+#else
+		// original behaviour
                 ++eeprom->address;
                 eeprom->address &= EEPROM_9346_ADDR_MASK;
                 eeprom->output = eeprom->contents[eeprom->address];
@@ -521,6 +538,7 @@
                 printf("eeprom: +++ read next address 0x%02x data=0x%04x\n",
                        eeprom->address, eeprom->output);
 #endif
+#endif
             }
             break;
 
@@ -1103,6 +1121,11 @@
 
     /* prepare eeprom */
     s->eeprom.contents[0] = 0x8129;
+#if 1
+    // PCI vendor and device ID should be mirrored here
+    s->eeprom.contents[1] = 0x10ec;
+    s->eeprom.contents[2] = 0x8139;
+#endif
     memcpy(&s->eeprom.contents[7], s->macaddr, 6);
 
     /* mark all status registers as owned by host */
@@ -1130,6 +1153,14 @@
     s->clock_enabled = 0;
 #else
     s->TxConfig |= HW_REVID(1, 1, 1, 0, 1, 0, 0); // RTL-8139C HasLWake
+#if 0
+    // apparently bit 23 should be part of HW_REVID too
+    // [this, together with the other changes, make FreeBSD guests detect
+    // the nic as re instead of rl, but the probe fails (and I get a panic)
+    // because it does a test in loopback mode (TxLoopBack) which apparently
+    // is not implemented here yet]
+    s->TxConfig |= 0x800000;
+#endif
     s->clock_enabled = 1;
 #endif
 
$ qemu -monitor stdio -m 2256 -cdrom 6.1-RC1-i386-disc1.iso -usb -soundhw es1370 -net nic,model=rtl8139 -net user
QEMU 0.8.0 monitor - type 'help' for more information
(qemu) RTL8139: Set IRQ line 16 to 0 (0000 0000)
RTL8139: TxConfig read val=0x74000000
RTL8139: TxConfig read val=0x74000000
RTL8139: TxConfig read val=0x74000000
RTL8139: ChipCmd write val=0x00000010
RTL8139: ChipCmd reset
RTL8139: Set IRQ line 16 to 0 (0000 0000)
RTL8139: receiver buffer is empty
RTL8139: ChipCmd read val=0x0001
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
=== eeprom: begin access, enter command mode
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 3 eedi=1 eedo=0
eeprom: +++ synchronized, begin command read
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 1 eedi=1 eedo=0
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 3 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 5 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 7 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 8 eedi=0 eedo=0
RTL8139: eeprom command 0x80
RTL8139: eeprom read from address 0x00 data=0x8129
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 2 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 3 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 5 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 7 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 8 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 9 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 10 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 11 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 12 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 13 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 14 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 15 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 16 eedi=0 eedo=0
eeprom: +++ end of read, awaiting next command
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 write val=0x00
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 1 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 2 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8f
eeprom: +++ wires CS=1 SK=1 DI=1 DO=1
eeprom: tick 3 eedi=1 eedo=1
eeprom: +++ synchronized, begin command read
RTL8139: Cfg9346 read val=0x8f
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8f
eeprom: +++ wires CS=1 SK=1 DI=1 DO=1
eeprom: tick 1 eedi=1 eedo=1
RTL8139: Cfg9346 read val=0x8f
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 2 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 3 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 4 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 5 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8f
eeprom: +++ wires CS=1 SK=1 DI=1 DO=1
eeprom: tick 6 eedi=1 eedo=1
RTL8139: Cfg9346 read val=0x8f
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8f
eeprom: +++ wires CS=1 SK=1 DI=1 DO=1
eeprom: tick 7 eedi=1 eedo=1
RTL8139: Cfg9346 read val=0x8f
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8b
eeprom: +++ wires CS=1 SK=0 DI=1 DO=1
RTL8139: Cfg9346 read val=0x8b
RTL8139: Cfg9346 write val=0x8f
eeprom: +++ wires CS=1 SK=1 DI=1 DO=1
eeprom: tick 8 eedi=1 eedo=1
RTL8139: eeprom command 0x87
RTL8139: eeprom read from address 0x07 data=0x5452
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 3 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 5 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 7 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 8 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 9 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 10 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 11 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 12 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 13 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 14 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 15 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 16 eedi=0 eedo=1
eeprom: +++ end of read, awaiting next command
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 write val=0x00
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 3 eedi=1 eedo=0
eeprom: +++ synchronized, begin command read
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 1 eedi=1 eedo=0
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 3 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 5 eedi=1 eedo=0
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 7 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 8 eedi=0 eedo=0
RTL8139: eeprom command 0x88
RTL8139: eeprom read from address 0x08 data=0x1200
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 3 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 5 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 7 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 8 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 9 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 10 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 11 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 12 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 13 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 14 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 15 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 16 eedi=0 eedo=0
eeprom: +++ end of read, awaiting next command
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 write val=0x00
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 3 eedi=1 eedo=0
eeprom: +++ synchronized, begin command read
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 1 eedi=1 eedo=0
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 3 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 5 eedi=1 eedo=0
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 7 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 8 eedi=1 eedo=0
RTL8139: eeprom command 0x89
RTL8139: eeprom read from address 0x09 data=0x5634
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 3 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 5 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 7 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 8 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 9 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 10 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 11 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 12 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 13 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 14 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 15 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 16 eedi=0 eedo=0
eeprom: +++ end of read, awaiting next command
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 write val=0x00
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 3 eedi=1 eedo=0
eeprom: +++ synchronized, begin command read
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 1 eedi=1 eedo=0
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 2 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 3 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 5 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x8e
eeprom: +++ wires CS=1 SK=1 DI=1 DO=0
eeprom: tick 7 eedi=1 eedo=0
RTL8139: Cfg9346 read val=0x8e
RTL8139: Cfg9346 write val=0x8a
eeprom: +++ wires CS=1 SK=0 DI=1 DO=0
RTL8139: Cfg9346 read val=0x8a
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 8 eedi=0 eedo=0
RTL8139: eeprom command 0x82
RTL8139: eeprom read from address 0x02 data=0x8139
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 1 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 2 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 3 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 4 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 5 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 6 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 7 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 8 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 9 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 10 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 11 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 12 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 13 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 read val=0x89
RTL8139: Cfg9346 write val=0x8d
eeprom: +++ wires CS=1 SK=1 DI=0 DO=1
eeprom: tick 14 eedi=0 eedo=1
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 15 eedi=0 eedo=0
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 read val=0x8c
RTL8139: Cfg9346 write val=0x88
eeprom: +++ wires CS=1 SK=0 DI=0 DO=0
RTL8139: Cfg9346 read val=0x88
RTL8139: Cfg9346 write val=0x8c
eeprom: +++ wires CS=1 SK=1 DI=0 DO=0
eeprom: tick 16 eedi=0 eedo=0
eeprom: +++ end of read, awaiting next command
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 read val=0x8d
RTL8139: Cfg9346 write val=0x89
eeprom: +++ wires CS=1 SK=0 DI=0 DO=1
RTL8139: Cfg9346 write val=0x00
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register write(w) val=0x8000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: ChipCmd write val=0x00000000
RTL8139: IntrMask write(w) val=0x0000
RTL8139: Set IRQ line 16 to 0 (0000 0000)
RTL8139: Cfg9346 write val=0xc0
RTL8139: ioport write(l) addr=0x0 val=0x12005452 via write(b)
RTL8139: ioport write(l) addr=0x4 val=0x00005634 via write(b)
RTL8139: Cfg9346 write val=0x00
RTL8139: RxBuf write val=0x0f9dc008
RTL8139: TxAddr write offset=0x0 val=0x00000000
RTL8139: TxAddr write offset=0x4 val=0x00000000
RTL8139: TxAddr write offset=0x8 val=0x00000000
RTL8139: TxAddr write offset=0xc val=0x00000000
RTL8139: ChipCmd write val=0x0000000c
RTL8139: ChipCmd enable receiver
RTL8139: ChipCmd enable transmitter
RTL8139: TxConfig write val=0x03000700
RTL8139: RxConfig write val=0x0000ff00
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig read val=0x0000ff00
RTL8139: RxConfig write val=0x0000ff02
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig write val=0x0000ff0a
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig read val=0x0000ff0a
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig write val=0x0000ff0a
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: IntrMask write(w) val=0xc07f
RTL8139: Set IRQ line 16 to 0 (0000 c07f)
RTL8139: RxMissed clearing on write
RTL8139: ChipCmd write val=0x0000000c
RTL8139: ChipCmd enable receiver
RTL8139: ChipCmd enable transmitter
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: Config1 write val=0x60
RTL8139: Configuration registers are write-protected
RTL8139: TxAddr write offset=0x0 val=0x0f9b7530
RTL8139: TxStatus write offset=0x0 val=0x0003003c descriptor=0
RTL8139: +++ transmitting from descriptor 0
RTL8139: +++ transmit reading 60 bytes from host memory at 0x0f9b7530
RTL8139: +++ transmitted 60 bytes from descriptor 0
RTL8139: Set IRQ line 16 to 1 (0004 c07f)
RTL8139: IntrStatus read(w) val=0x0004
RTL8139: IntrStatus write(w) val=0x0004
RTL8139: Set IRQ line 16 to 0 (0000 c07f)
RTL8139: Set IRQ line 16 to 0 (0000 c07f)
RTL8139: TxStatus read offset=0x0 val=0x0003a03c
RTL8139: IntrStatus read(w) val=0x0000
RTL8139: RxConfig read val=0x0000ff0a
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig write val=0x0000ff0e
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: ioport write(l) addr=0x8 val=0x80000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: ChipCmd write val=0x00000000
RTL8139: IntrMask write(w) val=0x0000
RTL8139: Set IRQ line 16 to 0 (0000 0000)
RTL8139: Cfg9346 write val=0xc0
RTL8139: ioport write(l) addr=0x0 val=0x12005452 via write(b)
RTL8139: ioport write(l) addr=0x4 val=0x00005634 via write(b)
RTL8139: Cfg9346 write val=0x00
RTL8139: RxBuf write val=0x0f9dc008
RTL8139: TxAddr write offset=0x0 val=0x00000000
RTL8139: TxAddr write offset=0x4 val=0x00000000
RTL8139: TxAddr write offset=0x8 val=0x00000000
RTL8139: TxAddr write offset=0xc val=0x00000000
RTL8139: ChipCmd write val=0x0000000c
RTL8139: ChipCmd enable receiver
RTL8139: ChipCmd enable transmitter
RTL8139: TxConfig write val=0x03000700
RTL8139: RxConfig write val=0x0000ff00
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig read val=0x0000ff00
RTL8139: RxConfig write val=0x0000ff02
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig write val=0x0000ff0a
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig read val=0x0000ff0a
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig write val=0x0000ff0e
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: ioport write(l) addr=0x8 val=0x80000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: IntrMask write(w) val=0xc07f
RTL8139: Set IRQ line 16 to 0 (0000 c07f)
RTL8139: RxMissed clearing on write
RTL8139: ChipCmd write val=0x0000000c
RTL8139: ChipCmd enable receiver
RTL8139: ChipCmd enable transmitter
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: Config1 write val=0x60
RTL8139: Configuration registers are write-protected
RTL8139: RxConfig read val=0x0000ff0e
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig write val=0x0000ff0e
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: ioport write(l) addr=0x8 val=0x80000004 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig read val=0x0000ff0e
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig write val=0x0000ff0e
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: ioport write(l) addr=0x8 val=0x80000004 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x40000000 via write(b)
RTL8139: RxConfig read val=0x0000ff0e
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig write val=0x0000ff0e
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: ioport write(l) addr=0x8 val=0x80000004 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x40000000 via write(b)
RTL8139: TxAddr write offset=0x0 val=0x0f9b7330
RTL8139: TxStatus write offset=0x0 val=0x0003004e descriptor=0
RTL8139: +++ cannot transmit from descriptor 1: owned by host (00002000)
RTL8139: transmitter queue stalled, current TxDesc = 1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: TxAddr write offset=0x4 val=0x0f9b6e30
RTL8139: TxStatus write offset=0x4 val=0x00030056 descriptor=1
RTL8139: +++ transmitting from descriptor 1
RTL8139: +++ transmit reading 86 bytes from host memory at 0x0f9b6e30
RTL8139: +++ transmitted 86 bytes from descriptor 1
RTL8139: Set IRQ line 16 to 1 (0004 c07f)
RTL8139: IntrStatus read(w) val=0x0004
RTL8139: IntrStatus write(w) val=0x0004
RTL8139: Set IRQ line 16 to 0 (0000 c07f)
RTL8139: Set IRQ line 16 to 0 (0000 c07f)
RTL8139: TxStatus read offset=0x0 val=0x0003004e
RTL8139: IntrStatus read(w) val=0x0000
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: TxStatus read offset=0x0 val=0x0003004e
RTL8139: RxBufPtr read val=0xfffffff0
RTL8139: ioport read(w) addr=0x3a via read(b)
RTL8139: not implemented read(b) addr=0x3a
RTL8139: not implemented read(b) addr=0x3b
RTL8139: ioport read(w) addr=0x3a val=0x0000
RTL8139: receiver buffer is empty
RTL8139: ChipCmd read val=0x000d
RTL8139: ChipCmd write val=0x00000000
RTL8139: IntrMask write(w) val=0x0000
RTL8139: Set IRQ line 16 to 0 (0000 0000)
RTL8139: TxAddr write offset=0x0 val=0x00000000
RTL8139: TxAddr write offset=0x4 val=0x00000000
RTL8139: Cfg9346 write val=0xc0
RTL8139: ioport write(l) addr=0x0 val=0x12005452 via write(b)
RTL8139: ioport write(l) addr=0x4 val=0x00005634 via write(b)
RTL8139: Cfg9346 write val=0x00
RTL8139: RxBuf write val=0x0f9dc008
RTL8139: TxAddr write offset=0x0 val=0x00000000
RTL8139: TxAddr write offset=0x4 val=0x00000000
RTL8139: TxAddr write offset=0x8 val=0x00000000
RTL8139: TxAddr write offset=0xc val=0x00000000
RTL8139: ChipCmd write val=0x0000000c
RTL8139: ChipCmd enable receiver
RTL8139: ChipCmd enable transmitter
RTL8139: TxConfig write val=0x03000700
RTL8139: RxConfig write val=0x0000ff00
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig read val=0x0000ff00
RTL8139: RxConfig write val=0x0000ff02
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig write val=0x0000ff0a
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: RxConfig read val=0x0000ff0a
RTL8139: ioport write(l) addr=0x8 val=0x00000000 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x00000000 via write(b)
RTL8139: RxConfig write val=0x0000ff0e
RTL8139: RxConfig write reset buffer size to 65536
RTL8139: ioport write(l) addr=0x8 val=0x80000004 via write(b)
RTL8139: ioport write(l) addr=0xc val=0x40000000 via write(b)
RTL8139: IntrMask write(w) val=0xc07f
RTL8139: Set IRQ line 16 to 0 (0000 c07f)
RTL8139: RxMissed clearing on write
RTL8139: ChipCmd write val=0x0000000c
RTL8139: ChipCmd enable receiver
RTL8139: ChipCmd enable transmitterRTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeStatus register read(w) val=0x782d
RTL8139: BasicModeCtrl register read(w) val=0x9000
RTL8139: NWayAdvert read(w) val=0x05e1
RTL8139: NWayLPAR read(w) val=0x05e1
RTL8139: ChipCmd write val=0x00000000
RTL8139: IntrMask write(w) val=0x0000
RTL8139: Set IRQ line 16 to 0 (0000 0000)
q

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] Re: playing with qemu's 8139 nic and FreeBSD (loopback mode missing?)
  2006-04-27 20:37 [Qemu-devel] playing with qemu's 8139 nic and FreeBSD (loopback mode missing?) Juergen Lock
@ 2006-04-28 16:25 ` Igor Kovalenko
  2006-04-28 22:11   ` Juergen Lock
  0 siblings, 1 reply; 6+ messages in thread
From: Igor Kovalenko @ 2006-04-28 16:25 UTC (permalink / raw)
  To: qemu-devel, freebsd-emulation, Igor Kovalenko

Juergen Lock wrote:
> I played with
> 	qemu -monitor stdio -m 256 -cdrom 6.1-RC1-i386-disc1.iso -usb -soundhw es1370 -kernel-kqemu -net nic,model=rtl8139 -net user
> and got it as far as
> 	re0: diagnostic failed, failed to receive packet in loopback mode
> (followed by a panic :) with the (experimental) patches below.
> 
>  Anyone in the mood to implement loopback mode for this nic?
> 
>  Hmm actually...  I just found the original posting in the archive,
> is C+ mode implemented now?  If not re is probably not what I want,

The rtl8139 is set up with PCI rev ID 0x20 which should be enough for OS driver
to detect C+ mode features. C+ mode is OK, tested with Linux driver.

> but the rl driver that it attaches without that #if 0'd (now) hunk
> below doesnt seem to be able to get data thru either and I get
> 	rl0: watchdog timeout
> in dmesg, which usually means the driver doesnt receive interrupts.
> 
>  What the heck, I'll append a log of a run just doing in fixit->cdrom:
> 	ifconfig rl0 10.0.2.15
> and then exiting (which is enough to trigger the watchdog timeout...)
> 

I'm too lasy to test with fresh freebsd installation :)

-- 
Kind regards,
Igor V. Kovalenko

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] Re: playing with qemu's 8139 nic and FreeBSD (loopback mode missing?)
  2006-04-28 16:25 ` [Qemu-devel] " Igor Kovalenko
@ 2006-04-28 22:11   ` Juergen Lock
  2006-04-29  6:48     ` Igor Kovalenko
  0 siblings, 1 reply; 6+ messages in thread
From: Juergen Lock @ 2006-04-28 22:11 UTC (permalink / raw)
  To: Igor Kovalenko; +Cc: freebsd-emulation, qemu-devel

On Fri, Apr 28, 2006 at 08:25:02PM +0400, Igor Kovalenko wrote:
> Juergen Lock wrote:
> > I played with
> > 	qemu -monitor stdio -m 256 -cdrom 6.1-RC1-i386-disc1.iso -usb -soundhw es1370 -kernel-kqemu -net nic,model=rtl8139 -net user
> > and got it as far as
> > 	re0: diagnostic failed, failed to receive packet in loopback mode
> > (followed by a panic :) with the (experimental) patches below.
> > 
> >  Anyone in the mood to implement loopback mode for this nic?
> > 
> >  Hmm actually...  I just found the original posting in the archive,
> > is C+ mode implemented now?  If not re is probably not what I want,
> 
> The rtl8139 is set up with PCI rev ID 0x20 which should be enough for OS driver
> to detect C+ mode features. C+ mode is OK, tested with Linux driver.

Cool, so I want FreeBSD's re driver.  That one checks TxConfig
tho, as changed in my patch (inside #if 0).  And when changed,
it still doesn't work as mentioned above because the driver expects
loopback mode to be working.
> 
> > but the rl driver that it attaches without that #if 0'd (now) hunk
> > below doesnt seem to be able to get data thru either and I get
> > 	rl0: watchdog timeout
> > in dmesg, which usually means the driver doesnt receive interrupts.
> > 
> >  What the heck, I'll append a log of a run just doing in fixit->cdrom:
> > 	ifconfig rl0 10.0.2.15
> > and then exiting (which is enough to trigger the watchdog timeout...)
> > 
> 
> I'm too lasy to test with fresh freebsd installation :)

 No need to install FreeBSD, you can get away by just using
fixit mode of an install iso, i.e. disc1.  (which actually is
what I did above. :)

 You can look at 6.1RC's re driver here:
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c?annotate=1.46.2.14
 which includes:
http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/pci/if_rlreg.h?annotate=1.51.2.3

 And 6.1RC disc1 iso is e.g. here:
ftp://ftp.ru.freebsd.org:/pub/FreeBSD/ISO-IMAGES-i386/6.1/6.1-RC1-i386-disc1.iso

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] Re: playing with qemu's 8139 nic and FreeBSD (loopback mode missing?)
  2006-04-28 22:11   ` Juergen Lock
@ 2006-04-29  6:48     ` Igor Kovalenko
  2006-04-30  0:46       ` Juergen Lock
  0 siblings, 1 reply; 6+ messages in thread
From: Igor Kovalenko @ 2006-04-29  6:48 UTC (permalink / raw)
  To: Igor Kovalenko, qemu-devel, freebsd-emulation

Juergen Lock wrote:
> On Fri, Apr 28, 2006 at 08:25:02PM +0400, Igor Kovalenko wrote:
>> Juergen Lock wrote:
>>> I played with
>>> 	qemu -monitor stdio -m 256 -cdrom 6.1-RC1-i386-disc1.iso -usb -soundhw es1370 -kernel-kqemu -net nic,model=rtl8139 -net user
>>> and got it as far as
>>> 	re0: diagnostic failed, failed to receive packet in loopback mode
>>> (followed by a panic :) with the (experimental) patches below.
>>>
>>>  Anyone in the mood to implement loopback mode for this nic?
>>>
>>>  Hmm actually...  I just found the original posting in the archive,
>>> is C+ mode implemented now?  If not re is probably not what I want,
>> The rtl8139 is set up with PCI rev ID 0x20 which should be enough for OS driver
>> to detect C+ mode features. C+ mode is OK, tested with Linux driver.
> 
> Cool, so I want FreeBSD's re driver.  That one checks TxConfig
> tho, as changed in my patch (inside #if 0).  And when changed,
> it still doesn't work as mentioned above because the driver expects
> loopback mode to be working.
>>> but the rl driver that it attaches without that #if 0'd (now) hunk
>>> below doesnt seem to be able to get data thru either and I get
>>> 	rl0: watchdog timeout
>>> in dmesg, which usually means the driver doesnt receive interrupts.
>>>
>>>  What the heck, I'll append a log of a run just doing in fixit->cdrom:
>>> 	ifconfig rl0 10.0.2.15
>>> and then exiting (which is enough to trigger the watchdog timeout...)
>>>
>> I'm too lasy to test with fresh freebsd installation :)
> 
>  No need to install FreeBSD, you can get away by just using
> fixit mode of an install iso, i.e. disc1.  (which actually is
> what I did above. :)
> 
>  You can look at 6.1RC's re driver here:
> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c?annotate=1.46.2.14
>  which includes:
> http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/pci/if_rlreg.h?annotate=1.51.2.3
> 
>  And 6.1RC disc1 iso is e.g. here:
> ftp://ftp.ru.freebsd.org:/pub/FreeBSD/ISO-IMAGES-i386/6.1/6.1-RC1-i386-disc1.iso
> 
> 

Thanks, that iso pointer made it.

Please try the following on top of your patch, at least ping should now work:

--- hw/rtl8139.c.freebsd        2006-04-29 10:44:43.000000000 +0400
+++ hw/rtl8139.c        2006-04-29 10:45:37.000000000 +0400
@@ -1979,6 +1979,18 @@
     return ret;
 }

+static uint32_t rtl8139_RxBufAddr_read(RTL8139State *s)
+{
+    /* this value is NOT off by 16 */
+    uint32_t ret = s->RxBufAddr;
+
+#ifdef DEBUG_RTL8139
+    printf("RTL8139: RxBufAddr read val=0x%04x\n", ret);
+#endif
+
+    return ret;
+}
+
 static void rtl8139_RxBuf_write(RTL8139State *s, uint32_t val)
 {
 #ifdef DEBUG_RTL8139
@@ -2441,6 +2453,10 @@
             ret = rtl8139_RxBufPtr_read(s);
             break;

+        case RxBufAddr:
+            ret = rtl8139_RxBufAddr_read(s);
+            break;
+
         case BasicModeCtrl:
             ret = rtl8139_BasicModeCtrl_read(s);
             break;

-- 
Kind regards,
Igor V. Kovalenko

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] Re: playing with qemu's 8139 nic and FreeBSD (loopback mode missing?)
  2006-04-29  6:48     ` Igor Kovalenko
@ 2006-04-30  0:46       ` Juergen Lock
  2006-05-02  4:28         ` Igor Kovalenko
  0 siblings, 1 reply; 6+ messages in thread
From: Juergen Lock @ 2006-04-30  0:46 UTC (permalink / raw)
  To: Igor Kovalenko; +Cc: freebsd-emulation, qemu-devel

On Sat, Apr 29, 2006 at 10:48:48AM +0400, Igor Kovalenko wrote:
> Juergen Lock wrote:
> > On Fri, Apr 28, 2006 at 08:25:02PM +0400, Igor Kovalenko wrote:
> >> Juergen Lock wrote:
> >>> I played with
> >>> 	qemu -monitor stdio -m 256 -cdrom 6.1-RC1-i386-disc1.iso -usb -soundhw es1370 -kernel-kqemu -net nic,model=rtl8139 -net user
> >>> and got it as far as
> >>> 	re0: diagnostic failed, failed to receive packet in loopback mode
> >>> (followed by a panic :) with the (experimental) patches below.
> >>>
> >>>  Anyone in the mood to implement loopback mode for this nic?
> >>>
> >>>  Hmm actually...  I just found the original posting in the archive,
> >>> is C+ mode implemented now?  If not re is probably not what I want,
> >> The rtl8139 is set up with PCI rev ID 0x20 which should be enough for OS driver
> >> to detect C+ mode features. C+ mode is OK, tested with Linux driver.
> > 
> > Cool, so I want FreeBSD's re driver.  That one checks TxConfig
> > tho, as changed in my patch (inside #if 0).  And when changed,
> > it still doesn't work as mentioned above because the driver expects
> > loopback mode to be working.
> >>> but the rl driver that it attaches without that #if 0'd (now) hunk
> >>> below doesnt seem to be able to get data thru either and I get
> >>> 	rl0: watchdog timeout
> >>> in dmesg, which usually means the driver doesnt receive interrupts.
> >>>
> >>>  What the heck, I'll append a log of a run just doing in fixit->cdrom:
> >>> 	ifconfig rl0 10.0.2.15
> >>> and then exiting (which is enough to trigger the watchdog timeout...)
> >>>
> >> I'm too lasy to test with fresh freebsd installation :)
> > 
> >  No need to install FreeBSD, you can get away by just using
> > fixit mode of an install iso, i.e. disc1.  (which actually is
> > what I did above. :)
> > 
> >  You can look at 6.1RC's re driver here:
> > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c?annotate=1.46.2.14
> >  which includes:
> > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/pci/if_rlreg.h?annotate=1.51.2.3
> > 
> >  And 6.1RC disc1 iso is e.g. here:
> > ftp://ftp.ru.freebsd.org:/pub/FreeBSD/ISO-IMAGES-i386/6.1/6.1-RC1-i386-disc1.iso
> > 
> > 
> 
> Thanks, that iso pointer made it.
> 
 :)

> Please try the following on top of your patch, at least ping should now work:

 Thanks, that seems to get the rl driver going.  Now to fix C+ mode
(re driver) change the #if 0 in my patch to #if 1...

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Qemu-devel] Re: playing with qemu's 8139 nic and FreeBSD (loopback mode missing?)
  2006-04-30  0:46       ` Juergen Lock
@ 2006-05-02  4:28         ` Igor Kovalenko
  0 siblings, 0 replies; 6+ messages in thread
From: Igor Kovalenko @ 2006-05-02  4:28 UTC (permalink / raw)
  To: qemu-devel, qemu-l, freebsd-emulation

Juergen Lock wrote:
> 
>  Thanks, that seems to get the rl driver going.  Now to fix C+ mode
> (re driver) change the #if 0 in my patch to #if 1...
> 

Well actually that requires a bit more: implementing on-board timer.

freebsd if_re.c driver loopback test sequence passes if packet is received
AND timeout occur; the latter cannot happen because of missing timer support.
Then, driver tries to set up on-board timer for various reasons and may not
work without timer.

-- 
Kind regards,
Igor V. Kovalenko

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2006-05-02  4:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-27 20:37 [Qemu-devel] playing with qemu's 8139 nic and FreeBSD (loopback mode missing?) Juergen Lock
2006-04-28 16:25 ` [Qemu-devel] " Igor Kovalenko
2006-04-28 22:11   ` Juergen Lock
2006-04-29  6:48     ` Igor Kovalenko
2006-04-30  0:46       ` Juergen Lock
2006-05-02  4:28         ` Igor Kovalenko

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).