主题中讨论的其他器件: TDA2
工具/软件:Linux
在基于 DRA76p (特别是 TDA2Plus) SoC 的定制板上、我在 Linux (4.4.4.84)引导期间遇到了一些问题;
(1) omap_hwmod:mcan:无法初始化时钟
(2) omap_hwmod:timer12:只能从初始化、空闲或禁用状态进入启用状态
(3) OMAP-hwmod:RNG:只能从初始化、空闲或禁用状态进入启用状态
(笑声) 如果您对此很熟悉 、请告诉我。
Tnx - Marco
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
在基于 DRA76p (特别是 TDA2Plus) SoC 的定制板上、我在 Linux (4.4.4.84)引导期间遇到了一些问题;
(1) omap_hwmod:mcan:无法初始化时钟
(2) omap_hwmod:timer12:只能从初始化、空闲或禁用状态进入启用状态
(3) OMAP-hwmod:RNG:只能从初始化、空闲或禁用状态进入启用状态
(笑声) 如果您对此很熟悉 、请告诉我。
Tnx - Marco
提出 TDA2P 的特殊内部振荡时间器12时、似乎存在一个问题:
------ [在此处剪切]----- [0.635800]警告:CPU:0 PID:1 at arch/arm/mach-omap2/omap_hwmod.c:2108 _enable+0x2b8/0x2d0 () [0.635808] omap_hwComm:timer12:Enabled 状态只能从初始化、空闲或禁用状态输入 [0.635815] vap1:每个 CPU 中链接的 PID:0.350:0.830:0.350 W 4.4.4.84XXXXX#2 [0.635838]硬件名称:通用 DRA74X (平展设备树) [0.635845]背板: [0.635866][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c) [0.635874] R6:20000093 R5:ffff R4:00000000 R3:00000000 [ 0.635905][ ](show_stack)从[ ](dump_stack+0x7c/0x9C) [ 0.635919][ ](dump_stack)从[ ](warn_slespath_common+0x7c/bb8) [0.635926] r6:c06b5cf8 r5:0000083c r4:eec8dc70 r3:eec8c000 [0.635952][ ](warn_slowpath_common)、来自[ ](warn_slespath_fmt+0x38/0x40) [0.635959] r8:00000004 r7:c00319f0 r6:a0000093 r5:ffffea r4:c07afb40 [0.635987][ ](warn_slowpath_fmt)、来自[ ](_ENABLE+0x2b8/0x2d0) [ 0.635994] R3:c06b823c R2:c06b617c [ 0.636013][ ](_enable)从[ ](omap_hwmod_enable+0x2C/0x4c) [0.636019] r7:c00319f0 r6:a0000093 r5:c07afba0 r4:c07afb40 [0.636045][ ](OMAP-hwmod_enable)、来自[ ](OMAP-DEVICE_ENABLE+0x48/0x9C) [0.636051] R6:eee3b6c0 R5:00000000 R4:00000001 R3:ee3b700 [0.636076][ ](OMAP-DEVICE_ENABLE)从[ ](_od_runtime_resume+0x18/0x2C) [0.636083] R6:c00319f0 R5:ee4fa74 R4:ee4fa10 R3:00000000 [0.636111][ ](_od_runtime_resume)从[ ](__rpm_callback+0x34/0x68) [0.636117] R4:ee4fa10 R3:00000000 [0.636136][ ](_rpm_callback)、来自[ ](rpm_callback+0x28/0x88) [0.636143] R6:eee06c10 R5:c079c100 R4:ee4fa10 R3:00000002 [0.636168][ ](rpm_callback)、来自[ ](rpm_resume+0x384/0x4fc) [0.636175] R5:c079c100 R4:ee4fa10 [0.636191][ ](rpm_resume)、从[ ](__pm_runtime_resume+0x54/0x6c) [0.636197] r10:eee39880 r9:c078683c r8:eee398a8 r7:60000013 r6:00000004 r5:ee4fa74 [0.636222] r4:ee4fa10 [ 0.636237][ ](__pm_runtime_resume)从[ ](omap_dm_timer_probe +0x198/0x3e8) [0.636244] r7:c0577ef0 r6:ee4fa10 r5:ee4fa00 r4:eef550d0 [0.636271][ ](OMAP-dm_timer_probe)、来自[ ](platform_drv_probe +0x58/b8) [0.636278] r10:00000000 r8:00000000 r7:c07b0a5c r6:fffffdfb r5:ee4fa10 r4:ffffffffffffffed [0.636309][ ](platform_drv_probe)、来自[ ](driver_probe_device+0x1e8/0x2b0) [0.636316] r7:c07b0a5c R6:00000000 R5:c0823d9c R4:ee4fa10 [0.636342][ ](driver_probe_device)从[ ](__DRIVER_ATE_ATT+0x94/0x98) [0.636348] r8:c075427c r7:00000000 r6:ee4fa44 r5:c07b0a5c r4:ee4fa10 r3:00000000 [0.636379][ ](__driver_attach)从[ ](BUS_TO_EASE_DEV_0x5c/0x90) [ 0.636385] R6:c032559c R5:c07b0a5c R4:00000000 R3:00000000 [ 0.636410][ ](bus_for_each_dev)、来自[ ](DRIVER_ATT+0x24/0x28) [0.636417] R6:c07d64e0 R5:eef52600 R4:c07b0a5c [0.636439][ ](driver_attach)从[ ](BUS_ADD_DRIVER+0xf0/0x1fc) [ 0.636452][ ](BUS_ADD_DRIVER)从[ ](driver_register+0x80/0xFC) [0.636458] r7:00000077 R6:eef53040 R5:c07a29a8 R4:c07b0a5c [0.636483][ ](driver_register)、从[ ](__platform_driver_register+0x4c/0x50) [0.636489] R5:c07a29a8 R4:c07a29a8 [0.636506][ ](__platform_driver_register)、来自[ ](omap_dm_timer_driver_init+0x18/0x20) [0.636517][ ](OMAP-dm_timer_driver_init)、来自[ ](do_one _initcall+0x8c/0x1dc) [ 0.636531][ ](多个_initcall)、来自[ ](kernel_init_freeed+0x1a4/0x270) [0.636538] r10:00000000 r9:c078683c r8:c0786830 r7:00000077 r6:c07ec000 r5:00000006 [0.636561] r4:c0793c08 [ 0.636577][ ](kernel_init_freable)从[ ](kernel_init+0x10/0x100) [0.636583] r10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c056f440 [0.636607] r4:00000000 [0.636620][ ](kernel_init)、来自[ ](RET_FAND_FANK+0x14/0x2C) [0.636626] R4:00000000 R3:eec8c000 [0.636640]--[结束跟踪74ff43b142d21e53 ]-- [0.636654] OMAP_timer 4ae2000.timer:omap_dm_timer_probe:ome_runtimer_m_sime_get! [0.636680] OMAP_TIMER:4ae2000.TIMER 的探测失败、错误-22
其它问题与 MCAN 启动有关:
------ [在此处剪切]----- [0.265281]警告:CPU:0 PID:1 at arch/arm/mach-omap2/omap_hwmod.c:2529 _init+0x324/0x430 () [0.265288] omap_hwmod:mcan:not init clocks [0.265296]链接的模块: [0.265313] CPU:0 PID:1:1:1:sw265282]通用 设备名称[0.4265XX](不受污染 )[0.426532][0.426532](根据硬件名称)[0.426532](根据硬件名称)[0.4265xx/XXXX:[0.426532](不受污染的回扫 ](dump_backtrace)从[ ](show_stack+0x18/0x1c) [ 0.265360] R6:60000013 R5:ffff R4:00000000 R3:00000000 [ 0.265395][ ](show_stack)从[ ](dump_stack+0x7c/0x9C) [ 0.265410][ ](dump_stack)从[ ](warn_slespath_common+0x7c/bb8) [0.265418] r6:c06b5cf8 r5:000009e1 r4:eec8de58 r3:00000000 [0.265447][ ](warn_slowpath_common)、来自[ ](warn_slespath_fmt+0x38/0x40) [0.265455] r8:ffffea r7:00000000 r6:ffffffea r5:0000000c r4:c07afa30 [0.265488][ ](warn_slowpath_fmt)、来自[ ](_init+0x324/0x430) [0.265495] r3:c06b8228 r2:c06b60e8 [0.265518][ ](_init)、来自[ ](omap_hwmod_for_eas+0x38/0x64) [0.265525] r10:00000000 r8:c07519b0 r7:00000000 r6:c0750e20 r5:c07a7150 r4:c07afa30 [0.265561][ ](omap_hwmod_for_each)从[ ](__omap_hwmod_setup_All+0x2C/0x48) [0.265568] r7:00000077 R6:eede2a80 r5:c07a29a8 r4:c07a29a8 [0.265597][ ](__omap_hwmod_setup_all)从[ ](do_one _initcall+0x8c/0x1dc) [0.265612][ ](多个_initcall)、来自[ ](kernel_init_freeed+0x1a4/0x270) [0.265620] r10:00000000 r9:c078683c r8:c078681c r7:00000077 r6:c07ec000:00000001 [0.265647] r4:c0793908 [0.265663][ ](kernel_init_freable)从[ ](kernel_init+0x10/0x100) [0.265671] R10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c056f440 [0.265698] r4:00000000 [0.265713][ ](kernel_init)、来自[ ](RET_FAND_FANK+0x14/0x2C) [0.265720] R4:00000000 R3:eec8c000 [0.265746]-[结束线迹74ff43b142d21e52 ]---
第三个问题与 rng 有关:
------ [在此处剪切]----- [2.491786]警告:CPU:0 PID:1 at arch/arm/mach-omap2/omap_hwmod.c:2108 _enable+0x2b8/0x2d0 () [ 2.500697] omap_hwmod:rNG:enabled state can only be entered from initialized、idle、idle、or disabled state [ 2.510217]模块链接在[2.513296] CPU:0:swapg0:0 PIDs:0:rgb:vapg0:vapg0:rgb:vap1 W 4.4.4.84XXXXX#2 [2.522905]硬件名称:通用 DRA74X (平展设备树) [2.529025]回溯: [2.531503][ ](dump_backtrace)从[ ](show_stack+0x18/0x1c) [2.539105] R6:20000093 R5:ffff R4:00000000 R3:00000000 [ 2.544838][ ](show_stack)从[ ](dump_stack+0x7c/0x9C) [2.552099][ ](dump_stack)从[ ](warn_slespath_common+0x7c/bb8) [2.560221] R6:c06b5cf8 r5:0000083c r4:eec8dc60 r3:eec8c000 [2.565946][ ](warn_slowpath_common)、来自[ ](warn_slespath_fmt+0x38/0x40) [2.574680] r8:00000004 r7:c00319f0 r6:a0000013 r5:ffffea r4:c07afbc8 [2.581462][ ](warn_slowpath_fmt)、来自[ ](_ENABLE+0x2b8/0x2d0) [ 2.589238] R3:c06b508c R2:c06b617c [ 2.592851][ ](_enable)从[ ](omap_hwmod_enable+0x2C/0x4c) [2.600452] r7:c00319f0 r6:a0000013 r5:c07afc28 r4:c07afbc8 [2.606179][ ](OMAP-hwmod_enable)、来自[ ](OMAP-DEVICE_ENABLE+0x48/0x9C) [2.614738] R6:eee47bc0 R5:00000000 R4:00000001 R3:eee47c00 [2.620462][ ](OMAP-DEVICE_ENABLE)从[ ](_od_runtime_resume+0x18/0x2C) [2.629108] R6:c00319f0 R5:ee53874 R4:eee53810 R3:00000000 [2.634833][ ](_od_runtime_resume)从[ ](__rpm_callback+0x34/0x68) [2.643133] R4:eee53810 R3:00000000 [2.646749][ ](_rpm_callback)、来自[ ](rpm_callback+0x28/0x88) [2.654522] r6:eee06c10 r5:c079c100 r4:eee53810 r3:00000000 [2.660244][ ](rpm_callback)、来自[ ](rpm_resume+0x384/0x4fc) [2.667844] r5:c079c100 r4:eee53810[2.671453] [ ](rpm_resume)、从[ ](__pm_runtime_resume+0x54/0x6c) [2.679492] R10:00000000 R9:c078683c R8:c07d6188 r7:60000013 R6:00000004 R5:ee53874 [2.687400] R4:ee53810 [ 2.689961][ ](__pm_runtime_resume)从[ ](omap_rng_probe +0x84/0x290) [2.698432] r7:c07d619c r6:eee53800 r5:ee598350 r4:ee53810 [2.704156][ ](omap_rng_probe)、来自[ ](platform_drv_probe +0x58/b8) [2.712454] r8:00000000 r7:c07d619c r6:fffffdfb r5:eee53810 r4:ffffffffffffffed [ 2.719236][ ](platform_drv_probe)、来自[ ](driver_probe_device+0x1e8/0x2b0) [2.728144] r7:c07d619c R6:00000000 R5:c0823d9c R4:ee53810 [ 2.733868][ ](driver_probe_device)从[ ](__DRIVER_ATE_ATT+0x94/0x98) [2.742340] R8:c0768a68 r7:00000000 R6:ee53844 R5:c07d619c R4:eee53810 R3:00000000 [2.750167][ ](__driver_attach)从[ ](BUS_TO_EASE_DEV_0x5c/0x90) [ 2.758378] R6:c032559c R5:c07d619c R4:00000000 R3:00000000 [ 2.764103][ ](bus_for_each_dev)、来自[ ](DRIVER_ATT+0x24/0x28) [2.772138] R6:c07d64e0 R5:ee58fe80 R4:c07d619c [2.776807][ ](driver_attach)从[ ](BUS_ADD_DRIVER+0xf0/0x1fc) [2.784765][ ](BUS_ADD_DRIVER)从[ ](driver_register+0x80/0xFC) [2.792801] r7:00000077 R6:ee598300 r5:c07a29a8 r4:c07d619c [ 2.798522][ ](driver_register)、从[ ](__platform_driver_register+0x4c/0x50) [ 2.807604] R5:c07a29a8 R4:c07a29a8 [ 2.811216][ ](__platform_driver_register)、来自[ ](omap_rng_driver_init+0x18/0x20) [2.820740][ ](omap_rng_driver_init)、来自[ ](do_one _initcall+0x8c/0x1dc) [2.829397][ ](多个_initcall)、来自[ ](kernel_init_freeed+0x1a4/0x270) [2.838131] R10:00000000 R9:c078683c R8:c0786830 r7:00000077 R6:c07ec000 R5:00000006 [2.846038] r4:c0793e0c [ 2.848595][ ](kernel_init_freable)从[ ](kernel_init+0x10/0x100) [2.856893] r10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c056f440 [2.864803] r4:00000000 [2.867359][ ](kernel_init)、来自[ ](RET_FANK_+0x14/0x2C) [2.874959] R4:00000000 R3:eec8c000 [2.878569]-[结束跟踪74ff43b142d21e54 ]-[2.883270 OMAP-rng 48090000.rng:运行时获取设备失败:-90000 2.8897]未初始化失败。 [2.895157] OMAP-rng:48090000.rng 的探头失败、错误-22
此致、
Marco。
(笑声) 最后一分钟添加:
Devicetreal 和硬件:
我们的板基于 TDA2Plus、我使用与评估板上使用的相同的 dtsi (我添加的唯一内容:第二个 A15内核、工作正常)。
所以:DRA7.dtsi -> DRA74x.dtsi -> DRA76x.dtsi -> mystues.dts
这是 tda2plus 使用的正确"线路"吗? 选择了错误的"DRA7-singe"、但未获取 TDA2Plus...的每个设置?
这里有很多不同的名称、我不清楚他们想要告诉我的内容:
那么、有 DRA7系列、但它也称为"Jacinto"? 在评估板上的某些 CPU 上、"5777"被拉取。 在 Linux 中、我们使用了大量 OMAP2材料、而 TI 的商业人士告诉我们、我们必须使用 TDA2Plus... 很混乱
有时... 有时 SoC 的 IP 使用 OMAP5材料... 嗯:你能解释一下(用一张漂亮的图表吗?) 或者在哪里可以找到这样一个"智能图形"、它解释了令人困惑的命名?
哦... 另一个问题:您有一些 devicetree 文件、还是完整的 Linux "为好人准备..." 由于魔术数更少且抽象程度更高、一些#defines 会使引脚多路复用变得更不令人沮丧? (偏移量0x1400、正在读取寄存器、正在寻找模式... 而且长时间的比特暴风雪根本就没有乐趣。 在好的 BSP 中,名字很好的定义会是一个很好的服务! 顺便说一下:如果有定义、例如命名寄存器:当它适合相关数据表中的命名时、它将是非常非常好的... 脾气暴躁 返回工作状态。)
Sriram、您好!
请记住:我不使用 SDK! 因此、在本例中、指向 Wiki 的链接对我来说非常无用。
我从 SDK 中取出内核和引导加载程序作为"BSP"、并使用 evalboard-config 作为启动点。 我们的用例未从任何提供的 SDK 中捕获。 不好的评论和很多幻数不能使工作变得容易。 (我可以理解为什么 TI 会推行"一个 SDK 为每个 SoC 和客户实现一切"的理念... 但我们必须做的是完全不同的事情。)
多路复用...请您解释一下、为什么 TDA2+中的引脚多路复用仅在 u-boot 中管理? 正如我提到的:
这个使用它自己的 dt-blob、这个当然能够重新复用并重新设置接近(!) 一切。
因此、pinmux 可以用 多个块完成(并完成):Boardfile 和"mux-data.h"、u-boot dt-blob、最后至少在内核 dt-blob。
uboot 中的 DT 不能替代 Linux 中的 DT、除非您激活了向内核提供 u-boot-dt 的功能:我没有。
我在启动内核时遇到了一些特殊问题、因为 timer12、rng 和 mcan 存在问题。 错误消息能够提供一些参考点。
我不需要有关如何在 SDK 环境中执行某项操作的说明、因为(再次)我无法在我们的项目中使用它。
我需要您的嵌入式工程师的帮助、他们在最深层的 Linux 内核上工作。
IODELAY 以及这是如何实现的... 让我们来看看:
#ifdef CONFIG_IODELAY_RE重 校准 常量结构 iodelay_cfg_entry dra72_iodelay_cfg_array_RevB[]={ {0x6F0、359、0}、/* RGMMI0_RXC_IN * {0x6FC、129、1896}、/* RGMMI0_RXCTL_IN * {0x708、80、1391}、/* RGMMI0_RXD0_IN * {0x714、196、1522}、/* RGMMI0_RXD1_IN * {0x720、40、1860}、/* RGMMI0_RXD2_IN * {0x72C、0、1956}、/* RGMMI0_RXD3_IN */ 。
还可以…… 有几个有关它的问题:
但是、有一点... 我还记得:
我还记得我最近与 TI 处理器的联系(很久以前、AM3xxx)...
我使用 Pinmux-tool 自动生成此魔数库房...!
很久以前、是在 devicetree 开始之前... 它非常舒适:
使用 pinmux-tool、甚至会导出完整头文件的内容... 在 u-boot 中对该输出执行 pinmux... 玩得开心!
好的:我的问题... 我们有一个具有 ACD 封装的处理器。 该封装是否集成在最新的引脚多路复用工具中?
(几天前... 不可能... 我们的处理器:TDA2PHARVQACDQ1)
并且:pinmux-tool 是否仍然能够输出在"iodelay" pinmux 和每个已使用引脚的 iiodelay 重校准期间所需的内容?