[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] questions on default_config_write in hw/pci.c
From: |
Michael S. Tsirkin |
Subject: |
[Qemu-devel] questions on default_config_write in hw/pci.c |
Date: |
Thu, 30 Apr 2009 19:15:08 +0300 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Hi,
I've been looking at hw/pci.c, specifically at how config
read/write are implemented, and have a couple of questions
about default_config_write:
1. The code at the beginning (if len == 4 ...)
seems to only update pci base registers if a dword write
is performed. I think it's legal for the guest to perform 4
single-byte writes. Should this be supported?
2. The large switch statement at the end of this function
uses hard-coded register offsets. Would it make sense
to change it to use macros from hw/pci.h?
3. Still there I see:
switch(d->config[0x0e]) {
case 0x00:
case 0x80:
register 0x0e is header type, which has defined values
of 0x00 (device or host bridge), 0x01 (pci to pci bridge) and
0x02 (cardbus bridge). What is 0x80 and when is it used?
Would it make sense to remove this?
4. Still there, there's some handling done for type 1 devices.
This support seems imcomplete.
Are there any PCI-to-PCI bridges emulated by qemu?
Would it make sense to remove this code?
Thanks,
MST
--
MST
- [Qemu-devel] questions on default_config_write in hw/pci.c,
Michael S. Tsirkin <=