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.

[参考译文] Linux/DRA710:功能访问期间、在监控器模式下的 PWM dmTimer 2和3数据访问

Guru**** 2931100 points

Other Parts Discussed in Thread: REMOTI

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/653905/linux-dra710-pwm-dmtimer-2-and-3-data-access-in-supervisor-mode-during-functional-access

器件型号:DRA710

工具/软件:Linux

你(们)好

我有一个运行 Linux 4.45 PSDK 003的定制板

我从内核4.8反向移植了 PWM 驱动程序

elixir.free-electrons.com/.../pwm-omap-dmtimer.c

在 deviceTree 中添加了两个 PWM 器件、两者都出现在/sys/class/pwm 下

CTRL_TRIGGER_PWM:dmtimer_pmW@2{
compatible ="ti、omap-dmtimer-pwm";
ti、计时器=<&timer2>;
#pwm-cells =<3>;
pinctrl-names ="default";
pinctrl-0 =<&dmtimer2_pines>;
};

CTRL_LED_PWM:dmtimer_pmw@3{
compatible ="ti、omap-dmtimer-pwm";
ti、timers =<&timer3>;
#pwm-cells =<3>;
pinctrl-names ="default";
pinctrl-0 =<&dmtimer3_PINs>;
}; 

/*触发 PWM */
时间2{(&T)
状态="正常";
TI、定时器-PWM;
};

/* LED 控制 PWM */
时间器3{(&T)
状态="正常";
TI、定时器-PWM;
};

我可以使用成功配置和激活其中一个  

echo 0 >/sys/class/pwm/pwmchip1/export
echo 16000000 >/sys/class/pwm/pwmchip1/pwm0/period
echo 8000000 >/sys/class/pwm/pwmchip1/pwm0/duty_cycle
Echo 1 >/sys/class/pwm/pwmchip1/pwm0/enable

但一旦启用、另一个无法配置、内核错误为:

