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.

AM5728: Interrupt enable on second A15

Part Number: AM5728
Other Parts Discussed in Thread: BEAGLEBOARD-X15, SYSBIOS

Can you explain how to enable the interrupts on the 2nd A15 core of an AM5728.

I have a program that executes on the primary A15 core that responds appropriately to a GPIO2 interrupt. I'm using TI_RTOS and GIC ID interrupt #62. The same program executing on the 2nd core does not respond to this interrupt like the primary core does.

  • The RTOS team have been notified. They will respond here.
  • Hi,

    Can you clarify if this is a TI Processor SDK RTOS GPIO driver example? And which release is it? All our code runs on the first core of A15.

    Regards, Eric
  • No, I did not use the SDK RTOS GPIO driver example. I created a new SYSBIOS project in CCS 8.1 with a separate configuration project. The project also uses the am57xx PDK product. The "linker.cmd" in the configuration project is set to use DDR memory starting at 0XC0000000. I usually develop code for the A15_1 core using this DDR memory segment. I use the 0X80000000 memory segment for the A15_0 core. For this project, the A15_0 core is idle. The project is also setup to use the GPEVM_AM572X_SiRevA [Cortex A].platform. I'm using a BeagleBoard-X15.
  • Hi,

    Using memory 0x8000_0000 or 0xC000_0000 shouldn't cause the problem. When running on ARM core 1 instead of core 0, the GICID is the same. Please look this link: processors.wiki.ti.com/.../Processor_SDK_Jailhouse_Hypervisor

    This is how we run Linux on A15_0 and a baremetal/SYSBIOS example on A15_1. The example has GPIO LED toggle on A15_1 which you can use as a reference how the interrupt worked on cores other than primary core.

    If you use SYSBIOS, you would have a .cfg file:
    var Hwi = xdc.useModule('ti.sysbios.family.arm.gic.Hwi');
    Hwi.initGicd = false;

    If you use baremetal, you can see the GPIO_LED example. inside that there is a void gic_init(void). The code can be download from software-dl.ti.com/.../index_FDS.html, then check the processor_sdk_rtos_am57xx_5_00_00_15\demos\jailhouse-inmate

    Regards, Eric
  • Eric:

     

    Unfortunately, I still have been unable to get any interrupts functional on the A15_1 core.

     

    The recommendation to look at the Jailhouse/Hypervisor link is not very relevant because I'm not running Linux.

     

    I rechecked the PDK example project "GPIO_LedBlink_evmAM572x_armTestProject" as recommended and found it to have functional interrupts on the A15_0 core. When I copied this project and built it for the A15_1 core, the code downloaded and ran but hung on the initial LED illumination. This is another example of the interrupts not working on the A15_1 core. (It is also noted that the load file for this project is over 17 Mbytes for some reason.)

     

    I also added the following recommended code to the above project since it is a SYSBIOS project but found similar stalling behavior and lack of interrupts on the A15_1 core.

     

    var Task = xdc.useModule('ti.sysbios.knl.Task');

    var Semaphore = xdc.useModule('ti.sysbios.knl.Semaphore');

    /*var Hwi = xdc.useModule('ti.sysbios.hal.Hwi');*/

    var ti_sysbios_family_arm_gic_Hwi = xdc.useModule('ti.sysbios.family.arm.gic.Hwi');

    var InitXbar   = xdc.useModule("ti.sysbios.family.shared.vayu.IntXbar");

     

    /* Development: Commented-out above and added below */

    var Hwi = xdc.useModule('ti.sysbios.family.arm.gic.Hwi');

    Hwi.initGicd = false;

     

    I also went back and rechecked my project that uses the GPIO2_5 as an interrupt. It clearly functions on the A15_0 core. A copy of this project was built for the A15_1 core which builds and runs with no interrupt activity.

     

    It is also observed that the UART_printf() function temporarily works in a project until SYSBIOS is called. Afterwards, the interrupts for the UART are not functional and there is no output seen from the UART.

     

    There is still something not right with the interrupts on the A15_1 core when using SYSBIOS.

     

    I recommend that the TI processor team try the "GPIO_LedBlink_evmAM572x_armTestProject" project on the A15_1 core to see if they can get the interrupts working.

     

    Can you offer any other suggestions to help with this problem.

     

    Thanks

     

  • Eric: Please see Sep 15, 2018 posting for my response.