I've been debugging network problems in qemu for a week or two, and
there seem to be some pervasive misunderstandings about endianness. I'm
trying to use a big-endian target on a big-endian guest, and this has
exposed a lot of breakage, including qemu's pci-host.h, isa_mmio.c,
rtl8139.c and ne2000.c.

Rob, I noticed that you're using Linux's "ne.c" in your PowerPC PReP
kernel build for qemu, and to my surprise it actually works for me on a
big-endian host! I'm wondering if you chose ne.c because you found the
other network drivers to be broken?

(Actually I believe this is also working by accident: outsw() in Linux
writes big-endian data, which is incorrectly swapped in isa_mmio.c, and
then incorrectly swapped again in ne2000.c.)

-- 
Hollis Blanchard
IBM Linux Technology Center



Reply via email to