[110.890842]------ [在此处剪切]-----
[110.895495]警告:CPU:0 PID:571 at /mnt/yocto/yocto_repo/build/arago-tmp-external-linaro-toolchain/work-shared/delphi-jlr-isp-proto/kernel-source/drivers/bus/omap_l3_noc.c:147 L3_interrupt_handler+0x24c/0x350 ()
[110.914696] 44000000.OCP:L3自定义错误:主 MPU 目标 L4_PER1_P3 (空闲):在功能访问期间以监控器模式进行数据访问
[110.926829]链接的模块:xhci_hcd usbcore dwc3 UDC_CORE ECB SHA512_generic SHA512_arm SHA256_generic HMAC MD5 SHA1_generic PWM_OMAP-dmtimer SHA1_ARM_SHA1_arm dwti_driver_tirte_vapor_g_vapor_remote_remote_remote_vapor_apor_pr_prue_remote_remote_remote_vapote_remote_remoti_pr_pr_prue_te_remoti_prue_vapote_remote_remoti_pruap_prue_remote_remoti_pr_pruapote_remote_remoti_pr_
[110.960160] CPU:0 PID:571 Comm:sh 污染:G O 4.4.4.45-g89944627d5 #4
[110.967933]硬件名称:通用 DRA72X (平展器件树)
[110.974061][ ](展开回扫)从[ ](show_stack+0x10/0x14)
[110.981844][ ](show_stack)从[ ](WARN_RASPEK_COMMON + 0x80/0xac)
[110.989972][ ](warn_slowpath_common)、来自[ ](WARN_RASPH_FMt+0x30/0x40)
[110.998713][ ](warn_slowpath_fmt)、来自[ ](L3_INTERRUPT_Handler+0x24c/0x350)
[111.007626][ ](L3_interrupt_handler)、来自[ ](handle_irq_event_perpu + 0x9C/0x15c)
[111.016972][ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x38/0x5c)
[111.025884][ ](handle_irq_event)从[ ](handle_fasteoi_IRQ+0xe0/0x1a8)
[111.034446][ ](handle_fasteoi_IRQ)、来自[ ](generic_handle_IRQ+0x24/0x34)
[111.043095][ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x70/0xdc)
[111.051830][ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x38/0x64)
[111.060216][ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x44/0x7c)
[111.067727]异常堆栈(0xce51de20至0xce51de68)
[111.072799] de20:00000000 c0857050 00000000 d20abe80 600e0013 d3f3d0a0 d3f3d0a0 600e0013
[111.0810101010]de40:ce626680 cefb430c ce51df88 00000000 00000005 ce51de70 c006a7b8 c06a48f0
[111.089219] de60:200e0013 ffffff
[111.092727][ ](_IRQ_Svc)从[ ](_raW_spin_unlock_irqrestore+0x70/0x74)
[111.101382][ ](_raW_spin_unlock_irqrestore)从[ ](__pm_runtime_idle+0x78/0x9C)
[111.110736][ ](__pm_runtime_idle)从[ ](PWM_OMAP-dmtimer_start+0x54/0x74 [PWM_OMAP-dmtimer])
[111.121335][ ](PWM_OMAP-dmtimer_start [PWM_OMAP-dmtimer])、来自[ ](PWM_OMAP-dmtimer_enable+0x20/0x30 [PWM_OMAP-dmtimer])
[111.134091][ ](PWM_OMAP-dmtimer_enable [PWM_OMAP-dmtimer])、来自[ ](PWM_ENABLE+0x68/0x94)
[111.144138][ ](PWM_ENABLE)从[ ](enable_store+0x48/0x78)
[111.1569][ ](ENABLE_STORE)从[ ](kernfs_fop_write+bbc/0x19c)
[111.159608][ ](kernfs_fop_write)、来自[ ](_vfs_write+0x1c/0xd8)
[111.167473][ ](_vfs_write)、来自[ ](vfs_write+0x90/0x16c)
[111.174815][ ](vfs_write)从[ ](SYS_WRITE+0x44/0x9C)
[111.1818181897][ ](sys_write)从[ ](RET_FAST_SYSCALL+0x0/0x1c)
[111.189495]-[结束线迹97a20d96d8043ec3 ]---

从  dmtimer.c 调用 pm_runtime_disable()时出现问题

你有什么建议吗?

此致

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

    该问题已转交给一位专家征求意见。

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

    您好!

     驾驶员是否按预期工作? 大多数情况下、L3警告不应影响功能。

    您是否尝试使用计时器控制 LED 亮度?

    此致、

    RK

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

    你(们)好

    驱动程序确实按预期工作,但日志会打印此类错误,因此我无法将其保留原样

    使用的方法是控制 LED (使用其他仪表)

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

    您好、Jose、

     它是否在每次运行时发生? 这似乎源自

    PWM_OMAP-dmtimer_start->"OMAP->pdata->disable (OMAP->dm_timer);"-> OMAP-dm_timer_disable->pm_runtime_pote_pot_sync()

    您是否曾尝试过 kernel.org 中的主线内核? 您是否也在上游内核中看到了该问题?  

    此致、

    RK

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

    是的

    它会在每次运行中发生

    我在定制板版本03_02_00_03中使用 Automotive SDK

    每当我跑步时、都似乎发生了镜像  

    omap_dm_timer_disable->pm_runtime_put 同步()

    在 dmtimer.c 中也调用了 omap_dm_timer_disable()内的调用

    此致

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

    只是为了更新您- RK 本周已不在办公室、因此可能会有一些响应延迟。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jose、
    您是否试用过暂挂 dmtimer-PWM 的较新内核版本?

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

    我们正在进行持续开发、因此我们无法更改内核版本!

    我发现了一个工作、显然它在工作
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您能描述一下为他人利益而开展的工作吗?

    此致、
    RK