Each device writes a message (a 16-bit number) to a fixed address.
Each device has 1-32 messages (contiguous).

For the XScale, use the Inbound Queue Port (BAR0 + &40)
(BAR0 is currently undefined - have to allocate 4K to it).

When the device writes to the Inbound Queue Port, the word is
added to the circular Inbound Post Queue, and an interrupt is
generated.



PCI_MSIFeatures()

Lowest message (&0000)
Highest message (&FFFF)
PCI address of message port (BAR0+&40 -> a 4K chunk of HAL workspace)
Device number (58)

PCI_MSIGetNextMessage()

Returns the next message, or -1 if none. Clears the interrupt condition,
unless more messages still pending.

