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.

[参考译文] AM6548:AM6548 SR2.0 EL1中未处理的异常

Guru**** 2508585 points
Other Parts Discussed in Thread: AM6548

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1326955/am6548-am6548-sr2-0-unhandled-exception-from-el1

器件型号:AM6548

您好!

最近、我购买了一些 AM65x_IDK_EVM、其中包含 AM6548 SR2.0 SoC。  

之前、我已经在 AM65x_GP_EVM (SR1.0)上开发了类似 Linux 的应用、使用从 Linux SDK 中稍作修改的 U-boot、我的应用程序/内核正常工作。  

但现在、在 AM65x_IDK_EVM 上、我的应用/内核无法正常工作。 独特的是 U-boot 工作非常好,从我在 SR1.0上使用它的时候没有变化,但当我启动到我的内核时,我得到了以下错误:

Starting kernel ...

ERROR:   Unhandled External Abort received on 0x80000000 from S-EL1
ERROR:   exception reason=0 syndrome=0xbf000002
Unhandled Exception from EL1
x0             = 0xffff800000031580
x1             = 0x0000000000000001
x2             = 0x0000000000000001
x3             = 0xffffffff801bf9e0
x4             = 0x0000000000000000
x5             = 0xffffffff809e0dc8
x6             = 0x00000000819a3000
x7             = 0x00000000000000c0
x8             = 0x0000000000000080
x9             = 0x0000000000000000
x10            = 0x0000000002028000
x11            = 0x0000000000000002
x12            = 0x0000000000000202
x13            = 0x0000000002028000
x14            = 0x00000000000000f8
x15            = 0x0000000081d16000
x16            = 0x0000000000000010
x17            = 0x0000000081d16000
x18            = 0xffffffff80781800
x19            = 0xffff800000031440
x20            = 0x0000000000000001
x21            = 0xffff800000031580
x22            = 0xffff800000031440
x23            = 0x0000000000000001
x24            = 0x0000000000000001
x25            = 0xffff8000024b8888
x26            = 0x0000060000000600
x27            = 0xffffffff80780ce0
x28            = 0xffff800002009548
x29            = 0xffffffff809e0dc0
x30            = 0xffffffff80491cec
scr_el3        = 0x000000000000073d
sctlr_el3      = 0x0000000030cd183f
cptr_el3       = 0x0000000000000000
tcr_el3        = 0x0000000080803520
daif           = 0x00000000000002c0
mair_el3       = 0x00000000004404ff
spsr_el3       = 0x00000000600000c4
elr_el3        = 0xffffffff803bc860
ttbr0_el3      = 0x0000000083010c00
esr_el3        = 0x00000000bf000002
far_el3        = 0xfd4ad2636c1180ef
spsr_el1       = 0x00000000000000c4
elr_el1        = 0xffffffff8039ec1c
spsr_abt       = 0x0000000000000000
spsr_und       = 0x0000000000000000
spsr_irq       = 0x0000000000000000
spsr_fiq       = 0x0000000000000000
sctlr_el1      = 0x0000000030d01805
actlr_el1      = 0x0000000000000000
cpacr_el1      = 0x0000000000300000
csselr_el1     = 0x0000000000000000
sp_el1         = 0xffffffff809af000
esr_el1        = 0x0000000000000000
ttbr0_el1      = 0x00000000819a4000
ttbr1_el1      = 0x00000000819a3000
mair_el1       = 0x00ffeebbaa440400
amair_el1      = 0x0000000000000000
tcr_el1        = 0x00000077b5903590
tpidr_el1      = 0xffffffff80781800
tpidr_el0      = 0xffffffff809dcf60
tpidrro_el0    = 0x0000000000000000
par_el1        = 0x0000000000000000
mpidr_el1      = 0x0000000080000000
afsr0_el1      = 0x0000000000000000
afsr1_el1      = 0x0000000000000000
contextidr_el1 = 0x0000000000000000
vbar_el1       = 0xffffffff801c5800
cntp_ctl_el0   = 0x0000000000000000
cntp_cval_el0  = 0x0000000000000000
cntv_ctl_el0   = 0x0000000000000002
cntv_cval_el0  = 0x0000000000000000
cntkctl_el1    = 0x0000000000000000
sp_el0         = 0x000000008300a3d0
isr_el1        = 0x0000000000000000
dacr32_el2     = 0x0000000000000000
ifsr32_el2     = 0x0000000000000000
cpuectlr_el1   = 0x0000000000000040
cpumerrsr_el1  = 0x000000001a080572
l2merrsr_el1   = 0x0000000012002e78
cpuactlr_el1   = 0x00001000090ca000

我该如何进行调试呢? 这是否是由设备树中存在差异导致的? 或者这里是否还有其他问题?

