Hi,
On 10-1-27 下午8:51, Björn Döbel wrote:
- dde linux26 doesn't support multiple PCI buses. Unfortunately, my virtual
machine has two PCI buses: bus 0 and bus 2. Now I have to hardcode the bus numbers in the code. Do you have plan to support multiple PCI buses?
Our approach is to provide the application with a single logical PCI bus within DDEKit and have a management component that parses the real PCI bus and multiplexes accesses. Have a look at l4/pkg/l4io. As in most of the cases you only use one device within a DDEKit-based application, we did not see any real benefit of supporting multiple PCI buses in DDE.
OK, I see your point and I believe that one device doesn't use two buses, but I didn't see how a logical PCI bus is mapped to a physical one. ddekit_pci_init calls err = l4io_pci_find_device(~0, ~0, start, &l4dev); to search for buses, which calls a RPC to the kernel, but every DDEKIT application starts with 0. I don't see where is your management component and how it chooses the right bus for the device.
The L4IO server scans all PCI devices at startup. DDE applications use l4io_pci_find_device() to iterate over all the devices and assign them a local/logical PCI ID. So, yes, for a DDE application it always looks like there is only one PCI bus (bus 0) with a continuous range of devices.
You mean all devices in the system are in one logical bus, which can have at most 256*32 devices? It's a little odd, but should work fine. The current code of ddekit and dde linux26 obviously can only work in a system with one bus as the maximal number of pci devices in ddekit is 32.
- DDE Linux26 doesn't support sound card drivers.
Does DDE Linux26 support the block device and character device?
The answer for all points is that this is usually a matter of adding the corresponding Linux code and maybe some glue code. We did this for character, sound and block devices to a certain point. However, there is no releasable code, yet.
So are you still working on supporting character, sound and block devices?
Yes. In our current (unreleased) versions, input devices work. Sound and block support has not been driven to an acceptible point, yet. There is also a USB package in the public SVN, fyi.
I would like to know how well the current release of dde linux26 can support block devices and character devices as I want to try some devices other than NIC. For example, does it support SCSI disks? I see the USB package. Maybe I can try that since the Hurd doesn't have USB drivers yet.
Best regards, Zheng Da