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.

[参考译文] TDA4AL-Q1:SDK0806 中的 GPIO_socConfigIntrPath init 失败

Guru**** 2378640 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1519280/tda4al-q1-gpio_socconfigintrpath-init-fail-in-sdk0806

器件型号:TDA4AL-Q1

工具/软件:

尊敬的专家:

我们的客户正在通过 TDA4AL 的 MCU2_0 上的 SDK0806 来开发引脚 EXTINTn 的中断功能。 他们在默认 PDK init 中找到 GPIO API:gpio_socConfigIntrPath 将失败。 通过在 E2E 上搜索、我们发现 SDK0806 上存在一个问题: https://sir.ext.ti.com/jira/browse/EXT_EP-10914、此问题将在 SDK0901 中得到修复。 鉴于我们的客户没有升级 SDK 的计划、需要您帮助提供适用于 SDK0806 的补丁。 谢谢

此致、

朱星宇

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Xingyu:

    谁是客户?

    他们找到了 GPIO API:默认 PDK init 中的 gpio_socConfigIntrPath 将失败。

    此外、该函数返回什么错误?

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Neehar、
       Sciclient_rmIrqSet() 返回–1、其参数如下:
          

    rmIrqReq.src_id           = TISCI_DEV_GPIO0;
    rmIrqReq.src_index        = 0;  
    rmIrqReq.valid_params |= TISCI_MSG_VALUE_RM_DST_ID_VALID;
    rmIrqReq.valid_params |= TISCI_MSG_VALUE_RM_DST_HOST_IRQ_VALID;
    
    rmIrqReq.dst_id       = TISCI_DEV_R5FSS0_CORE0;
    rmIrqReq.dst_host_irq = 396;

       代码执行路径为 Sciclient_rmIrqSet () ->  Sciclient_rmProgramInterruptRoute ()->  Sciclient_rmIrqFindRoute (),返回 CSL_EFAIL 且  search_path = 3。

          我使用 MCU2_0.SDK、PDK 版本为 ti-processor-sdk-rtos-j721s2-evm-08_06_01_03/pdk_j721s2_08_06_01_03。

         TI 专家   提到“
    主域 GPIO 中断存在一个已知问题、此问题已在 SDK 9.1 中修复。

    https://sir.ext.ti.com/jira/browse/EXT_EP-10914  “、位于以下链接中:
          https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1299569/tda4vm-configuration-for-gpio-interrupt/4933949?tisearch=e2e-sitesearch&keymatch=PDK%2520GPIO#4933949


    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Neehar、
       以下是 pinmux 配置:
           

    static pinmuxPerCfg_t gMain_gpio0PinCfg[] =
    {
        /* PIN_EXTINTN -> AG24 */
        {
            PIN_EXTINTN, PIN_MODE(7) | \
            ((PIN_PULL_DISABLE | PIN_INPUT_ENABLE | PIN_OUTPUT_DISABLE) & (~PIN_PULL_DIRECTION))
        },
        {PINMUX_END}
    };


       GPIO 配置代码:
           
    /* GPIO Driver board specific pin configuration structure */
    GPIO_PinConfig gpioPinConfigs[] =
    {
        /* Input pin */
        GPIO_DEVICE_CONFIG(0, 0) | GPIO_CFG_INPUT | GPIO_CFG_IN_INT_RISING,    /*AG24 PIN_EXTINTn GPIO0_0*/
    };
    
    void AppGpioCallbackFxn(void)
    {
        appLogPrintf("signal changed\n");
    }
    
    /* GPIO Driver call back functions */
    GPIO_CallbackFxn gpioCallbackFunctions[] =
    {
       NULL
    };
    
    /* GPIO Driver configuration structure */
    GPIO_v0_Config GPIO_v0_config =
    {
        gpioPinConfigs,
        gpioCallbackFunctions,
        sizeof(gpioPinConfigs) / sizeof(GPIO_PinConfig),
        sizeof(gpioCallbackFunctions) / sizeof(GPIO_CallbackFxn),
    #if (__ARM_ARCH == 7) && (__ARM_ARCH_PROFILE == 'R') /* R5F */
        0x8U
    #else
    #if defined(BUILD_C7X)
        0x01U
    #else
        0x20U
    #endif
    #endif
    };
    
    
    int32_t appGPIOInit()
    {
        GPIO_v0_HwAttrs gpio_cfg;
    
        /* Get the default init configurations */
        GPIO_socGetInitCfg(0, &gpio_cfg);
        gpio_cfg.baseAddr = CSL_GPIO0_BASE;
        GPIO_socSetInitCfg(0, &gpio_cfg);
    
        /* Initializes the gpio */
        GPIO_init();
    
        /* Set the callback function */
        GPIO_setCallback(0, AppGpioCallbackFxn);
    
        /* Enable GPIO interrupt on the specific gpio pin */
        GPIO_enableInt(0);
    
        return 0;
    }


       MCU2_0 的输出日志如下:
           
    [MCU2_0]      3.238168 s: GPIO_setConfig_v0:502 gpio port 0 pin 0 direction 1
    [MCU2_0]      3.238233 s: GPIO_setConfig_v0:514 gpioPortIntIdx 0 portHwiCreatedBitMask 0x0 gpioPortIntBitMask 0x1
    [MCU2_0]      3.238309 s: GPIO_socConfigIntrPath:467 portNum 0 pinNum 0 setIntrPath 1 baseAddr 0x600000
    [MCU2_0]      3.238362 s: GPIO_socGetCoreSciId:690 BUILD_MCU devId 279
    [MCU2_0]      3.238424 s: GPIO_socConfigIntrPath:539 ir_id 148 src_id 111 src_index 0 dst_id 279
    [MCU2_0]      3.238544 s: GPIO_socConfigIntrPath:544 retVal 0 irq_range_start 396 irq_range_num 4
    [MCU2_0]      3.238595 s: GPIO_socConfigIntrPath:566 retVal 0
    [MCU2_0]      3.238699 s: Sciclient_rmIrqFindRoute:1975 retVal -1 search_depth 3 Sciclient_rmPsGetMaxPsp 3
    [MCU2_0]      3.238760 s: Sciclient_rmProgramInterruptRoute:905 d_irq is 0x18c retVal -1
    [MCU2_0]      3.238809 s: Sciclient_rmProgramInterruptRoute:945 retVal -1
    [MCU2_0]      3.238852 s: GPIO_socConfigIntrPath:592 retVal -1
    [MCU2_0]      3.238900 s: GPIO_setConfig_v0:552 Configure SOC interrupt path ret_socIntrPath -1
    [MCU2_0]      3.238954 s: GPIO_setConfig_v0:562 eventId 0 intNum 396
    [MCU2_0]      3.238995 s: GPIO_setConfig_v0:569 R5F  OSAL_ARM_GIC_TRIG_TYPE_EDGE
    [MCU2_0]      3.239040 s: GPIO_setConfig_v0:580 error constructing the Hwi for GPIO Port


    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

    感谢您提供此信息。 我将进一步研究这一点、然后返回给您。

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Neehar、
       是否有关于此问题的任何更新?
    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

    您是否在为任何内核上的所有 GPIO 配置中断路径时遇到问题? 或者、问题是否仅发生在 MCU2_0 上的 GPIO0_0 上?

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Neehar、
      我尝试了 GPIO0_17、GPIO0_28 和  GPIO0_34、 但都未能配置 中断路径。  。、gpio_read () 可以得到正确的 0、1、1 μ s  
       

        GPIO 配置代码:
       

    /* GPIO Driver board specific pin configuration structure */
    GPIO_PinConfig gpioPinConfigs[] =
    {
        /* Input pin */
        GPIO_DEVICE_CONFIG(0, 17) | GPIO_CFG_INPUT  | GPIO_CFG_IN_INT_LOW,   /*E20 PIN_MCU_OSPI0_LBCLKO GPIO0_17*/
        /* Input pin */
        GPIO_DEVICE_CONFIG(0, 28) | GPIO_CFG_INPUT  | GPIO_CFG_IN_INT_HIGH,    /*G17 PIN_MCU_OSPI0_CSN1 GPIO0_28*/
        /* Input pin */
        GPIO_DEVICE_CONFIG(0, 34) | GPIO_CFG_INPUT  | GPIO_CFG_IN_INT_HIGH,     /*G17 PIN_MCU_OSPI1_D0 GPIO0_34*/
    };
    
    void AppGpioLevelHighCallbackFxn(void)
    {
        appLogPrintf("gpio level high int\n");
    }
    
    void AppGpioLevelLowCallbackFxn(void)
    {
        appLogPrintf("gpio level low int\n");
    }
    
    int32_t appGPIOInit()
    {
        GPIO_v0_HwAttrs gpio_cfg;
    
        /* Get the default SPI init configurations */
        GPIO_socGetInitCfg(0, &gpio_cfg);
        gpio_cfg.baseAddr = CSL_WKUP_GPIO0_BASE;
            (gpio_cfg.intCfg[0]).intcMuxNum = INVALID_INTC_MUX_NUM;
            (gpio_cfg.intCfg[0]).intcMuxInEvent = 0;
            (gpio_cfg.intCfg[0]).intcMuxOutEvent = 0;
        GPIO_socSetInitCfg(0, &gpio_cfg);
    
        /* Initializes the gpio */
        GPIO_init();
    
        /* Set the callback function */
        GPIO_setCallback(GPIO_HW_ID_1, AppGpioLevelLowCallbackFxn);
        GPIO_setCallback(GPIO_HW_ID_2, AppGpioLevelHighCallbackFxn);
        GPIO_setCallback(GPIO_HW_ID_3, AppGpioLevelHighCallbackFxn);
    
        /* Enable GPIO interrupt on the specific gpio pin */
        GPIO_enableInt(GPIO_HW_ID_1);
        GPIO_enableInt(GPIO_HW_ID_2);
        GPIO_enableInt(GPIO_HW_ID_3);
    
        return 0;
    }


       

       MCU2_0 的输出日志如下:
       

    [MCU2_0]      3.583947 s: GPIO_setConfig_v0:502 gpio port 0 pin 17 direction 1
    [MCU2_0]      3.584014 s: GPIO_setConfig_v0:514 gpioPortIntIdx 0 portHwiCreatedBitMask 0x0 gpioPortIntBitMask 0x1
    [MCU2_0]      3.584091 s: GPIO_socConfigIntrPath:467 portNum 0 pinNum 17 setIntrPath 1 baseAddr 0x42110000
    [MCU2_0]      3.584145 s: GPIO_socGetCoreSciId:689 BUILD_MCU devId 279
    [MCU2_0]      3.584206 s: GPIO_socConfigIntrPath:539 ir_id 125 src_id 115 src_index 1 dst_id 279
    [MCU2_0]      3.584898 s: GPIO_socConfigIntrPath:544 retVal 0 irq_range_start 500 irq_range_num 2
    [MCU2_0]      3.584953 s: GPIO_socConfigIntrPath:565 retVal 0
    [MCU2_0]      3.585052 s: Sciclient_rmIrqFindRoute:1975 retVal -1 search_depth 3 Sciclient_rmPsGetMaxPsp() 3
    [MCU2_0]      3.585117 s: Sciclient_rmProgramInterruptRoute:905 d_irq is 0x1f5 retVal -1
    [MCU2_0]      3.585166 s: Sciclient_rmProgramInterruptRoute:945 retVal -1
    [MCU2_0]      3.585209 s: GPIO_socConfigIntrPath:591 retVal -1
    [MCU2_0]      3.585257 s: GPIO_setConfig_v0:552 Configure SOC interrupt path ret_socIntrPath -1
    [MCU2_0]      3.585311 s: GPIO_setConfig_v0:562 eventId 0 intNum 501
    [MCU2_0]      3.585351 s: GPIO_setConfig_v0:569 R5F  OSAL_ARM_GIC_TRIG_TYPE_EDGE
    [MCU2_0]      3.585397 s: GPIO_setConfig_v0:580 error constructing the Hwi for GPIO Port
    
    [MCU2_0]      3.585456 s: GPIO_setConfig_v0:502 gpio port 0 pin 28 direction 1
    [MCU2_0]      3.585518 s: GPIO_setConfig_v0:514 gpioPortIntIdx 0 portHwiCreatedBitMask 0x0 gpioPortIntBitMask 0x1
    [MCU2_0]      3.585593 s: GPIO_socConfigIntrPath:467 portNum 0 pinNum 28 setIntrPath 1 baseAddr 0x42110000
    [MCU2_0]      3.585644 s: GPIO_socGetCoreSciId:689 BUILD_MCU devId 279
    [MCU2_0]      3.585705 s: GPIO_socConfigIntrPath:539 ir_id 125 src_id 115 src_index 1 dst_id 279
    [MCU2_0]      3.585825 s: GPIO_socConfigIntrPath:544 retVal 0 irq_range_start 500 irq_range_num 2
    [MCU2_0]      3.585876 s: GPIO_socConfigIntrPath:565 retVal 0
    [MCU2_0]      3.585964 s: Sciclient_rmIrqFindRoute:1975 retVal -1 search_depth 3 Sciclient_rmPsGetMaxPsp() 3
    [MCU2_0]      3.586028 s: Sciclient_rmProgramInterruptRoute:905 d_irq is 0x1f5 retVal -1
    [MCU2_0]      3.586077 s: Sciclient_rmProgramInterruptRoute:945 retVal -1
    [MCU2_0]      3.586120 s: GPIO_socConfigIntrPath:591 retVal -1
    [MCU2_0]      3.586167 s: GPIO_setConfig_v0:552 Configure SOC interrupt path ret_socIntrPath -1
    [MCU2_0]      3.586220 s: GPIO_setConfig_v0:562 eventId 0 intNum 501
    [MCU2_0]      3.586262 s: GPIO_setConfig_v0:569 R5F  OSAL_ARM_GIC_TRIG_TYPE_EDGE
    [MCU2_0]      3.586307 s: GPIO_setConfig_v0:580 error constructing the Hwi for GPIO Port
    
    [MCU2_0]      3.586366 s: GPIO_setConfig_v0:502 gpio port 0 pin 34 direction 1
    [MCU2_0]      3.586428 s: GPIO_setConfig_v0:514 gpioPortIntIdx 0 portHwiCreatedBitMask 0x0 gpioPortIntBitMask 0x1
    [MCU2_0]      3.586501 s: GPIO_socConfigIntrPath:467 portNum 0 pinNum 34 setIntrPath 1 baseAddr 0x42110000
    [MCU2_0]      3.586553 s: GPIO_socGetCoreSciId:689 BUILD_MCU devId 279
    [MCU2_0]      3.586613 s: GPIO_socConfigIntrPath:539 ir_id 125 src_id 115 src_index 2 dst_id 279
    [MCU2_0]      3.586711 s: GPIO_socConfigIntrPath:544 retVal 0 irq_range_start 500 irq_range_num 2
    [MCU2_0]      3.586760 s: GPIO_socConfigIntrPath:565 retVal 0
    [MCU2_0]      3.586836 s: Sciclient_rmIrqFindRoute:1975 retVal -1 search_depth 3 Sciclient_rmPsGetMaxPsp() 3
    [MCU2_0]      3.586898 s: Sciclient_rmProgramInterruptRoute:905 d_irq is 0x1f6 retVal -1
    [MCU2_0]      3.586951 s: Sciclient_rmProgramInterruptRoute:945 retVal -1
    [MCU2_0]      3.586995 s: GPIO_socConfigIntrPath:591 retVal -1
    [MCU2_0]      3.587041 s: GPIO_setConfig_v0:552 Configure SOC interrupt path ret_socIntrPath -1
    [MCU2_0]      3.587094 s: GPIO_setConfig_v0:562 eventId 0 intNum 502
    [MCU2_0]      3.587134 s: GPIO_setConfig_v0:569 R5F  OSAL_ARM_GIC_TRIG_TYPE_EDGE
    [MCU2_0]      3.587181 s: GPIO_setConfig_v0:580 error constructing the Hwi for GPIO Port


    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    除 MCU2_0 之外的任何其他内核上是否存在相同的问题?

    感谢您提供详细的日志、我将更深入地介绍它。

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、
      我  `在内核的用户空间中运行 GPIO 代码、但在编译过程中遇到链接错误“未定义对。gpio_socSetInitCfg'的引用“
      、SDK 中存在早于 9.1k Ω 的已知问题、请参阅以下两个链接:
        1.  TI 专家   
    在以下链接中提到“主域 GPIO 中断存在一个已知问题、此问题已在 SDK 9.1 中修复。“:   https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1299569/tda4vm-configuration-for-gpio-interrupt/4933949?tisearch=e2e-sitesearch&keymatch=PDK%2520GPIO#4933949
     
        2. TI JIRA https://sir.ext.ti.com/jira/browse/EXT_EP-10914 “ --

         主域 GPIO 不处理中断

    • 在发行版中修复:
      processor_sdk_09.01.00

      谢谢
      Zhao Li
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

    我正在研究它,并将在几天内回到你。

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Neehar、
       我在内核、中尝试了 GPIO0_0 手动将 GPIO 的方向更改为输入后、可以触发中断。

       这是测试代码
       

    dts:
     main_gpio_pins_default: main-gpio-pins-default {
    	pinctrl-single,pins = <
    		J721S2_IOPAD(0x0, PIN_INPUT, 7) /* (AC18) EXTINTn.GPIO0_0 */
    	>;
     };
     
     fsync-gpios = <&main_gpio0 0 GPIO_ACTIVE_HIGH>;
     
    
    interrupt code:
    static inline irqreturn_t sync_handler(int irq, void *id)
    {
        struct timespec64 ts;
        ktime_get_ts64(&ts);
        pr_info("ktime_get_ts64(): %lld.%09ld\n", (long long)ts.tv_sec, ts.tv_nsec);
        return IRQ_HANDLED;
    }
    
    static int gpio_irq_init(struct device_node *node)
    {
    	int ret;
        int fsync_irq;
    	int fsync_gpio;
    	
        fsync_gpio = of_get_named_gpio(node, "fsync-gpios", 0);
    
        if (!gpio_is_valid(fsync_gpio))
            return -EINVAL;
    
        if (gpio_request(fsync_gpio, "gpio_label") < 0)
        {
            pr_err("Fail to request GPIO %d\n", fsync_gpio);
            return -EINVAL;
        }
        
        gpio_direction_input(fsync_gpio);
    
    	fsync_irq = gpio_to_irq(fsync_gpio);
        ret = request_irq(fsync_irq, sync_camera_handler, IRQF_TRIGGER_RISING, "GPIO_FSYNC", NULL); 
        if (ret < 0)
        {
            pr_err("request fsync irq error ret:%d\n", ret);
            gpio_free(fsync_gpio);
            return -EINVAL;
        }
    
        pr_info("Success register fsync irq %d\n", fsync_irq);
        return 0;
    } 
       

        
       当 GPIO0_0 值从 0 变为 1 时、没有中断
        

    root@imotion:/mnt# ./devmem2 0x00600020
    /dev/mem opened.
    Memory mapped at address 0xffffb51f3000.
    Read at address  0x00600020 (0xffffb51f3020): 0x2A1C4EF4  ==> bit0 value 0
    
    root@imotion:/mnt# ./devmem2 0x00600020
    /dev/mem opened.
    Memory mapped at address 0xffff87bdb000.
    Read at address  0x00600020 (0xffff87bdb020): 0x2A1D4EF5  ==> bit0 value 1
    
    root@imotion:/mnt# cat /proc/interrupts | grep GPIO
    263:          0          0      GPIO   0 Edge    -davinci_gpio  GPIO_FSYNC ==>interrupt 0
    


       将 GPIO0_0 的方向从输出更改为输入后、可以触发中断
       
    root@imotion:/mnt# ./devmem2 0x00600010
    /dev/mem opened.
    Memory mapped at address 0xffff9c797000.
    Read at address  0x00600010 (0xffff9c797010): 0xFFFFFFFE  => bit 0 output
    root@imotion:/mnt# ./devmem2 0x00600010 w 0xFFFFFFFF
    /dev/mem opened.
    Memory mapped at address 0xffff843e3000.
    Read at address  0x00600010 (0xffff843e3010): 0xFFFFFFFE
    Write at address 0x00600010 (0xffff843e3010): 0xFFFFFFFF, readback 0xFFFFFFFF => bit 0 input
    
    root@imotion:/mnt# ./devmem2 0x00600020
    /dev/mem opened.
    Memory mapped at address 0xffffb51f3000.
    Read at address  0x00600020 (0xffffb51f3020): 0x2A1C4EF4 => bit 0 value 0
    
    root@imotion:/mnt# ./devmem2 0x00600020
    /dev/mem opened.
    Memory mapped at address 0xffff87bdb000.
    Read at address  0x00600020 (0xffff87bdb020): 0x2A1D4EF5 => bit 0 value 1
    
    root@imotion:/mnt# cat /proc/interrupts | grep GPIO
    263:          1          0      GPIO   0 Edge    -davinci_gpio  GPIO_FSYNC  ==>interrupt triggered
    


       代码   GPIO_DIRECTION_INPUT (SYNC_GPIO) 已经将 GPIO0_0 的方向设置 为输入、不知道为什么会变成输出。  
       
    [    1.623786]__davinci_direction offset 0x0 bank 0x0 mask 0x1 read-value 0xffffffff
    [    1.632988]__davinci_direction offset 0x0 bank 0x0 mask 0x1 write-value 0xffffffff
    


       重要的是、中断最终可以在内核中成功触发、在 MCU2_0 中不起作用。

    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

    您是否对 sciclient_defaultBoardcfg_rm.c 进行了任何更改?

    该文件可在以下位置找到:  [pdk_install_path]/packages/ti/drv/sciclient、soc Boardcfg/V4/sciclient_defaultBoardcfg_rm.c

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Neehar、
      我已检查了 git repo、没有关于  sciclient_defaultBoardcfg_rm.c 的更改历史记录、这与原始封装 ti-processor-sdk-rtos-j721s2-evm-08_06_01_03 中的历史记录一致

    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

        MCU2_0 的输出日志如下:

    在这种情况下、sciclient 调用的值是正确的。 我正在更深入地研究为什么 sciclient 呼叫失败。

    MCU2_0 的输出日志如下:

    所有三个 WKUP_GPIO 引脚的闪烁调用的值也正确。 但是、从 WKUP_GPIOMUX_INTR 分配的中断线路只有 2 条。 因此、除非您为内核分配更多线路、否则您将无法为所有三个引脚注册中断。

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

    鉴于我们的客户没有升级 SDK 的计划、需要您的帮助来提供可在 SDK0806 上运行的补丁。

    请查看以下补丁、了解从 SDK 8.6 到 SDK 9.1 所做的更改:

    https://git.ti.com/cgit/processor-sdk/pdk/commit/packages/ti/drv/gpio/soc j721s2/gpio_soc.c?id=56f48eb92db3f993fadc1311ef0302610c601f45

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Neerhar:
       非常感谢! 我将尝试这个补丁并在稍后提供反馈。


    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

    我 将等待您的测试和反馈。

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Neerhar:
      此修补程序不适用于我的 case、   Sciclient_rmIrqSet () 像以前一样返回–1。
      可能在我们的 sciclient boardcfg 中存在一些错误配置、我将深入探究这些错误。
      感谢您的帮助! 此票证可以关闭。

    谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhao、

    如有任何疑问或问题、欢迎随时跟进。

    谢谢、

    Neehar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的  Neerhar:
       我已经弄清楚了、这里是逻辑链:
        
        

    intr router cfg muxcntl enable  failed due to id 145 in use
        ==> Sciclient_rmIrInpIsFree failed with id 145
             ==> Sciclient_rmIrqRouteValidate fail with ret -1
                   => Sciclient_rmIrqFindRoute fail with ret -1
                       => Sciclient_rmProgramInterruptRoute fail with ret -1
                            => Sciclient_rmIrqSet fail with ret -1

        
        IRQ id 145 已被主域占用:
        
    	main_gpio0: gpio@600000 {
    		compatible = "ti,j721e-gpio", "ti,keystone-gpio";
    		reg = <0x00 0x00600000 0x00 0x100>;
    		gpio-controller;
    		#gpio-cells = <2>;
    		interrupt-parent = <&main_gpio_intr>;
    		interrupts = <145>, <146>, <147>, <148>, <149>;
    		interrupt-controller;
    		#interrupt-cells = <2>;
    		ti,ngpio = <66>;
    		ti,davinci-gpio-unbanked = <0>;
    		power-domains = <&k3_pds 111 TI_SCI_PD_EXCLUSIVE>;
    		clocks = <&k3_clks 111 0>;
    		clock-names = "gpio";
    	};
       

       通过从主域 DTS 上删除 IRQ id 145 可以解决此问题、尽管内核输出了一些警告日志。
       希望这可以帮助你和其他人。


     谢谢
    Zhao Li

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Zhao 的详细答复! 我将了解这一点、并为未来的客户创建一个补丁或常见问题解答。

    谢谢、

    Neehar