This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

dsp6455 interrupt

HI,I have a problem when I develop the driver of dsp6455 basing PCI bus under Windows XP system。In the step of initialization,I want  to enable the interrupt from dsp6455 to host and the interrupt from host to dsp6455.I have looked up the datasheet for dsp6455,the SOFT_INT PCI bit in PCIHINTSET register and the DSPINT bit in PCISTATSET register should be set 1,but I don't know how to access these PCI Back End Configuration Registers from host.

From the datasheet,we know that Back end registers can be programmed both from the PCI host and the DSP. Normally, the PCI host programs a part of back end registers and the DSP programs the remaining part of the registers. I hope you can give me some guidance about accessing  the Back end registers from PCI host.

Waiting for your replying,thank you very much!

                                                                                                                                                                                                                                       From xiufenchen

                                                                                                                                                                                                                                               31 May

  • xiufenchen,

    Please refer to the "Programming the PCI Back End Registers" section of the C6455's PCI User's Guide for instructions on accessing these registers. If you have questions about some part of that section, please post the questions here.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.

  • RandyP,

    Thank you for your reply,I have read the section you said.but I also have some doubt about reading the PCI Back End Refisters.The offset of PCIBINTSET is 0x030.Should I use the fuction m_MemoryRange0.outd(PCIBINTSET,0x80000000) under the Windows XP system? The m_memoryRang0 is defined by myself in the driverWizerd of driverStudio.If this can set the PCIBINTSET register,which space has been mapped to BASE0?I used other tools to skan the PCI bus,finding that the BASE0 is 00800000 mapped to Internal RAM. This is what I don't understand.

    Besides,I have refer the  C6455's PCI User's Guide,It said that the memory mapping have two patterns of memory mapping:Master Memory Map and Slave Memory map.So How do I kown which mode I am using?and How can I change it?

    thank you very much.Waiting for your repiying.

    Best Wishes!

    xiufen chen

  • The C6455 datasheet Memory Map Summary tells you the address of the PCI Control Registers. The PCI User's Guide tells you the offset from that address.

    The PCI UG explains how to use the Slave Memory Map. You can determine from the default mapping which of the PCI Base addresses will be able to access the PCIBINTSET register by looking at the Memory Space column of PCI UG Table 2 and the Window Size in that same table. The the rest of the section explains how to map that PCI Base to a PCI bus address. Your Windows XP function must generate a PCI bus address to match.

    If the host, like a Windows XP machine, accesses the DSP through PCI, then the DSP's PCI peripheral is operating in Slave Mode. If the DSP initiates a request through the PCI to access the host, then the DSP's PCI peripheral is operating in Master Mode.

    Regards,
    RandyP

     

    If you need more help, please reply back. If this answers the question, please click  Verify Answer  , below.