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.

AM6442: Interrupt router resource allocation change fails

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG

Tool/software:

I would like to set eight GPIO input interrupts for the AM6442 R5F0-1 core.

However, there seems to have been a problem changing the settings, as the debug output displayed the message "[Error] Sciclient event config failed!!!" and the processing stopped.

I would appreciate some advice on how to resolve this error.

・Steps taken

Since "launching K3 Respart Tool from make" was restricted by security software, I made the following changes directly to the sciclient_defaultBoardcfg_rm.c source.

Line 179: .num_resource = 8 → .num_resource = 4

Line 185: .num_resource = 8 → .num_resource = 4

Line 191: .num_resource = 4 → .num_resource = 8

Line 193: .start_resource = 8 → .start_resource = 4

After making the above changes, I ran the following command in the SDK root directory:

make -s -C tools/sysfw/boardcfg sciclient_boardcfg SOC=am64x

Since "executing GET RM DATA in sysconfig" was also restricted by the security software, I modified the code generated by sysconfig to create an initialization code.

static void Sciclient_gpioIrqSet(void)
{
    int32_t                             retVal;
    struct tisci_msg_rm_irq_set_req     rmIrqReq;
    struct tisci_msg_rm_irq_set_resp    rmIrqResp;

    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO0;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO0 + GPIO_GET_BANK_INDEX(32);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_4;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO0;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO0 + GPIO_GET_BANK_INDEX(40);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_5;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO0;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO0 + GPIO_GET_BANK_INDEX(41);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_6;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO0;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO0 + GPIO_GET_BANK_INDEX(42);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_7;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO0;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO0 + GPIO_GET_BANK_INDEX(43);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_8;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO1;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO1 + GPIO_GET_BANK_INDEX(60);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_9;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO1;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO1 + GPIO_GET_BANK_INDEX(61);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_10;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    rmIrqReq.valid_params           = 0U;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params          |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    rmIrqReq.global_event           = 0U;
    rmIrqReq.src_id                 = TISCI_DEV_GPIO1;
    rmIrqReq.src_index              = TISCI_BANK_SRC_IDX_BASE_GPIO1 + GPIO_GET_BANK_INDEX(62);
    rmIrqReq.dst_id                 = TISCI_DEV_R5FSS0_CORE1;
    rmIrqReq.dst_host_irq           = CSLR_R5FSS0_CORE1_INTR_MAIN_GPIOMUX_INTROUTER0_OUTP_11;
    rmIrqReq.ia_id                  = 0U;
    rmIrqReq.vint                   = 0U;
    rmIrqReq.vint_status_bit_index  = 0U;
    rmIrqReq.secondary_host         = TISCI_MSG_VALUE_RM_UNUSED_SECONDARY_HOST;

    retVal = Sciclient_rmIrqSet(&rmIrqReq, &rmIrqResp, SystemP_WAIT_FOREVER);
    if(0 != retVal)
    {
        DebugP_log("[Error] Sciclient event config failed!!!\r\n");
        DebugP_assert(FALSE);
    }
    return;
}

  • Hi Takeshi,

    Can you please tell which version of SDK are you using?

    Regards,

    Tushar

  • I am using version 11.00.00 of the AM64x MCU+ SDK.

  • Hi Takeshi,

    After making the above changes, I ran the following command in the SDK root directory:

    make -s -C tools/sysfw/boardcfg sciclient_boardcfg SOC=am64x

    Thanks for the above details.

    After making the above changes have you also rebuilt the SBL and flashed the SOC again with newly created SBL binary?

    Regards,

    Tushar

  • No. Only the application image was rebuilt with the updated SDK.

  • Hi Takeshi,

    To reflect the resource allocation changes, you will need to rebuilt the SBL example and flash the SBL binary again to the EVM.

    The above step is necessary as you SBL binary will have the information about resource allocation. So any change made in the board config, SBL binary need to be rebuilt and reflashed.

    Regards,

    Tushar

  • Sorry for the late response.

    I am having problems rebuilding SBL and am unable to confirm that the resource allocation changes are reflected.

    The SBL I have been using until now was built by someone else.

    I rebuilt the SBL CCS project with my CCS and the behavior changed.

    The image below shows the debug output after the change.

    The debug output before the rebuild did not display any messages after "DMSC ABI revision 4.0".


    The GPIO interrupt application was previously debugged via JTAG.

    (I am using a different IDE and debugger, not "CCS + XDS200".)

    After rebuilding, debug execution does not work properly.

    The SDK and sysconfig versions were different before and after the rebuild, so I am trying to match these versions and check again.

  • Hi,

    Please share the error logs you are observing when trying to build the SBL examples.

    Regards,

    Tushar

  • This is the log when building SBL.
    **** Build of configuration Debug for project sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang ****
    
    "C:\\ti\\ccs1281\\ccs\\utils\\bin\\gmake" -k -j 12 all -O 
     
    Building file: "../example.syscfg"
    Invoking: SysConfig
    "C:/ti/sysconfig_1.23.0/sysconfig_cli.bat" --script "D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/example.syscfg" -o "syscfg" -s "C:/ti/mcu_plus_sdk_am64x_11_00_00_15/.metadata/product.json" --context "r5fss0-0" --part Default --package ALV --compiler ticlang
    Running script...
    Validating...
    info: /kernel/dpl/debug_log uartLog.baudRate: Actual Baudrate Possible: 115385 (0 % error)
    Generating Code (example.syscfg)...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_dpl_config.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_dpl_config.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_drivers_config.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_drivers_config.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_drivers_open_close.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_drivers_open_close.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_pinmux_config.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_power_clock_config.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_board_config.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_board_config.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_board_open_close.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_board_open_close.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_enet_config.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_enet_config.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_enet_open_close.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_enet_open_close.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_enet_soc.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_enet_lwipif.c...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\ti_enet_lwipif.h...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\linker.cmd...
    Writing D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang\Debug\syscfg\linker_defines.h...
    Finished building: "../example.syscfg"
     
    Building file: "syscfg/ti_enet_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_config.d_raw" -MT"syscfg/ti_enet_config.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_enet_config.o" "syscfg/ti_enet_config.c"
    Finished building: "syscfg/ti_enet_config.c"
     
    Building file: "syscfg/ti_enet_open_close.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_open_close.d_raw" -MT"syscfg/ti_enet_open_close.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_enet_open_close.o" "syscfg/ti_enet_open_close.c"
    Finished building: "syscfg/ti_enet_open_close.c"
     
    Building file: "syscfg/ti_enet_soc.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_soc.d_raw" -MT"syscfg/ti_enet_soc.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_enet_soc.o" "syscfg/ti_enet_soc.c"
    Finished building: "syscfg/ti_enet_soc.c"
     
    Building file: "syscfg/ti_enet_lwipif.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_enet_lwipif.d_raw" -MT"syscfg/ti_enet_lwipif.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_enet_lwipif.o" "syscfg/ti_enet_lwipif.c"
    Finished building: "syscfg/ti_enet_lwipif.c"
     
    Building file: "syscfg/ti_power_clock_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_power_clock_config.d_raw" -MT"syscfg/ti_power_clock_config.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_power_clock_config.o" "syscfg/ti_power_clock_config.c"
    Finished building: "syscfg/ti_power_clock_config.c"
     
    Building file: "syscfg/ti_board_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_board_config.d_raw" -MT"syscfg/ti_board_config.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_board_config.o" "syscfg/ti_board_config.c"
    Finished building: "syscfg/ti_board_config.c"
     
    Building file: "syscfg/ti_dpl_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_dpl_config.d_raw" -MT"syscfg/ti_dpl_config.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_dpl_config.o" "syscfg/ti_dpl_config.c"
    Finished building: "syscfg/ti_dpl_config.c"
     
    Building file: "syscfg/ti_drivers_open_close.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_drivers_open_close.d_raw" -MT"syscfg/ti_drivers_open_close.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_drivers_open_close.o" "syscfg/ti_drivers_open_close.c"
    Finished building: "syscfg/ti_drivers_open_close.c"
     
    Building file: "syscfg/ti_pinmux_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_pinmux_config.d_raw" -MT"syscfg/ti_pinmux_config.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_pinmux_config.o" "syscfg/ti_pinmux_config.c"
    Finished building: "syscfg/ti_pinmux_config.c"
     
    Building file: "syscfg/ti_board_open_close.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_board_open_close.d_raw" -MT"syscfg/ti_board_open_close.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_board_open_close.o" "syscfg/ti_board_open_close.c"
    Finished building: "syscfg/ti_board_open_close.c"
     
    Building file: "../main.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"main.d_raw" -MT"main.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"main.o" "../main.c"
    Finished building: "../main.c"
     
    Building file: "syscfg/ti_drivers_config.c"
    Invoking: Arm Compiler
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -c -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -I"C:/ti/ti-cgt-armllvm_4.0.1.LTS/include/c" -I"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source" -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -MMD -MP -MF"syscfg/ti_drivers_config.d_raw" -MT"syscfg/ti_drivers_config.o" -I"D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/syscfg"   -o"syscfg/ti_drivers_config.o" "syscfg/ti_drivers_config.c"
    Finished building: "syscfg/ti_drivers_config.c"
     
    Building target: "sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang.out"
    Invoking: Arm Linker
    "C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmclang.exe" -mcpu=cortex-r5 -mfloat-abi=hard -mfpu=vfpv3-d16 -mlittle-endian -mthumb -DSOC_AM64X -D_DEBUG_=1 -g -Wall -Wno-gnu-variable-sized-type-not-at-end -Wno-unused-function -Wl,-m"sbl_null.Debug.map" -Wl,-i"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source/kernel/nortos/lib" -Wl,-i"C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source/drivers/lib" -Wl,-i"C:/ti/ti-cgt-armllvm_4.0.1.LTS/lib" -Wl,--reread_libs -Wl,--diag_suppress=10063 -Wl,--diag_wrap=off -Wl,--display_error_number -Wl,--warn_sections -Wl,--gen_xml_func_hash -Wl,--xml_link_info="sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang_linkInfo.xml" -Wl,--ram_model -o "sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang.out" "./syscfg/ti_dpl_config.o" "./syscfg/ti_drivers_config.o" "./syscfg/ti_drivers_open_close.o" "./syscfg/ti_pinmux_config.o" "./syscfg/ti_power_clock_config.o" "./syscfg/ti_board_config.o" "./syscfg/ti_board_open_close.o" "./syscfg/ti_enet_config.o" "./syscfg/ti_enet_open_close.o" "./syscfg/ti_enet_soc.o" "./syscfg/ti_enet_lwipif.o" "./main.o" -Wl,-l"syscfg/linker.cmd"  -Wl,-lnortos.am64x.r5f.ti-arm-clang.debug.lib -Wl,-ldrivers.am64x.r5f.ti-arm-clang.debug.lib -Wl,-llibc.a -Wl,-llibsysbm.a 
    Finished building target: "sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang.out"
     
    C:/ti/ccs1281/ccs/utils/bin/gmake -C D:\CCS\AM64x_2ndBoot\sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang -f makefile_ccs_bootimage_gen OUTNAME=sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang PROFILE=Debug MCU_PLUS_SDK_PATH=C:/ti/mcu_plus_sdk_am64x_11_00_00_15 CG_TOOL_ROOT=C:/ti/ti-cgt-armllvm_4.0.1.LTS CCS_INSTALL_DIR=C:\ti\ccs1281\ccs CCS_IDE_MODE=desktop DEVICE=am64x
     Boot image: am64x:r5fss0-0:nortos:ti-arm-clang sbl_null.Debug.hs_fs.tiimage ...
    C:/ti/ti-cgt-armllvm_4.0.1.LTS/bin/tiarmobjcopy --strip-all -O binary Debug/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang.out D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang.bin
    python C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source/security/security_common/tools/boot/signing/rom_image_gen.py --swrv 1 --sbl-bin D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang.bin --sysfw-bin C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc.bin --sysfw-inner-cert C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source/drivers/sciclient/soc/am64x_am243x/sysfw-hs-fs-enc-cert.bin --boardcfg-blob C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source/drivers/sciclient/sciclient_default_boardcfg/am64x/boardcfg_blob.bin --sbl-loadaddr 0x70000000 --sysfw-loadaddr 0x44000 --bcfg-loadaddr 0x7B000 --key C:/ti/mcu_plus_sdk_am64x_11_00_00_15/source/security/security_common/tools/boot/signing/rom_degenerateKey.pem --rom-image sbl_null.Debug.hs_fs.tiimage
    C:\ti\ccs1281\ccs/utils/cygwin/cp sbl_null.Debug.hs_fs.tiimage D:/CCS/AM64x_2ndBoot/sbl_null_am64x-Host_r5fss0-0_nortos_ti-arm-clang/Debug/tiboot3.bin
     Boot image: am64x:r5fss0-0:nortos:ti-arm-clang sbl_null.Debug.hs_fs.tiimage Done !!!
     .
     
    
    **** Build Finished ****
    
  • Hi Takeshi,

    The above build logs are correct and it seems you are able to build the SBL example without errors.

    You can flash this SBL binary and the resources allocation should be updated.

    Regards,

    Tushar

  • I wrote an SBL that matched the SDK and sysconfig versions and checked to see if the settings were reflected.
    The error message "[Error] Sciclient event config failed!!!" was still displayed, but the location of the error had changed.
    The error occurred on line 42. ROUTER 4 was configured properly.

    Before the resource allocation was reflected, I tried setting the GPIO interrupt with the default settings, but an error occurred when setting the second interrupt again.

    Is there a setting that I have missed?

  • Hi Takeshi,

    I have checked the file again. The error is expected as you are trying to configure the bank interrupt and the pins which you are using is GPIO0_32 and GPIO0_40 which belongs to the same GPIO Bank. 

    Routing a bank interrupt to two different routers is a violation and is not allowed. This is the reason for which you are getting sciclient error for second interrupt.

    Regards,

    Tushar

  • I understand the cause of the error.

    I thought the current way of writing was a way to set up an interrupt per pin, not a bank interrupt.

    I read the "GPIO" item in the SDK documentation and interpreted it as "bank interrupts and per-pin interrupts exist, and the setting methods are different." Please tell me how to set it up as a per-pin interrupt.

  • Hi,

    To configure the GPIO as pin interrupt you need to provide the pin index instead of bank number.

    Please refer below code.

    rmIrqReq.src_index              = 40;

    Regards,

    Tushar

  • I changed the value of rmIrqReq.src_index as shown in the example, and the error was resolved.
    Thank you.

    Let me confirm one thing in preparation for changing the specifications in the future.
    sysconfig does not issue an error for "routing bank interrupts to two different routers."
    When changing the GPIO interrupt settings from sysconfig, is it best to check that the generated code "does not generate errors?"
    If there is a way to set up GPIO interrupts without generating errors, please let me know.

  • Hi,

    Currently, the tool does not generates errors if you configure two different router output for pins lying in same bank.

    The tool currently doesn't generate code for GPIO pin interrupts and it needs to be done manually. 

    Regards,

    Tushar

  • Thank you for your reply. I will share this as a note of caution when changing settings.

  • Hi Takeshi,

    Thanks for the above note.

    Regards,

    Tushar