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.

[参考译文] AM4376:rngd's 读取/dev/hwrng 失败

Guru**** 2943030 points

Other Parts Discussed in Thread: AM4376, AM4372

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1653854/am4376-rngd-s-failure-in-reading-dev-hwrng

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

SDK 版本:AM4376 SDK v6.3(HS 版本)

我一直在系统启动期间激活 rngd.service。 但是、rngd 读取/dev/hwrng.失败

启动后、当我运行“rngd -f -r /dev/hwrng -n 1“以在 Linux 控制台上读取 hwrng 时、捕获的日志如下所示。 当 rngd.service 尝试读取/dev/hwrng.时会发生类似的问题

“引导期间/dev/hwrng 中的读取失败

无法打开任何熵源

可能未加载 RNG 设备模块“

请检查三点、并告诉我任何潜在问题或后续步骤中应检查的事项。

  1. 您能否确认器件树中哪一个正确[1]或[2]? [1]和[2]之间的寄存器大小和中断不同。 两人都没有为我工作。

[1] rng:rNG@48310000 {compatible = “ti、OMAP4-rng“;ti、hwmods =“rng“ ;reg =<0x48310000>; /*正确的 0x1000 大小*/ interrupts =<GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>status = “OK“;4KB; };

[2] rng:rNG@48310000 { compatible =“ti、OMAP4-rng“;ti、hwmods =“rng“ ;reg =<0x48310000 0x2000>; /*正确的 8KB 大小*/ interrupts =<GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>; status = “OK“; };

2. 我确认了.config 文件中的 CONFIG_HW_Random = y、CONFIG_HW_Random_OMAP = y、CONFIG_Crypto_DEV_OMAP = y

3. Cat /sys/class/misc/hw_random/rng_available cat /sys/class/misc/hw_random/rng_current 是空的。  

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

    尊敬的 Matt:

    一般来说、SDK v6.3 太旧、不再受此论坛支持。 但我将 AM437x SDK v6.3 预编译的 Linux 映像加载到 SD 卡中并在 AM437x GPEVM 上引导它、hwrng 似乎可以正常工作。 请查看下面随附的 Linux 控制台日志、了解我执行的检查的详细信息。

    要回答您的问题:

    #1、[2]正确。 请查看内核器件树文件 am4372.dtsi。

    #2、SDKv6.3 使用 defconfig “tisdk_AM437X-evm_defconfig“来配置内核。

    #3、在使用 SDK6.3 预编译 Linux 的 AM437x GPEVM 上、这些条目不为空。 请查看下面的控制台日志。

    e2e.ti.com/.../20260610_2D00_am437x_2D00_gpevm_2D00_sdk63_2D00_hwrng_2D00_check.log

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

    很好地了解 GP 版本可与基于 SDK6.3 的 hwrng 配合使用。 我一直使用 AM4376 HS(而非 GP)。 在我的引导日志中、L3 客户下面看起来像 “这是一个 L3 互连防火墙错误。 CPUMASTER M2() 尝试从硬件块TARGET GPMC() 读取、但系统安全防火墙阻止了它“

    [0.191634]警告:CPU:0 PID:1 位于驱动程序/BUS/OMAP-L3_NOC.c:147 L3_INTERRUPT_HANDLER+0x330/0x380 处
    [ 0.191647] 44000000.OCP:L3 自定义错误:主器件 M2(64 位)目标 GPMC(读取):调试访问期间用户模式下的数据访问

    您是否知道如何通过防火墙访问 Linux?

    谢谢

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

    尊敬的 Matt:

    我只在 GP 器件上工作、而不触摸 HS。 尽管我知道 HS 器件已启用防火墙、但我不清楚 GPMC 上的 L3_NOC 问题与防火墙相关。 无论如何、此问题是否与您在上面的初始报告中的 hwrng 问题有关?

    hwrng 是否在使用相同内核配置的 GP 器件的电路板上工作? 我想确保问题是与防火墙相关的 HS 器件、而不是简单的内核错误配置。

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

    感谢您的答复。 我想我需要为 HS 打开新的 TT。

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

    您现在实际上不需要打开新的票证。 我的观点是、如果您已经检查了问题是否与内核配置错误有关、例如、同一软件是否在 GP 器件上工作。

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

    我没有 GP 器件、 所有器件都是 HS 器件。 您是否熟悉 L3 自定义错误:主器件 M2(64 位)目标 GPMC(读取):调试访问期间用户模式下的数据访问?

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

    仅当在器件树中启用 rng 并显示“L3 自定义错误:主器件 M2(64 位)目标 GPMC(读取):调试访问期间用户模式下的数据访问“时、才会看到。

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

    尊敬的 Matt:

    我们的 HS 专家将于下周中旬离职。 他回来后、我会与他核对。

    在 GP 器件上、L3_NOC 错误通常是由目标模块(在本例中为 GPMC)未通电或时钟选通引起的。

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

    尊敬的 Bin Liu:

    在您的答案下方、哪些类型的时钟会导致 L3_NOC 错误? 我的 H/W 板上没有外部 RTC。

    “在 GP 器件上、L3_NOC 错误通常是由目标模块(在本例中为 GPMC)未通电或时钟选通引起的“

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

    尊敬的 Matt:

    它是 GPMC 模块的功能输入时钟 (fclk)。 它是 SoC 内部的内部时钟。