Hi, I'm looking at the linux PCI implementation, especially MSI support for Ocotea. And I have some observations and questions about it. Maybe somebody here can shed some light on them. Thanks.
1. Obviously MSI is supported in Linux 2.6.x, maybe even in 2.4.x. But MSI implementation seems to support only IOxAPIC on x86 or IA64 architectures, though the implemenation is in generic drivers/pci tree. 2. Why is the message data defined in a such way shown as follows? Or does it just follow IOxAPIC's design? Further question is who defines the format of the message data. The PCI/PCIe specs don't say anything about the content of the message data register. struct msg_data { __u32 vector : 8; __u32 delivery_mode : 3; /* 000b: FIXED | 001b: lowest prior */ __u32 reserved_1 : 3; __u32 level : 1; /* 0: deassert | 1: assert */ __u32 trigger : 1; /* 0: edge | 1: level */ __u32 reserved_2 : 16; } __attribute__ ((packed)); 3. How is the pci subsystem initialized on a PPC platform? Is there any existing document discussing PCI subsystem? Of course I've been doing a lot internet search and couldn't find too much useful infor. Thanks a lot, -Shawn.