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/AM4376:L3自定义错误

Guru**** 2589280 points
Other Parts Discussed in Thread: AM4372

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/589373/linux-am4376-l3-custom-error

器件型号:AM4376
主题中讨论的其他器件:AM4372

工具/软件:Linux

您好!

我的内核中有一个版本驱动程序、我在0x44E3E034 (RTC 寄存器)上编写 u-boot 版本。 我在内核中禁用了 RTC 驱动程序。

在 AM437x 中、RTC 寄存器具有0x44E3E000至0x44E3EFFF 的存储器

在我要执行的版本驱动程序中、

                       void __iomem *u_boot_version = ioremap (0x44E3E000、0x9C);//RTCSS 寄存器(alarm_Years _REG)、我们在其中编写了 u-boot 版本
                       query.u_boot_version =__raW_readl (u_boot_version + 0x34);

以读取 u-boot 版本。

当我运行驱动程序时、我的控制台出现以下日志崩溃、

[32.683843]  ------ [在此处剪切]-----
[32.693922]  警告:CPU:0 PID:872、位于./kernel-source/drivers/bus/omap_l3_noc.c:14)
[  32.712015] 44000000.OCP:L3自定义错误:主 M2 (64位)目标 L4_WKUP (读取):在功能访问期间以用户模式访问数据
[32.724073]  链接的模块:
[32.727176]  CPU:0 PID:872 Comm:EDGE_VERSION_AP 未被污染4.4.4.41-g89e80b645e #6
[32.734878]  硬件名称:通用 AM43 (平展器件树)
[32.740831]  回溯:
[32.743351]  [ ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[32.750964]   r7:c02e0094 R6:00000093 R5:00000009 R4:00000000
[32.756728]  [ ](show_stack)从[ ](dump_stack+0x24/0x28)
[32.764010][   ](dump_stack)从[ ](warn_slESpath_common+0x88/b4)
[32.772159][   ](warn_slowpath_common)、来自[ ](WARN_RASPH_FMt+0x38/0x40)
[32.780902]   R8:ee9046d0 r7:c0946878 R6:00000002 R5:c094666c R4:c0946710
[32.787724]  [ ](warn_slowpath_fmt)、来自[ ](L3_INTERRUPT_Handler+0x260/0x370)
[32.796643]   R3:ee904540 R2:c0946710
[32.800261]   R4:80080003
[32.802843][   ](L3_interrupt_handler)、来自[ ](handle_irq_event_perpu+b0x4/0x16c)
[32.812199]   R10:c0a9ba1d R9:ee900780 R8:00000015 r7:00000000 R6:00000000 R5:c0a46470
[32.820131]   R4:ee904a80
[32.822705]  [ ](handle_irq_event_perpu)、来自[ ](handle_IRQ_EVENT_+0x64/0x90)
[32.831622]   R10:00000000 R9:00000003 R8:ee808000 r7:00000001 R6:00000000 R5:c0a46470
[32.839554]   R4:ee900780
[32.842134][   ](handle_irq_event)从[ ](handle_fasteoi_IRQ+0xc0/0x204)
[32.850704]   R5:c0a46470 R4:ee900780
[32.854355][   ](handle_fasteoi_IRQ)、来自[ ](generic_handle_IRQ+0x2C/0x3c)
[32.863011]   r7:00000001 R6:00000000 R5:00000000 R4:c0a67a38
[32.868769]  [ ](generic_handle_IRQ)、来自[ ](_handle_domain_IRQ+0x5c/b0)
[32.877535]  [ ](_handle_domain_IRQ)、来自[ ](GIC_Handle_IRQ+0x40/0x6c)
[32.885928]   R9:00000003 R8:fa241100 r7:fa240100 R6:ed5e70 R5:fa24010c R4:c0a404b0
[32.893790]  [ ](GIC_Handle_IRQ)、来自[ ](_IRQ_Svc+0x40/0x74)
[32.901317]  异常堆栈(0xed5e70至0xed5eb8)
[32.906408]  5e60:                                    c0956b20 00000000 effcfd8 00000000
[32.914643]  5e80:bea900a8 eebdc860 edc9b000 00000003 bea900a8 00000003 00000000 ed5f14
[32.922875]  5ea0:eded5ed0 ededed5ec0 c0378398 c00b3ce0 a00f0013 ffffff
[32.929524]   R9:00000003 R8:bea900a8 r7:eded5ea4 R6:ffff R5:a00f0013 R4:c00b3ce0
[32.937409][   ](ioctl_handling)从[ ](do_vfs_ioctl+0x490/0x654)
[32.945368]   R4:bea900a8
[32.947950]  [ ](do _vfs_ioctl)、从[ ](sys_ioctl+0x74/0x84)
[32.955298]   R10:00000000 R9:00000003 R8:bea900a8 r7:80047103 R6:edc9b000 R5:edc9b000
[32.963231]   R4:00000000
[32.965811][   ](sys_ioctl)从[ ](RET_FAST_SYSCALL+0x0/0x34)
[32.973422]   R9:ed4000 R8:c000f9e4 r7:00000036 R6:00000000 R5:00000000 R4:bea8hap4
[32.981269]  --[结束线迹98abd1047da2cccb ]--

我需要做些什么来解决这个问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Gunjal、

    请参阅 此主题。

    此致、
    Kemal

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

    是的、我看到过这个线程。
    我不是要从 an4372.dtsi 中删除 RTC 节点、而是保持禁用状态。 原因是我要从 SDK 编译许多 DTS 文件。 因此、如果我从 dtsi 中删除 RTC 节点、则必须从所有 DTS 文件中删除 RTC 节点、否则编译时会出错。
    因此、我已经从我的特定 DTS 文件中删除了 RTC、但从 dtsi 中删除了 RTC。 它的状态在 dtsi 中被禁用。

    因此、我是否可以通过任何方式解决此问题、而无需从 am4372.dtsi 文件中删除 RTC 节点。

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

    从 dtsi 中删除 RTC 会停止崩溃、但我仍然无法在0x44e3e034地址上写入 u-boot 版本。

    我在干什么、
    writel( 0x1、0x44E3E034 );
    并尝试从我的驱动程序中的该地址读取数据。

    当我禁用 RTC 驱动程序时、为什么不能写入 RTC 寄存器的地址。


    此致、
    Gunjal