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.

[参考译文] AM625:如果未配置可选的唤醒 pinctrl 状态、断电将导致 NULL 指针解除引用

Guru**** 2445440 points
Other Parts Discussed in Thread: ADS1015, TPS65219

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1531520/am625-poweroff-will-cause-null-pointer-dereference-in-case-the-optional-wakeup-pinctrl-state-is-not-configured

器件型号:AM625
“主题中讨论的其他器件:ADS1015TPS65219

工具/软件:

您好、

 对于 m_CAN 驱动器、唤醒 pinctrl 状态是可选的。 未配置时、关机时出现以下错误:

```μ s

[ 672.684949]无法处理虚拟地址 0000000000000018 处的内核 NULL 指针解除引用
[ 672.693766]存储器中止信息:
[672.696551]   ESR = 0x0000000096000004
[ 672.700297]  EC = 0x25:DABT(电流 EL)、IL = 32 位
[672.705603]   SET = 0、FnV = 0
[672.708649]   EA = 0、S1PTW = 0
[672.711786]   FSC = 0x04:电平 0 转换故障
[ 672.716659]数据中止信息:
[ 672.719534]  ISV = 0、ISS = 0x00000004、ISS2 = 0x00000000
[ 672.725012]  CM = 0、WNR = 0、TND = 0、TagAccess = 0
[672.730056]   GCS = 0、覆盖层= 0、DirtyBit = 0、Xs = 0
[ 672.735362] user pgtable:4K 页、48 位 vas、pgdp=000000008462f000
[672.741799] [0000000000000018] PgD=0000000000000000、p4d=0000000000000000
[ 672.748590]内部错误:oops:0000000096000004 [#1] Preempt SMP
[ 672.754844]链接到以下位置的模块:af_alg brcmfmac_cyw irq_pruss_inTC PRU_rproc brcmfmac brcmutil HCI_UART cfg80211 btqca btbtbcm pwrseq_core Bluetooth crct10dif_cce ecdh_generic ecc rfkill RTC_ti_k3_rt_k3_wdt pruss
SPINLOCK OMAP-Lmailbox sa2ul mcrc64 tps65219_pwrbutton RTC_pcf8563 ti_ADS1015 LM75 at24 industrialIO_triggered_buf ti_eep 计数器 m_can_platform m_can spi_omops p2_mcspi can_dev ramoops pm_tiehrpwm reed_Sol
OMON DRM DRM_panel_oriation_quirks 背光保险丝 IPv6
[672.797744] CPU: 1 UID: 0 PID: 1 Comm: systemd-shutdow not tainted 6.12.17-ti-00771-gc85877d40f8e-dirty #1
[ 672.807379]硬件名称:SysTec sysWORXX CTR –800 (DT)
[672.812591] pstate:600005 (nZCv daif -pan -uAO -TCO -DIT -SSB BTYPE=--)
[ 672.819539] PC:pinctrl_commit_state+0x68/0x20c
[672.824161] lr : pinctrl_commit_state+0x54/0x20c
[672.828769] sp : ffff8000822abba0
[ 672.832071] x29:ffffff8000822abba0 x28:ffffff000000508000 x27:000000000000
[ 672.839199] x26:000000000000 x25:000000000000 x24:ffff8000820ad630
[ 672.846326] x23:ffff000008102140 x22:ffff0000083ee0c0 x21:000000000000
[ 672.853452] x20:ffff000008102158 x19:ffff000008102158 x18:0000000000000001
[ 672.860579] X17:0000000000000000 x16:0000000000000000 x15:ffffff000037dba240
[ 672.867705] x14:0000000000000001 x13:ffffff000000508080 x12:000000000001
[ 672.874832] x11:0000000000000040 x10:ffffff000000708860 x9:ffffff000000708858
[672.881959] x8 : ffff0000008bcdd8 x7 : 0000000000000000 x6 : 0000000000000000
[ 672.889085] x5 : ffffff0000008bcdb0 x4 : 000000000000 x3 : 0000000000000000
[ 672.896211] x2:0000000000000000 x1:000000000000 x0:ffffff000000508000
[ 672.903339]呼叫跟踪:
[ 672.905776] pinctrl_commit_state+0x68/0x20c
[ 672.910039] pinctrl_select_state+0x1c/0x30
[ 672.914215] m_can_clase_sysoff_handler+0x3c/0x78 [m_can]
[ 672.919614] sys_off_notify+0x40/0x6c
[ 672.923272] blocking_notifier_call_chain+0x6c/0xa0
[ 672.928140] kernel_power_off+0x50/0x80
[672.931968]  __do_sys_reboot+0x210/0x270
[ 672.935882] __arm64_sys_reboot+0x24/0x30
[ 672.939883] invoke_syscall+0x48/0x10c
[ 672.943627] el0_Svc_common.constprop.0+0x40/0xe0
[ 672.948323] do_el0_Svc+0x1c/0x28
[672.951631]  el0_Svc+0x28/0x98
[ 672.954682] el0t_64_SYNC_HANDLER+0x120/0x12c
[ 672.959030] el0t_64_SYNC+0x190/0x194
[ 672.962690]代码:eb14027f 54ffff21 aa1903f5 f90016df (f8418eb4)
[672.968768] --[结束跟踪 000000000000 ]-----
[ 672.980619]内核严重错误 — 未同步:试图杀死 init! exitcode=0x0000000b
[ 672.988292]内核偏移:已禁用
[ 672.991770] CPU 特性:0x00,00000080,00200000,4200420b</s>080,002 00,000,420
[ 672.997158]内存限制:无
[673.007059] --[结束内核恐慌 — 未同步:试图杀死 init! exitcode=0x0000000b ]--

```μ s

更新到 SDK 版本后首先出现错误  11.00.09.04(具有内核 6.12)

对我来说、下面的提交似乎引入了这个问题:

git.ti.com/.../

我认为`!is_ERR (cdev->pinctrl_state_wakeup)`检查是其原因。 这不应该是简单的空指针检查吗?

您能否确认此问题?

此致

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

    您好、

    您能否确认问题、或者是否有任何反馈意见?

    此致

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

    您好、

    简单介绍一下、您使用的是 SDK 版本还是已修改过的版本? 我将查看您确定的对该特定版本的承诺。

    您使用的是定制电路板还是 TI EVM?

    此致、

    Schuyler

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

    这是使用所有元层的自定义 Yocto 设置、仅限版本  11.00.09.04.

    我们在定制电路板上运行。

    未修改内核。 我们仅对电路板使用自定义器件树。 这没有 定义似乎会导致问题的唤醒 pinctrl。