Hi All,
I'm trying to configure the ARM5718 on a custom board running vxWorks 7.0 to accept and process MSI messages. I am unsure about how to accomplish this. I have read the ARM reference manual and talked to the Hardware folks and have attempted to set it up, but am unable to process MSI messages from the EP.
The EP is requiring a memory location from the RC to write MSI messages into. The reference manual indicates the need to use a mailbox write to generate an interrupt. I have decided to use the mailbox 1 in the L4_CFG area. I set that up and wrote into the mailbox at offset 0x40. It generated an interrupt as expected and my ISR was called.
The next step for me was to setup the inbound ATU. I set that up as follows:
ATU Index: 0x80000000, Control 1: 0x0, Control 2: 0x80000000, Base Lower: 0x4a0f4000, Limit: 0x100fff, Target Lower: 0x5000000
I then configured the EP to use this memory address for MSI writes.
PCIECTRL_EP_DBICS_MSI_CAP = 0x496005
PCIECTRL_EP_DBICS_MSI_ADD_L32 = 0x5000040
PCIECTRL_EP_DBICS_MSI_ADD_U32 = 0
PCIECTRL_EP_DBICS_MSI_DATA = 0
Unfortunately this configuration is not working. We are not getting interrupts. I most likely have not or incorrectly completed the configuration, but I don’t know what could be missing or wrong. Can anyone help me figure this out. Thanks in advance.