On 30/10/17 18:45, Philippe Mathieu-Daudé wrote: >>>>>>> +/* >>>>>>> + * QEMU AMD PC-Net II (Am79C970A) emulation >>>>>> >>>>>> Filename says this is Lance ethernet, but the comment says it's PC-Net ? >>>>> >>>>> According to the datasheet for Am79C970A, the original Lance is an >>>>> Am7990 device and the Am79C970A aka PCNet-PCI II as emulated by QEMU is >>>>> register-compatible with it. >>>>> >>>>> I guess the comment above is more technically correct, but I'm happy to >>>>> adjust it in my local tree if you still feel it needs to change? >>> >>> I think we should have a comment that says what the file is >>> for. Since this is a different file from pcnet.h, we should >>> have a comment that isn't the same as the pcnet.h one. >>> I don't particularly mind what it says, as long as it briefly >>> explains what's in the file (and by implication what distinguishes >>> things in this file from things in the other). >> >> Okay then how about something along the lines of: >> >> * QEMU Lance (Am7990) device emulation >> * >> * Copyright (c) 2004 Antony T Curtis >> * Copyright (c) 2017 Mark Cave-Ayland >> * >> * This represents the Sparc32 lance (Am7990) ethernet device which is >> * an earlier register-compatible member of the AMD PC-Net II >> * (Am79C970A) family. >> >> In reality pcnet.c/pcnet.h are just the inner workings of the pcnet-pci >> and lance devices. The comments in pcnet-pci.c and lance.c are identical >> except for the Sparc32 reference and it was the same header from >> pcnet-pci.c that I used as the basis for my last patch. > > You are right the PCnet family is based on the Lance one, but it seems > nobody remembers the Lance origin, the "PC-Net" took over. > > Maybe we can agree with the different families having an unique > "hw/net/pcnet_lance.h" header with all Lance/PC-Net related XXX_TYPEs, > what do you think?
This is definitely a good idea in principle, however the lance device in its current form cannot work for anything other than SPARC32 because of the the word-size byte swaps for FIFO transfers which occur for DMA transfers (see the code for ledma_memory_read/ledma_memory_write). I think in its current form the patch allows for someone to potentially implement this later for other architectures (e.g x86) so while I don't want to disallow this in future, it isn't really within the scope of this particular patchset. ATB, Mark.