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.

[参考译文] J784S4XEVM:Linux 内核严重错误、而定制板上广泛使用 RAM。

Guru**** 2468610 points
Other Parts Discussed in Thread: TDA4VH-Q1

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468705/j784s4xevm-linux-kernel-panic-while-extensive-usage-of-ram-on-custom-board

器件型号:J784S4XEVM
主题中讨论的其他器件:TDA4VH-Q1

工具与软件:

大家好!

我们目前正在基于 J784S4的定制电路板上使用 SDK 10.0、并且在 RAM 和 CPU 的大量使用下遇到了 Linux 内核难题。 此问题最初是由客户在电路板上开发应用程序时报告的、我们已经能够使用重现   stress-ng --vm 5 --vm-bytes 2G --timeout 10m  工具。 根据我们的观察结果、我们怀疑该问题可能与 RAM 配置错误有关。

作为修改的一部分、我们删除了两个实例、并将总 RAM 从32 GB 减少到16 GB。 我将提供一个补丁、详细说明我们所做的所有更改。

此外、我们还运行了 memtester应用程序作为我们诊断的一部分、但它没有报告任何错误。

您能否提供有关如何进一步调查和解决此问题的指导? 如果有任何见解、将不胜感激。

此致、

Dušan Stanišić μ A

e2e.ti.com/.../memtester_5F00_board.txt

e2e.ti.com/.../linux_5F00_panic.txt

From 9b8a4c2e21e14ded4e6b4bac55719297d395da4a Mon Sep 17 00:00:00 2001
From: Dusan <Dusan.Stanisic@rt-rk.com>
Date: Mon, 9 Sep 2024 12:34:07 +0000
Subject: [PATCH 1/7] Modifying U-Boot to reduce RAM memory 32GB->16GB

---
 arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi | 2 +-
 arch/arm/dts/k3-j784s4-ddr.dtsi              | 2 ++
 arch/arm/dts/k3-j784s4-evm.dts               | 4 ++--
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi b/arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi
index 0e16d2f2..b7fb907f 100644
--- a/arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi
+++ b/arch/arm/dts/k3-j784s4-ddr-evm-lp4-4266.dtsi
@@ -14,7 +14,7 @@
 #define MULTI_DDR_CFG_INTRLV_SIZE 12
 #define MULTI_DDR_CFG_ECC_ENABLE 0
 #define MULTI_DDR_CFG_HYBRID_SELECT 24
-#define MULTI_DDR_CFG_EMIFS_ACTIVE 15
+#define MULTI_DDR_CFG_EMIFS_ACTIVE 3
 
 #define DDRSS0_CTL_00_DATA 0x00000B00
 #define DDRSS0_CTL_01_DATA 0x00000000
