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.

[参考译文] AM67A:在 R5F (MCU) 内核上启用 DSS0

Guru**** 2914110 points

Other Parts Discussed in Thread: AM67, AM67A, AM62P

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1649079/am67a-enable-dss0-on-r5f-mcu-core

器件型号: AM67A
主题中讨论的其他器件: AM67AM62P

您好、

我们希望在 R5F 内核上显示一个早期启动屏幕。 有人能否提供有关如何配置协处理器内核的 PDF? 另外、由于我们处于 falcon 引导模式、因此我们无法访问传统的 u-boot 命令行。

我发现我实际上无法从寄存器地址 0x30202000 读取。 我假设这是因为外设未通电? 请参阅下面的、了解对 clk-data 和 dev-data 的更改。 基本上、我有 r5f MCU 代码、用于探测 tidss 驱动器、然后卡在从外设地址第一次读取时。

diff --git a/arch/arm/mach-k3/r5/j722s/clk-data.c b/arch/arm/mach-k3/r5/j722s/clk-data.c
index cb3d864c..0f3285b3 100644
--- a/arch/arm/mach-k3/r5/j722s/clk-data.c
+++ b/arch/arm/mach-k3/r5/j722s/clk-data.c
@@ -166,6 +166,11 @@ static const struct clk_data clk_list[] = {
        CLK_FIXED_RATE("emmcsd4ss_main_0_emmcsdss_io_clk_o", 0, 0),
        CLK_FIXED_RATE("fss_ul_main_0_ospi_0_ospi_oclk_clk", 0, 0),
        CLK_FIXED_RATE("mshsi2c_main_0_porscl", 0, 0),
+       CLK_FIXED_RATE("dss0_func_clk", 148500000, 0),
+       CLK_FIXED_RATE("dss0_vp0_clk",  148500000, 0),
+       CLK_FIXED_RATE("dss0_vp1_clk",  148500000, 0),
+       CLK_FIXED_RATE("dss_oldi0_clk", 148500000, 0),
+       CLK_FIXED_RATE("dss_oldi1_clk", 148500000, 0),
        CLK_PLL("pllfracf2_ssmod_16fft_main_0_foutvcop_clk", "gluelogic_hfosc0_clkout", 0x680000, 0),
        CLK_DIV("pllfracf2_ssmod_16fft_main_0_foutpostdiv_clk_subdiv", "pllfracf2_ssmod_16fft_main_0_foutvcop_clk", 0x680038, 16, 3, 0, CLK_DIVIDER_ONE_BASED),
        CLK_DIV("pllfracf2_ssmod_16fft_main_0_foutpostdiv_clk", "pllfracf2_ssmod_16fft_main_0_foutpostdiv_clk_subdiv", 0x680038, 24, 3, 0, CLK_DIVIDER_ONE_BASED),
@@ -342,6 +347,11 @@ static const struct dev_clk soc_dev_clk_data[] = {
        DEV_CLK(170, 1, "hsdiv0_16fft_main_12_hsdivout0_clk"),
        DEV_CLK(170, 2, "board_0_tck_out"),
        DEV_CLK(170, 3, "sam62_pll_ctrl_wrap_main_0_chip_div1_clk_clk"),
+       DEV_CLK(186, 0, "dss0_func_clk"),
+       DEV_CLK(186, 2, "dss0_vp0_clk"),
+       DEV_CLK(186, 6, "dss0_vp1_clk"),
+       DEV_CLK(243, 0, "dss_oldi0_clk"),
+       DEV_CLK(244, 0, "dss_oldi1_clk"),
 };
 
 const struct ti_k3_clk_platdata j722s_clk_platdata = {
diff --git a/arch/arm/mach-k3/r5/j722s/dev-data.c b/arch/arm/mach-k3/r5/j722s/dev-data.c
index 5f7e2a44..c05e866e 100644
--- a/arch/arm/mach-k3/r5/j722s/dev-data.c
+++ b/arch/arm/mach-k3/r5/j722s/dev-data.c
@@ -36,6 +36,9 @@ static struct ti_lpsc soc_lpsc_list[] = {
        [11] = PSC_LPSC(72, &soc_psc_list[0], &soc_pd_list[3], &soc_lpsc_list[7]),
        [12] = PSC_LPSC(73, &soc_psc_list[0], &soc_pd_list[3], &soc_lpsc_list[11]),
        [13] = PSC_LPSC(74, &soc_psc_list[0], &soc_pd_list[3], &soc_lpsc_list[12]),
+       [14] = PSC_LPSC(14, &soc_psc_list[0], &soc_pd_list[0], &soc_lpsc_list[13]), /* DSS0 */
+       [15] = PSC_LPSC(15, &soc_psc_list[0], &soc_pd_list[0], &soc_lpsc_list[14]), /* OLDI0 */
+       [16] = PSC_LPSC(16, &soc_psc_list[0], &soc_pd_list[0], &soc_lpsc_list[14]), /* OLDI1 */
 };
 
 static struct ti_dev soc_dev_list[] = {
@@ -57,6 +60,9 @@ static struct ti_dev soc_dev_list[] = {
        PSC_DEV(170, &soc_lpsc_list[11]),
        PSC_DEV(177, &soc_lpsc_list[12]),
        PSC_DEV(55, &soc_lpsc_list[13]),
+       PSC_DEV(186, &soc_lpsc_list[14]),
+       PSC_DEV(243, &soc_lpsc_list[15]),
+       PSC_DEV(244, &soc_lpsc_list[16]),
 };
 
 const struct ti_k3_pd_platdata j722s_pd_platdata = {
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Evan、

    在延迟的阿波罗。 让我重新分配给正确的工程师。 请留出一些时间进行回复。

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

    尊敬的 Evan:
    我们目前不支持 AM67/A 上的定制 RTOS


    您能分享此 SoC 的用例吗?
    您可能需要查看 TDA4AEN/TDA4VEN SoC。

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

    尊敬的 Divyansh:

    我们将其用于具有 AI 功能的信息娱乐系统。

    如果您有其他处理器的补丁、我想推荐一些示例。 对于任何平台、am67a SDK 中的 u-boot 示例似乎没有在 R5 内核中启用 dss0。

    此外、这不是自定义 RTOS、它是 u-boot 中的 SPL 代码。 我的目的不是共享 dss0 外设、而是让 A53 内核在启动后接管它们。 可能需要一些特殊的驱动程序工作来防止 A53 内核复位外设。

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

    尊敬的 Divyansh:

    如果您愿意、我将在 TDA4AEN 下复制此 TT。

    我已复制 TT。

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

    尊敬的 Evan:
    也许我误解了。

    我知道 AM67A U-Boot 目前没有启用启动界面、我假设您想要 A53 UBoot 启动界面、然后切换到 Linux?
    我们为 AM62P/AM62x 平台启用了 UBoot 启动界面。

    但我还不能理解你的要求。 U-Boot 正在运行 A53、而不是 R5、您能分享预期的步骤序列吗? 此外、您还在期待什么早期启动时间 KPI?

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

    尊敬的 Divyansh:

    我们正在执行 falcon 模式、跳过 A53 中的 u-boot。 我们希望在上电后实现启动画面和背光~500ms。 我以这个速度出现背光、但我希望启用 DSS。

    AM62P/AM62x 中的 SPL 代码似乎未从 r5f MCU 内核启用 dss0。 我认为 A53 内核中的 u-boot 通过典型的 K3 驱动器启用了该功能、这是不同的。  r5f 是 MCU 使用 dev-data.c 和 clk-dev.c 中的表来手动启用电源域和时钟。

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

    尊敬的 Divyansh:

    这主要是在我的另一张票上解决的。 LSPC 寄存器在 RTOS SDK 中进行了硬编码、此处:
    source/drivers/device_manager/rm_pm_hal/rm_pm_hal_src/pm/j722s/devices.c soc

    使用幻数 PD 21、LPSC 91、94、95、我能够与寄存器交谈。

    如果您知道 RTOS SDK 在哪里可以找到这些神奇数字、很感激您提供的信息、谢谢!