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.

Incorrect EVMC6657.gel in CCS 6.1.2

Other Parts Discussed in Thread: SYSBIOS

Dear TI Team,

I am using the latest version of CCS 6.1.2 and I am working with the EVMC6657 board.

I have found that the provided evmc6657.gel file has some errors. Here comes the list of bugs and I hope that you can update the GEL file in the next release.

  • The register definition of EDMA3 overwrites the IER register, so the interrupts can not be disabled. I recomment to use a clear prefix for register definitions.
  • In Set_Psc_All_On() the power domain of VCP2-A is wrong. We must use PD0 instead PD12.

Kind regards

Sven 

  • Sven,

    Thank you for taking the time to report this. I already contacted the owner of this file and will report back what will be the next actions, ok?

    I apologize for the inconvenience,

    Rafael

  • Dear Rafael,

    thanks for your fast response. For me it is ok, I have modified my local version but it will be helpful for other users as well.

    Important is the redefinition of IER register. In some cases it will be very hard to get a running application in a debuggable state. The reason is that a running ISR will run after loading of a new application. In that cases the DSP stops with any random exception inside of SYSBIOS.

    Kind regards
    Sven
  • Sven,

    The maintainer of the package already tracked these two issues and will be integrating this into the Keystone 1 package. At this moment, however, he does not have a schedule for when this will be out, but I will reply back to this thread when this is out.

    Thanks again,
    Rafael
  • Hi Sven,

    Could you please post a marked-up version of the GEL you have with the changes that were incorporated? Thanks.

    Lali

  • Dear Lali,

    thanks for your question. The main changes are in evmc6657l.gel:

    line 327:

    original:

    #define IER  (EDMA3_TPCC_BASE + 0x1050) // IER Control

    changed:

    #define EDMA3_IER (EDMA3_TPCC_BASE + 0x1050) // IER Control

    In general the defines for EDMA3 should be use a prefix like EDMA3_ to avoid any problems with other defines. The define IER hides the register IER, so that the interrupts can not be disabled by the gel file.

    After using the EDMA3_ prefixed defines some additinal lines must be changed in gel file.

    line 1663

    original:  Set_PSC_State(PD12, LPSC_VCP20, PSC_ENABLE);

    changed: Set_PSC_State(PD0, LPSC_VCP20, PSC_ENABLE);

    Unfortunately I am not able to upload my modified gel file or how is it possible?

    Kind regards

    Sven

  • Sven,

    Thanks for the reply.

    Did you also change in OnPreFileLoaded():

    Original:

    // Disable interrupts
    *(int*)IER = 0;

    Changed:

    // Disable interrupts
    IER = 0;

    and in OnRestart( int nErrorCode ):

    Original: 

            *(int*)IECRH = 0xFFFFFFFF;  // IECRH (disable high interrupts enable)
            *(int*)EECRH = 0xFFFFFFFF;  // EECRH (disable high events enable)
            *(int*)ICRH  = 0xFFFFFFFF;  // ICRH  (clear high interrupts pending)
            *(int*)ECRH  = 0xFFFFFFFF;  // ECRH  (clear high events pending)
    
            *(int*)IECR  = 0xFFFFFFFF;  // IECR  (disable low interrupts enable)
            *(int*)EECR  = 0xFFFFFFFF;  // EECR  (disable low events enable)
            *(int*)ICR   = 0xFFFFFFFF;  // ICR   (clear low interrupts pending)
            *(int*)ECR   = 0xFFFFFFFF;  // ECR   (clear low events pending)
       }    
    
        // Disable interrupts
        *(int*)IER = 0;

    Changed:

            *(int*)EDMA3_IECRH = 0xFFFFFFFF;  // IECRH (disable high interrupts enable)
            *(int*)EDMA3_EECRH = 0xFFFFFFFF;  // EECRH (disable high events enable)
            *(int*)EDMA3_ICRH  = 0xFFFFFFFF;  // ICRH  (clear high interrupts pending)
            *(int*)EDMA3_ECRH  = 0xFFFFFFFF;  // ECRH  (clear high events pending)
    
            *(int*)EDMA3_IECR  = 0xFFFFFFFF;  // IECR  (disable low interrupts enable)
            *(int*)EDMA3_EECR  = 0xFFFFFFFF;  // EECR  (disable low events enable)
            *(int*)EDMA3_ICR   = 0xFFFFFFFF;  // ICR   (clear low interrupts pending)
            *(int*)EDMA3_ECR   = 0xFFFFFFFF;  // ECR   (clear low events pending)
       }    
    
        // Disable interrupts
        IER = 0;

    BTW, you should be able to attach afile by switching your editor to "use rich formatting"

    Lali

  • Dear Lali,

    yes, your changes are looking fine. The origin IER is the DSP register and does not need the pointer operations.

    Attached is my own version of gel file (dabrf.gel). It is used for my own board with different clock settings. I have also add some improvements based on some post from the TI E2E Forum, e.g. status of ethernet.

    Kind regards

    Sven

    dabrf.gel