谢谢。

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

    尊敬的 Ben:

    在许多情况下、这种类型的错误是由于内核访问未通电或未进行时钟选通的硬件模块而导致的。

    当您使用 Processor SDK 中提供的默认 SD 卡映像引导 IDK EVM 时、是否会看到此问题?

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

    您好、Bin、

    我实际上把它绑定到了 mcu_cpsw 模块、如果我禁用它、我就能够引导到我的内核! 这很奇怪、因为我认为 SR1.0和 SR2.0中的 CPSW 没有区别。  

    在查看 Linux PDK 版本 08_02_00_02的器件树时、我看到 MCU_cpsw 的配置与我的器件树不同(我认为是来自较早版本的 Linux PDK)。  

    我尝试了从 08_02_00_02复制和粘贴配置、但这些配置似乎不起作用。 在器件修订版本之间、我应该注意的 CPSW 配置是否有任何其他差异?

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

    有趣的是、在 U-boot 中、CPSW 100%正常工作、这是我实际将软件加载到 IDK 上(通过 TFTP)的方法、因此不知道它为什么会在内核中引发问题。  

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

    尊敬的 Ben:

    我将把您的问题转给我们的网络专家以征求意见。

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

    您好!

    我将检查您看到的 SR 问题并给您回复。 可能是美国时间中部的明天晚些时候。

    此致、

    舒耶勒

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

    您好、Schuyler、刚刚登记入住、是否有任何更新?

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

    您的总体目标是什么、您是否正在编写自定义内核? 类似于 Linux 但不完全是 Linux 的东西? 您的引导顺序和引导模式是什么、以及 TI 的软件是基于哪个版本?

    我的一般建议是采用最新的 SDK (9.1) uboot、并将您的修改逐渐移植到该位置。

     佩卡

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

    大家好、Pekka、不、这不是定制的内核、它是 VxWorks、所以非常接近 Linux。 我的启动顺序与 Linux 非常相似、我使用 U-boot 上传软件、然后引导至内核。

    至于它所基于的 TI 软件版本、我不确定、但我知道它是在 08_02_00_02之前、因为器件树数据不同。

    我的目标是只能够在内核空间中初始化 CPSW 以太网、至于 SDK U-boot、我实际上 几乎在未修改的情况下使用 TI 的 U-boot 版本08_02_00_02、 以太网在 U-boot 中工作、我刚刚在内核空间中遇到了这个例外情况。

    如果有用、我可以在此处发布 CPSW 的器件树配置。   

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

    您正在使用 https://bsp.windriver.com/bsps/3358 ? 即 CPSW 等有用信息。 您是否联系过他们? 或者您是否正在尝试添加 VxWorks 支持的范围之外的内容?

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

    目前使用22.09、我曾联系 VxWorks 支持、他们表示他们当前不支持 SR2.0 (IDK EVM 包含的)

    23.03是否支持 CPSW?  

    我想让我最困惑的地方是 CPSW 不应该与 SR1.0和 SR2.0不同(根据我之前阅读的勘误表、我可能是错的)、那么为什么它会这样损坏呢?

    我不认为这超出了 VxWorks 所支持的范围、我也不尝试启用 ICSSG 或任何功能。  

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

    我知道、基于 AM65x 的 VxWorks 客户仅使用最新的器件版本(2.1)、这是我们唯一支持的器件版本。 使用 CPSW。 我表面上同意现在有重大更改、但通过查看勘误表 https://www.ti.com/lit/pdf/sprz452、 我看到了几个 CPSW 勘误表修复、以及对产品质量运营至关重要的 UDMA-P 修复。 为什么旧软件和旧器件可以使用的东西浪费了精力、2.1是唯一支持的器件。

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

    您是否能够透露您的客户正在使用哪个版本的 VxWorks? 是23.03吗?

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

    我让 Wind River 联系人在此处发表评论。 但我建议再次与他们联系、以澄清、SR2.1是唯一获得量产支持的器件。

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

    尊敬的 Pekka:

    我参与了在 VxWorks 上使用 AM6548的两个项目、这两个项目都使用 SR2.x。  一个在旧版本的 VxWorks、SR0660上、另一个在  23.09.  两者均包括对 CPSW 的标准支持。  我相信24.03将"正式"支持 SR 2.x、尽管我不知道该版本中会发生什么变化。

    关于原来的问题:我知道 CPSW IEEE1588的支持存在一个问题,这会导致 VxWorks 无法正常启动。   从器件树中禁用 CPSW IEEE1588节点(CPT)可以解决该问题。

    伊恩

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

    感谢你的评分 不幸的是、这对我来说似乎仍然不起作用、您具体是如何禁用 CPTS 节点的? 我正在尝试通过将 mcu_cpsw 器件从以下位置更改为在 k3-am654-base-board.dts 中将其禁用:

    &mcu_cpsw {
    
    	pinctrl-names = "default";
    	pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
    
    	cpts {
    		ti,pps = <3 1>;
    	};
    };



    &mcu_cpsw {
    
    	pinctrl-names = "default";
    	pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
    
    	cpts {
    		status = "disabled";
    	};
    };

    但我仍然得到这个 EL1例外、我是否还需要在 U-boot 器件树中将其禁用? 我不是设备树方面的专家、因此我可能忽略了禁用此组件所需执行的操作。  

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

    Ian、这个问题有时或总是会发生吗? Benjamin 您的 EL1例外100%可重现类型问题,每次启动?

    总的来说、我想说使用支持我们所支持的芯片的 VxWorks (2.1)。 我们支持 https://www.ti.com/tool/PROCESSOR-SDK-AM65X 中的引导加载程序 ,TI 通常不支持修改后的引导加载程序和其他操作系统。 如果您需要自定义支持或超出我建议的范围、请先联系与您合作的现场团队(FAE 或销售人员)。

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

    如果启用了 CPSW、则此问题在每次启动时都可重现。  

    即使我禁用 CPTS、或只是平面化、也会将其从器件树中删除。 在我看来、只有禁用 MCU_cpsw 才允许 VxWorks 引导。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我相信24.03将"正式"支持 SR 2.x,

    如果你想在2.1上运行 VxWorks、我建议你得到24.03 (或者 VxWorks 上显示的任何版本)。

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

    24.03似乎做到了诀窍,能够从 CPSW ping VxWorks