qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Printing bogus values in ne2000_asic_ioport_read()/ ne2000_


From: Umamaheswararao Karyampudi
Subject: [Qemu-devel] Printing bogus values in ne2000_asic_ioport_read()/ ne2000_receive()
Date: Fri, 24 Feb 2006 20:13:14 -0800 (PST)

Hi,
I am using QEMU in one of my research projects. I landed in a problem where I see bogus numbers being printed when I printed the packet/each word that is received from ne2000.

In ne2000_receive(), I copied the packet received to a static char [] and printed the packet using
 static void print_packet(char *s, int len)
{
  int i,j;
  for (i=0;i<len;i++) {
      if (i%20 == 0)
          printf("\n");
      printf("%02x ", s[i]);
  }
          printf("\n");
}
And some bytes it prints as fffffffff<last byte> instead of just the last byte.
For eg:
52 54 00 12 34 56 00 ffffffff 4f 0a 46 05 08 00 45 00 00 ffffff80 00 00
40 00 40 01 ffffffbc 2b ffffffc0 ffffffa8 fffffffe fffffffe ffffffc0 ffffffa8 ff

Similarly in ne2000_asic_ioport_read(), I print each word that is read from NetDriverState.s->mem using the following -
printf("\n %02x %02x", (char)(ret &0xff), (char) ( (ret >> 8) && 0xff));
And occasionally I see the 4 bytes printed instead of 1 byte for each value.

Any reason why it happens? Also, ne2000_asic_ioport_read(), reads 6 bytes before reading actual packet? I can think of 4 bytes for CRC but not for the remaining 2 bytes  - eg - If pak is -
52 54 00 12 34 56 00 ffffffff 4f 0a 46 05 08 00 45 00 00 ffffff80 00 00
40 00 40 01 ffffffbc 2b
In asic_ioport_read() -
rdw 01 59
rdw 92 00
rdw 52 54
rdw 52 54
rdw 00 12
rdw 34 56

Anyhelp is greatly appreciated.

Thanks
Uma


Yahoo! Mail
Use Photomail to share photos without annoying attachments.
reply via email to

[Prev in Thread] Current Thread [Next in Thread]