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:如何在将 ARM 上的 Linux 操作系统用作主系统时更改 DSP 时钟。

Guru**** 2595800 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/642835/linux-how-to-change-dsp-clock-when-using-linux-os-on-arm-as-master

主题中讨论的其他器件:OMAPL138OMAP-L138DA8XX

工具/软件:Linux

大家好、我目前正在使用 OMAPL138 SoC。 并设法从 Linux 引导 DSP、但希望将 DSP 内核频率从300MHz 更改为456Mhz。 请提供建议。 谢谢。  

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

    您好!

    您可以使用 devmem2来设置 PLL0和相应的 PLL0_SYSCLK1、后者为 ARM 和 DSP 时钟提供时钟源。

    要查看需要哪些寄存器、您可以参考 OMAP-L138 GEL 文件(请参阅随附 的 e2e.ti.com/.../1537.OMAP_2D00_L138_5F00_LCDK.gel)

    此致、
    Yordan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好、感谢您的回复。 您能给我们一个示例、说明如何使用 Linux 中的 devmem2来设置 PLL 设置。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    假设您要读取/写入地址0x01C11100处的 PLLC0控制寄存器(PLLCTL)、然后从 Linux 用户空间中执行以下命令:
    root@omapl138-lcdk:~ evmem2 0x01C11100 =>读取
    /dev/mem 已打开。
    映射到地址 bb6f11000的内存。
    读取地址0x01C11100 (bb6f11100):0x00000049
    root@omapl138-lcdk:~ evmem2 0x01C11100 w 0x41 => write 0x41
    /dev/mem 已打开。
    映射到地址 bb6f92000的内存。
    读取地址0x01C11100 (bb6f92100):0x00000049
    在地址0x01C11100 (bb6f92100)写入:0x00000041、回读0x00000041
    root@omapl138-lcdk:~ evmem2 0x01C11100 =>再次读取以验证寄存器写入是否正确。
    /dev/mem 已打开。
    映射到地址 bb6fdc000的内存。
    读取地址0x01C11100 (bb6fdc100):0x00000041
    root@omapl138-lcdk:~#


    此致、
    Yordan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    因此、在 ARM 内核运行 Linux 时可以更改 PLL 时钟?
    因此、我想、我可以使用 GEL 文件中的步骤来完成这一操作、当然可以使用上面提到的读取和写入方法。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正确。 这只是我应该提到的一点。 使用 devmem2时、每次启动时设置都将丢失。
    如果您想要拥有永久解决方案、则应修改内核源以将 DSP 时钟设置为456MHz。

    查看 Remoteproc 驱动程序:da8xx_remoteproc.c

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、您好!
    是的、当时正在考虑它。 我希望这是一个永久的解决办法。
    我将介绍您提到的驱动程序。 但是、是否有任何功能可以更改所有 PLL0设置。 不仅像 DSP 时钟、还像 DDR、SPI、UART 等

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

    它比仅更改一个函数更复杂。

    对于您需要检查的外设:
    arch/arm/boot/dts/da850/dtsi 和 arch/arm/boot/dts/da850-lcdk.dts
    在器件树节点中搜索时钟频率参数。

    对于 DDR 和低级 PLL 设置、您应该查看 u-boot 源码:
    arch/arm/mach-davinci/da850_lowlevel.c

    在内核中、您应该查看 arch/arm/mach-Davinc/下的源代码

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢 Yordan、我们将尝试查看这个。 谢谢。