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.

Bug CpIntc ROV View ?

Other Parts Discussed in Thread: SYSBIOS

Hello all,

(target C6678, sysbios 6.37.1.24, xdctools 3.25.5.94, ccsv6  6.0.0.00098)

At runtime here's what I do :

Plug SystInt 112, 113, 114, 115 to HostInt 32, 43, 54, 65 through CIC0

Plug SystInt 116, 117, 118, 119 to HostInt 32, 43, 54, 65 through CIC1

then when I open CpIntc ROV view I see :

As you can see for SystInt 116, 117, 118, 119 the Host Int is 0 instead of 32, 43, 54, 65.

I've step through my code and didn't see any error.

I'm wondering if it's not a bug in CpIntc ROV view because these interrupts are plugged through CIC1

I'll try to reproduce the issue in a simple SYSBIOS project.

Thank you,

Clement

  • I don't know of any bug in ROV. Could you reproduce it in a simple SYS/BIOS project?

    Todd

  • I reproduced it in the attached project. Make sure you run it on a core > 3

    and here is the associated result

    Again : it only seems to affect CIC1. I haven't seen the bug for CIC0 configuration.

    0755.testCpIntcRov.zip

    Regards,

    Clement

  • I was able to build and run the project. I need to grab the expert to debug this. I'll get back to early next week.

    Todd

  • Clement,

    From which core are you trying to plug CIC1?  I believe those are only pluggable via core3-core7 since CIC1 routes to only those cores.

    Judah

  • Judah,

    As I said in my previous posts, it's the Core 4 that is plugging CIC1.

    Indeed CpIntc_mapHostIntstoSystInts source code shows that only cores 4 to 7 can configure CIC1.

    Anyway there is an attached project (very simple) on my previous post that reproduces the error. I can't do better.

    Regards,

    Clement

  • Hi Clement,

    We've reproduced your issues and confirmed that ROV is reading the wrong controller. We've opened up a bug:

    SDOCM00112160: CpInt's ROV is always showing CIC0 

    We'll address this is a future release.

    Todd

  • Ok thank you for the confirmation.

    I'll need to find a way to check my CIC1 configuration though.

    Clement

  • I was able to get ROV working with a couple changes.

    1. Add the following somewhere in your application (e.g. main). Have coreNum be an global Int.

    Int coreNum;

    Void main(Void)
    {
        extern cregister volatileUInt DNUM;
        coreNum = DNUM;

    2. In <bios_install_dir>\packages\ti\sysbios\family\c66\tci66xx\CpIntc.xs replace the following lines

        try {
            var controlReg = Program.fetchStruct(CpIntc.RegisterMap$fetchDesc,
                                                 controller.elem,
                                                 false);
        }

    with 

             var coreNum = Program.getSymbolValue("coreNum");
        var coreNumValue = Program.fetchArray(
                    {type: 'xdc.rov.support.ScalarStructs.S_Int', isScalar: true},
                    coreNum, 1);

        try {
            if (coreNumValue < 4) {
                var controlReg = Program.fetchStruct(CpIntc.RegisterMap$fetchDesc,
                                                     controller.elem,
                                                     false);
            }
            else {
                var controlReg = Program.fetchStruct(CpIntc.RegisterMap$fetchDesc,
                                                      controller.elem + 0x4000,
                                                      false);
            }       
        }

    So ROV looks at coreNum on the target and then decides which controller to use. Note the code I'm asking you to change in the CpIntc.xs file only impacts ROV. It does not impact any target code.

    The fix in a future release will be along these lines.

    Todd

  • Todd,

    I tested your fix and yes it works.

    I think it would be better to see both CIC0 and CIC1 configuration whatever the core I'm looking at with ROV.

    I'll see how you implement it in the next release.

    Regards,

    Clement