qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] Re: PCNet and Lance merge, almost there


From: Fabrice Bellard
Subject: [Qemu-devel] Re: PCNet and Lance merge, almost there
Date: Thu, 24 Aug 2006 20:30:16 +0200
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20040913

Blue Swirl wrote:
Hi,

I got PCNet working in Sun4m architecture by fixing endianness problems and adding IOMMU hooks. There are still some endianness issues, that's why I disabled the address matching code.

The original code could benefit from some touchup and performance tuning.

Any comments?

- A general remark : instead of using SPARC_IOMMU_TRANSLATE, you should use new memory helpers to read or write bytes such as pcnet_physical_memory_read() and pcnet_physical_memory_write(). The rationale is that ultimately pci memory accesses will also use PCI specific I/Os to handle the case where the PCI memory is not mapped directly in the CPU address space. For the sparc iommu you should define global helpers such as sparc_iommu_memory_read() and sparc_iommu_memory_write().

- CPU specific #ifdefs (or CPU specific endianness macros) should be avoided in device code unless it is really necessary. The rationale is that ultimately there will be a single QEMU executable supporting all machines and CPUs. In the pcnet case for example, the macro 'SPARC_FIX_DESC' is almost surely not necessary because the device seems implicitely little endian (the original code lacks correct endianness conversion routines !).

Regards,

Fabrice.




reply via email to

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