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.

IPC Hwi configuration

Other Parts Discussed in Thread: TMS320C6678

I was wondering how to guarantee that the IPC/Notify module's Hwi has its masking option set to "MaskingOption_ALL"?

The rest of our interrupts are set up this way to avoid interrupts interrupting one another and using CCS's ROV, IPC's is set up differently.

The only config. item we use that is related to the ipc interrupts is the directive "NotifySetup.dspIntVectId = x;"

This is running on a TMS320C6678.

  • I am not sure if you have read the SYS/BIOS IPC user guide as follows.

    http://www.ti.com/lit/pdf/sprugo6

    It seems not talking about the MaskingOption_All option of IPC. But it may have other info about the module.

    And the BIOS forum as follows might be a better place for seeking the prompt response regarding to the SYS/BIOS related question.

    http://e2e.ti.com/support/embedded/bios/default.aspx

    Hope it helps.

  • Hi,

    You are correct in that the Hwi created for IPC does not mask out all interrupts and there is no option for changing this.

    The only way you would be able to do this would be to modify the IPC source file and rebuild your project with it.

    The source that needs to be modified:   <IPC install>/packages/ti/sdo/ipc/family/c647x/Interrupt.c

    Judah

  • Hi Judah,

    I'd like to know how I should modify the IPC source file "interrupt.c" to mask out lower interrupts. 

    Thanks in advance for your cooperation.

    Best regards,
    j-breeze

  • Hi Judah,

    Can I use Hwi_reconfig() API for masking out the lower interrupts?
    Is there any way not to modify the source and rebuild it?

    Any comments would be appreciated.

    Best regards,
    j-breeze

  • Hi Champs,

    Can some one answer my question?

    Best regards,
    j-breeze

  • Hi j-breeze,

    If you have the Hwi handle, you can use Hwi_reconfig and pass in a different params structure.  See below for an example of such a Hwi attrs struct.

    If you had to modify the source it would look like:

            /* Register interrupt to remote processor */
            Hwi_Params_init(&hwiAttrs);
            // hwiAttrs.maskSetting = Hwi_MaskingOption_SELF;  // original call to be replace with below 3 lines
            hwiAttrs.maskSetting = Hwi_MaskingOption_BITMASK;
            hwiAttrs.disableMask = 0xf;  // You need to set this mask to what you want to disable
            hwiAttrs.restoreMask = 0xf;  // You can set this mask to what you want to restore

            hwiAttrs.arg         = arg;
            hwiAttrs.eventId     = Interrupt_INTERDSPINT;

            Hwi_create(intInfo->intVectorId,
                (Hwi_FuncPtr)Interrupt_intShmStub, &hwiAttrs, NULL);

    Judah

  • Hi Judah,

    Thank you for your support.  That is very helpful.

    Best regards,
    j-breeze