diff --git a/arch/arm/dts/k3-j784s4-ddr.dtsi b/arch/arm/dts/k3-j784s4-ddr.dtsi
index fc74c539..4538521c 100644
--- a/arch/arm/dts/k3-j784s4-ddr.dtsi
+++ b/arch/arm/dts/k3-j784s4-ddr.dtsi
@@ -4446,6 +4446,7 @@
 		};
 
 		memorycontroller2: memorycontroller@29d0000 {
+			status = "disabled";
 			compatible = "ti,j721s2-ddrss";
 			reg = <0x0 0x029d0000 0x0 0x4000>,
 			      <0x0 0x0114000 0x0 0x100>,
@@ -6655,6 +6656,7 @@
 		};
 
 		memorycontroller3: memorycontroller@29f0000 {
+			status = "disabled";
 			compatible = "ti,j721s2-ddrss";
 			reg = <0x0 0x029f0000 0x0 0x4000>,
 			      <0x0 0x0114000 0x0 0x100>,
diff --git a/arch/arm/dts/k3-j784s4-evm.dts b/arch/arm/dts/k3-j784s4-evm.dts
index afd84a6d..e4b80a55 100644
--- a/arch/arm/dts/k3-j784s4-evm.dts
+++ b/arch/arm/dts/k3-j784s4-evm.dts
@@ -34,9 +34,9 @@
 	memory@80000000 {
 		device_type = "memory";
 		bootph-all;
-		/* 32G RAM */
+		/* 16G RAM */
 		reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
-		      <0x00000008 0x80000000 0x00000007 0x80000000>;
+		      <0x00000008 0x80000000 0x00000003 0x80000000>;
 	};
 
 	reserved_memory: reserved-memory {
-- 
2.43.0

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

    您好、 Dušan 。

    只是想再次确认、您使用的是 TI EVM、并将存储器减小到16GB 并面临 memtester 问题?

    SDK 10.0在 DDR 一致性方面不应该有任何问题。

    您是否也看到了32 GB 的问题?
    能否分享有助于重现此问题的任何用例?

    -基尔西

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

    我意识到我在之前的解释中犯了一个小错误。 我们使用了基于的定制电路板 TDA4VH-Q1 和我们的板和之间的唯一区别 J784S4 EVM DDR 时隙数。 EVM 有四个 DDR 插槽、而我们的定制电路板有两个、但都使用相同的 DDR 模块。 我们的 DDR 配置遵循我之前分享的根据进行的调整 的第1部分  。  TI 论坛

    作为参考、我们之前测试了 EVM 板 来禁用两个 DDR 插槽、但我们只运行了  memtester、它已成功完成。 因为我们对应用了相同的修改 开发板 、我们不确定是否需要进行其他更改。

    我们还测试了多个 Stress-ng 上的配置 EVM 板(32GB RAM) 、并且所有测试均运行无问题。 但是、 执行某些子程序  繁重的工作负载  触发器 A  定制电路板上的内核紧急情况(16GB RAM) .

    关于定制电路板的用例、我们观察到这一点 高影响力任务 导致出现内核恐慌。 我们的客户在开发  CMake 应用程序时遇到此问题  并行任务 . 他们也在上运行相同的过程 EVM 板 已成功完成。 我们在定制板上尝试了相同的命令、在这两种情况下、系统崩溃并出现内核恐慌。 日志指示 存储器相关错误 、这表明可能存在的问题 DDR 配置 .

    此致、
    Dušan Stanišić μ A

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

    您好、 Dušan Stanišić

    感谢您的澄清。 这也指向 DDR 配置。 我正在让我们的复员方案专家发言。

    我们将在一两天内回复您。

    此致、
    基尔西

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

    您好、Dušan Stanišić

    几个问题:

    • 您是否正在使用默认 TI EVM DDR DTSI 文件或者您是否生成了新文件?   
    • 您是在多个板上还是在几个板上观察到此问题?  
    • 您是否能够监测重负载下的器件温度? (在较重负载下进行测试时、如果在温度室内让器件冷却、是否与温度有任何相关性)

    几个初始调试步骤:

    • 您是否可以尝试下面随附的 DTSI 文件(k3-j784s4-ddr-evm-lp4.dtsi)?
    • 您是否可以 尝试使用较低的 DDR 频率( 下面的 DTSI 文件 k3-j784s4-ddr-evm-lp4_3200.dtsi)进行测试?
    • 作为后续选项、我们可以尝试仅使用 DDRSS0进行测试、但我们无法仅使用 DDRSS1进行测试。 因此、结论可能会受到限制。

    e2e.ti.com/.../k3_2D00_j784s4_2D00_ddr_2D00_evm_2D00_lp4.dtsi

    e2e.ti.com/.../k3_2D00_j784s4_2D00_ddr_2D00_evm_2D00_lp4_5F00_3200.dtsi

    此致、
    Kevin

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

    Kevin 老师、您好!

    您提供的第一个补丁是有效的、一切都按预期运行。 经过一些调试后、我注意到了 DDRSS 寄存器配置工具 正确生成的 DDR 配置 RTOS 和 JTAG . 不过、对于 Linux 、我们最初不能识别中的相同代码结构 Dtsi 附加的 File。

    重新访问我的 上一帖子 为了修改 DDR、我意识到提供的解决方案仅修改了的特定部分 k3-j784s4-DDR-EVM-L4.dtsi 而非整个文件。 这种部分修改是导致出现此问题的根本原因。

    此致、
    Dušan Stanišić μ A