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:使用三个欺骗性操作启动 DRA76p ...

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/665712/linux-dra76p-boot-dra76p-with-three-spooky-oops

器件型号:DRA76P
主题中讨论的其他器件: TDA2

工具/软件:Linux

在基于 DRA76p (特别是 TDA2Plus) SoC 的定制板上、我在 Linux (4.4.4.84)引导期间遇到了一些问题;

(1) omap_hwmod:mcan:无法初始化时钟

(2) omap_hwmod:timer12:只能从初始化、空闲或禁用状态进入启用状态

(3) OMAP-hwmod:RNG:只能从初始化、空闲或禁用状态进入启用状态

(笑声) 如果您对此很熟悉  、请告诉我。  

Tnx - Marco

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

    我已将您的问题转交给内核专家。

    您是否可以上传完整的引导日志?

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

    提出 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 中,名字很好的定义会是一个很好的服务! 顺便说一下:如果有定义、例如命名寄存器:当它适合相关数据表中的命名时、它将是非常非常好的... 脾气暴躁 返回工作状态。)  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Marco:
    我只能回答您的部分问题。 希望很快能回答其他问题。

    Jacinto6是 DRA75x/DRA74x 系列和其他一些衍生产品的内部昵称
    - 5777是 DRA75x/DRA74x 和一些其他衍生产品的预生产、测试 SoC。 它可能不符合某些特性、如 MHz 和温度范围
    - DRA75x/DRA74x 是 OMAP5的后续产品、非常相似、但有一些附加外设(例如 DCAN)、有些则被移除
    OMAP2是 OMAP5的早期前身(OMAP3和 OMAP4之间)。 UART、I2C、SPI 等许多外设在一段时间内变化不大、这就是为什么它们的驱动程序通常会看到 OMAP2_前缀的原因。

    关于 TDA2+、请注意它提供了两种封装:一种是传统的、与 DRA75x/DRA74x 兼容;另一种是增强的、但不兼容。 在这两种封装中、器件仍然与 DRA75x/DRA74x 非常相似、通过比较各自的数据手册可以找到这些更改。

    此致、
    STAN
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tnx Stan!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Marco
    我们的软件开发人员指南包含有关正确的 dtb (dtb 是从 dts 文件生成的编译二进制输出)文件的信息、可根据 Jacinto6器件进行选择。 您可以参阅 processors.wiki.ti.com/.../Processor_SDK_Linux_Automotive_Software_Developers_Guide

    对于 J6plus (或 TDA2+)、参考应为 dra76-EVM.dts -它将包含相应的 dtsi (包含文件)

    此外、请注意、对于 DRA7x、引脚多路复用器由引导加载程序(对于 Linux、为 uboot)进行管理。

    您将必须根据客户电路板和 TI EVM 之间的差异进行增量更改-如果您可以总结这些更改以供审核、这将是很好的选择
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Sriram、您好!

    请记住:我不使用 SDK! 因此、在本例中、指向 Wiki 的链接对我来说非常无用。

    我从 SDK 中取出内核和引导加载程序作为"BSP"、并使用 evalboard-config 作为启动点。 我们的用例未从任何提供的 SDK 中捕获。 不好的评论和很多幻数不能使工作变得容易。 (我可以理解为什么 TI 会推行"一个 SDK 为每个 SoC 和客户实现一切"的理念... 但我们必须做的是完全不同的事情。)  

    多路复用...请您解释一下、为什么 TDA2+中的引脚多路复用仅在 u-boot 中管理?  正如我提到的:

    • 首先、是加载 SPL 的 ROM 代码。 多路复用在 boardfile (SPL-part)中完成、"mux-data.h"文件包含。 有一个"早期"部分和一个常规部分。
    • 如果启用了 uboot 的 dt 并且 SPL 已加载 uboot、则嵌入式 uboot-dtb 将用于复用"mux-data.h"和所需的设置外围设备。
    • uBoot 加载内核环境、内核中生成的 dt-blob、执行一些控制台设置并引导内核。

    这个使用它自己的 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 内核上工作。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Marco
    SDK 包括内核、 UBoot 组件、因此我指向 SDK 文档、因为我们介绍了 J6系列中每个器件应参考的 DTB -该表是您需要参考的 DTS 文件的参考、并从结尾处开始进行更改

    关于引脚多路复用、大部分引脚多路复用配置是从早期引导加载程序阶段完成的(用于配置每个引脚的 iodelay 参数)。 仅适用于支持多种功能模式(如 MMC)的器件-速度、操作模式取决于您检测到的卡、因此将从内核动态地对 iodelay 参数进行编程

    对于"TI 提出"一个 SDK 为每个 SoC 和客户执行一切操作"的想法- J6上的许多外设都是从早期器件中重复使用的,而对于 Linux,策略是重复使用(或使其成为通用) 用于在多个平台上重复使用的外设的现有驱动程序-这就是 Linux 社区的工作方式。 此外、从软件角度来看、我们的目的是尽可能地从一个平台或用例迁移到另一个平台或用例:因此、我们尝试尽可能地保持统一的 SW IF (SDK)重复使用软件。

    SDK 中的内核配置映射到我们可以在 TI EVM 上支持的功能-如果您能描述您的硬件平台(差异)和您的预期更改、以便我们审核并提供任何反馈、这将非常有帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我在这里有一个引导系统、Linux 上的控制台也可以正常工作。

    上述帖子中指定了启动期间的三个问题。
    因此,请让我们集中讨论这三个问题以及主要的问题。

    主要信息是:"只能从初始化、空闲或禁用状态进入启用状态"
    timer12和 rng 无法初始化、因为其状态有问题。
    双重尝试还是比赛条件? 为什么、在哪里?

    "mcan:Could n't init clocks"是我列表中的第一个问题。
    我不会更改 Linux 的 dtsi 文件中的任何内容、特别是:我没有触及时钟域。
    那么、为了防止 mcan 初始化其时钟、可以犯哪些错误?

    (有关以下帖子的其他信息...)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    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 */
    。 

    还可以…… 有几个有关它的问题:  

    1. 如果我不想执行这些"iodelay 重校准" 和 UNDEF "CONFIG_IODELAY_RE重 校准"、会发生什么情况?  
    2. 不可能在这样的代码中引入更多的幻数... ;-)  

    但是、有一点... 我还记得:  

    我还记得我最近与 TI 处理器的联系(很久以前、AM3xxx)...
    我使用 Pinmux-tool 自动生成此魔数库房...!

    很久以前、是在 devicetree 开始之前... 它非常舒适:
    使用 pinmux-tool、甚至会导出完整头文件的内容... 在 u-boot 中对该输出执行 pinmux... 玩得开心!

    好的:我的问题... 我们有一个具有 ACD 封装的处理器。 该封装是否集成在最新的引脚多路复用工具中?  
    (几天前... 不可能... 我们的处理器:TDA2PHARVQACDQ1)

    并且:pinmux-tool 是否仍然能够输出在"iodelay" pinmux 和每个已使用引脚的 iiodelay 重校准期间所需的内容?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Marco、您好、 根据数据手册、iostre延迟 将被编程以保证每个信号的时序要求。 有不同的选项、例如传统/虚拟/手动模式。 仅在手动模式下、您需要对其他寄存器进行编程。 如果删除 IODELAY #ifdef、则可能会在计时同步过程中遇到一些问题。 不建议这样做。 此外、iiodelay 配置是在芯片处于隔离状态时完成的。 这就是在引导加载程序中完成它的原因。 您可以在 git.ti.com/.../iodelay-config 上找到有关如何获取所使用焊盘的 iodelay 数据的详细信息、此致 Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这是对该主题的良好解释->谢谢!

    这是我们第一次接触 iostel_RE重 校准。
    以前从未需要过,以前从未关注过... 而不会出现任何问题。
    (笑声) 也许:根本不需要?
    切换到手动模式的用例是什么? 我必须首先了解... 我很喜欢这里的 repo 和 dokumnents 感谢这里的员工

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

    如果未完成 iodelay 配置、您将面临时序问题。
    iodelay 配置可确保不同信号的切换同时发生、并且它们之间没有任何相对延迟。

    数据表说明了哪些模块需要 iodelay 配置以及适用虚拟/手动模式的不同情形。

    此致、
    Nikhil D