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.

[参考译文] SK-AM62-LP:当使用 SBL 引导 Linux 内核时、Linux 无法访问剧团、所有访问都返回错误–110

Guru**** 2427780 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1512115/sk-am62-lp-linux-cannot-access-spinand-whil-using-sbl-to-boot-linux-kernel-all-accesses-return-error--110

器件型号:SK-AM62-LP
Thread 中讨论的其他器件: SysConfigAM625

工具/软件:

请加载 SDK 版本

MCU_PLUS_SDK_am62x_10_01_00_33

TI-PROCESSOR-SDK-LINUX-RT-am62xx-EVM-10.01.10.04

TI-Linux-kernel-6.6.58+git-ti-RT

联系方式 1281.

sysconfig1.23.0

GCC-ARM-9.2-2019.12

我将 SDK 安装到 ubuntu22.04 中的默认 dir ~/中、并使用 examples/drivers/boot/sbl_ospi_nand_linux_multistage 来生成 SBL 文件

阶段 1:编译 sbl_ospi_nand_linux_stage1.release.hs_fs.tiimage
     在 MCU SDK 的根目录中:
     make -s -C examples/drivers/boot/sbl_ospi_nand_linux_multistase/sbl_ospi_nand_linux_stage1/am62x-sk-lp/r5fss0-0_nortos/ti-arm-clang all


阶段 2:编译 sbl_ospi_nand_linux_stage2.release.appimage.hs_fs
     make -s -C examples/drivers/boot/sbl_ospi_nand_linux_multistase/sbl_ospi_nand_linux_stage1/am62x-sk-lp/r5fss0-0_nortos/ti-arm-clang all


第 3 阶段:构建 linux.appimage.hs_fs
      从 Processor SDK 编译 bl31.bin 和内核、然后放入 tools/boot/linuxAppimageGen、切换到该目录、然后执行以下 命令:
      清洁&&制造

第 4 阶段:将这些文件刷写到 spinand 中、然后按下“RESET"(“(复(复位)按钮、Linux 内核可由 SBL 启动、SPI-n 和驱动器无法访问 SPI-n 和闪存器件

e2e.ti.com/.../2742.dmesg.txt

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

    您能否先从我们当前的 Linux SDK v11.0 开始、将其编程到 SD 卡上、看看是否可以正确地使用/访问 OSPI NAND 闪存? 这样您就有了已知良好的基线。

    https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX AM62X-AM62X

    此致、Andreas

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

    尊敬的 Jian:

    “你想做什么?“ 使用 SBL 引导到 Linux、对 rootfs 使用 initramfs-type 映像 (cpio)? 然后,不知何故使用一个免费的 NAND 分区持久的数据存储? 如果是、首先需要在 SBL 使用和 Linux 之间对齐 NAND 闪存映射。 Linux NAND 映射在此处的器件树文件中定义: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts?h=ti-linux-6.12.y#n244 请注意、此默认映射采用基于 U-Boot 的引导流程。 如果您将 SBL 用作引导加载程序、则 NAND 闪存映射会有所不同。 然后、您还希望将文件系统用于 UBI/UBIFS 等数据存储、而不是直接通过/dev/mtd.访问 NAND

    另一种选择是创建包含内核、rootfs 等的单个 UBI/UBIFS 映像、该映像也用于永久存储数据。 我们有一个 E2E 常见问题解答、介绍了如何针对 OSPI NOR (NOR NAND) 执行该操作、但步骤是类似的、请参阅 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1510258/faq-sk-am64b-building-and-booting-an-ubifs-based-linux-rootfs-from-ospi-nor-flash-using-ti-processor-sdk-linux-v11-x-yocto-sources

    此致、Andreas

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

    我们希望减少启动时间和阶跃。 我们希望第二阶段 SBL 直接启动 Linux 内核、而不是 u-boot 或 u-boot-spl。

    我根据 MCU SDK 完成了完整的测试、 我们没有更改闪存分区。

    实际上、我们的产品使用的是 UBI、但它有相同的问题、因此我们不得不返回并测试此原始过程、然后我们发现 falcon 模式已经存在此问题、其原因不是我们的变化所致。

    谢谢

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

    尊敬的 Jian:

    我在您的内核日志中看到您正在使用的非工作案例的崩溃转储  PREEMPT_RT (实时)内核。  您可以尝试改用常规内核来查看这是否有任何区别吗?

    另外、我注意到的一件事似乎您使用的是不同版本的系统固件...

    U-Boot 机箱(NAND 访问正常)

    [    1.271924] ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)')

    SBL 案例(NAND 访问 NG,内核崩溃)

    [    1.217054] ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000b '11.0.7--v11.00.07 (Fancy Rat)')

    如果您使用 TI Processor SDK v11.x 中的 Linux 内核(您使用的是 Linux 内核 6.12.x)、则必须使用关联的 v11.0 器件固件、以及 MCU+ SDK v11.x 中的 SBL 引导加载程序和电路板配置文件(MCU+ SDK 的一部分)。

    但是、在 U-Boot 情况下(看起来适合您)会使用较旧的固件、因为它是 U-Boot 映像的一部分、并且您使用的是较旧版本的 U-Boot (U-Boot 2024.01)。 您能否重新尝试 U-Boot 引导案例、但使用 TI Linux SDK v11.x 中的当前 U-Boot? 然后应在日志中打印 U-Boot 2025.01、并将固件版本报告为 11.x 无论是否有效、这都将是一个很好的比较点、

    此致、Andreas

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

    所有失败的情况都不使用 Uboot、因为我们希望跳过 uboot 以缩短启动时间。

    您看到了 firmware rev 0x000a '10.1.8--v10.01.08 (Fiery Fox)' in step "10. boot from sd card"
    for this case, I used uboot to load DTB, kernel and rootfs files, then it works, but if those files are loaded in sbl falcon mode, it does not work.

    因此、请忽略 UBoot。

    I will try regular kernel.

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

    常规内核:
    make arch=arm64 cross_compile=${cross_compile}defconfig ti_arm64_prune.config

    但什么都没有改变,仍然很长的时间为 MTD

     dd if=/dev/mtd0 of=./1.bin
    [ 1507.558650] Unable to handle kernel paging request at virtual address 000070675f756662
    [ 1507.566621] Mem abort info:
    [ 1507.569405]   ESR = 0x0000000096000004
    [ 1507.573160]   EC = 0x25: DABT (current EL), IL = 32 bits
    [ 1507.578469]   SET = 0, FnV = 0
    [ 1507.581526]   EA = 0, S1PTW = 0
    [ 1507.584659]   FSC = 0x04: level 0 translation fault
    [ 1507.589534] Data abort info:
    [ 1507.592404]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
    [ 1507.597884]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
    [ 1507.602929]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
    [ 1507.608238] user pgtable: 4k pages, 48-bit VAs, pgdp=000000008718b000
    [ 1507.614672] [000070675f756662] pgd=080000008718a003, p4d=0000000000000000
    [ 1507.621471] Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
    [ 1507.627725] Modules linked in:
    [ 1507.630778] CPU: 0 UID: 0 PID: 466 Comm: dd Not tainted 6.12.17-gc85877d40f8e-dirty #4
    [ 1507.638682] Hardware name: Texas Instruments AM62x LP SK (DT)
    [ 1507.644414] pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
    [ 1507.651362] pc : spi_mem_exec_op+0x40/0x430
    [ 1507.655553] lr : spinand_load_page_op+0x80/0xb0
    [ 1507.660079] sp : ffff800083583730
    [ 1507.663382] x29: ffff8000835839a0 x28: 0000000000000000 x27: 0000000000000000
    [ 1507.670510] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000000
    [ 1507.677637] x23: ffff0000046a8e88 x22: 0000000000000000 x21: ffff000004410200
    [ 1507.684765] x20: ffff0000046a8880 x19: ffff8000835839e0 x18: 0000000000000000
    [ 1507.691892] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
    [ 1507.699019] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
    [ 1507.706145] x11: ffff0000067f5800 x10: 0000000000000000 x9 : 0000000000000200
    [ 1507.713272] x8 : ffff800083583a18 x7 : 0000000000000000 x6 : 0000000000000006
    [ 1507.720399] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 000070675f756372
    [ 1507.727526] x2 : 0000000000000200 x1 : 0000000000000000 x0 : ffff800083583798
    [ 1507.734653] Call trace:
    [ 1507.737090]  spi_mem_exec_op+0x40/0x430
    [ 1507.740920]  spinand_load_page_op+0x80/0xb0
    [ 1507.745096]  spinand_read_page+0x70/0xd0
    [ 1507.749012]  spinand_mtd_read+0x23c/0x688
    [ 1507.753015]  mtd_read_oob_std+0x5c/0x88
    [ 1507.756846]  mtd_read_oob+0x90/0x150
    [ 1507.760415]  mtd_read+0x68/0xc4
    [ 1507.763550]  mtdchar_read+0x21c/0x298
    [ 1507.767207]  vfs_read+0xc4/0x320
    [ 1507.770431]  ksys_read+0x74/0x10c
    [ 1507.773739]  __arm64_sys_read+0x1c/0x28
    [ 1507.777567]  invoke_syscall+0x48/0x10c
    [ 1507.781312]  el0_svc_common.constprop.0+0x40/0xe0
    [ 1507.786007]  do_el0_svc+0x1c/0x28
    [ 1507.789314]  el0_svc+0x28/0x98
    [ 1507.792366]  el0t_64_sync_handler+0x120/0x12c
    [ 1507.796716]  el0t_64_sync+0x190/0x194
    [ 1507.800375] Code: d2800000 52800001 d2804002 9101a3e0 (f9417876)
    [ 1507.806455] ---[ end trace 0000000000000000 ]---
    Segmentation fault
    root@am62xx-evm:/tmp#
    


    e2e.ti.com/.../log7.txt

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

    感谢您提供额外的测试和反馈、很高兴看到您可以在最新的软件基线上重新创建。 您仍会收到“spi-nand spi0.0:驱动程序 spi-nand 失败并出现错误–110"的“的错误、这意味着超时。

    我不知道为什么这种情况仅在基于 SBL 的引导流程中发生、而不在基于 Linux 的引导流程中发生。 我正在与团队核实是否有人遇到了这个问题。 它可能与 DM/TIFS 固件配置数据不同有关。 我将仔细检查一下。

    此致、Andreas

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

    尊敬的 Andreas:

    您能否帮助提供有关这方面的反馈?

    非常感谢!

    Yong

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

    尊敬的 Jian:

    我不知道 uboot 做了什么、但我看到了步骤 10 日志、我发现 uboot fix secure_ddr (optee) 地址错误。 可能有 uboot 执行的其他操作。

    在将设备树移交给内核之前、U-Boot 实际上会对设备树执行一些操作、其中一些操作已经手动捕获(例如将 TF-A 地址更改为 0x8000_0000)。

    以下是完整列表(来自 arch/arm/mach-k3/am62x/am625_FDT.c)  

    int ft_system_setup(void *blob, struct bd_info *bd)
    {
            fdt_fixup_cores_nodes_am625(blob, k3_get_core_nr());
            fdt_fixup_gpu_nodes_am625(blob, k3_has_gpu());
            fdt_fixup_pru_node_am625(blob, k3_has_pru());
            fdt_fixup_thermal_zone_nodes_am625(blob, k3_get_max_temp());
            fdt_fixup_thermal_cooling_device_cpus_am625(blob, k3_get_core_nr());
            fdt_fixup_reserved(blob, "tfa", CONFIG_K3_ATF_LOAD_ADDR, 0x80000);
            fdt_fixup_reserved(blob, "optee", CONFIG_K3_OPTEE_LOAD_ADDR, 0x1800000);
    
            return 0;
    }

    您能否使用 U-Boot 流程(其中 OSPI 按预期工作)进行引导、检查 Linux 使用的实际有效设备树、以及检查是否存在与您用于 Falcon 引导的 DTS 文件相比、与存储器映射和 OSPI 外设相关的差异?

    在 rootfs 中、可以通过`/sys/firmware/fdt`以二进制格式访问 Linux 器件树。 您甚至可以将其从电路板复制到您的构建机器,并通过将其构建到应用程序映像中(如果您愿意)直接将其用于 Falcon 引导。

    下面介绍了如何将 dtb 二进制文件转换回实际系统上可读的 dts 源文件、以便快速进行检查:

    root@am62xx-evm:~# dtc -q -I dtb /sys/firmware/fdt
    /dts-v1/;
    
    / {
            serial-number = "0000000000000132";
            model = "Texas Instruments AM625 SK";
            compatible = "ti,am625-sk\0ti,am625";
            interrupt-parent = <0x01>;
            #address-cells = <0x02>;
            #size-cells = <0x02>;
    <...snip...>

    我还在问最近有 MCU+ SDK Falcon Boot 实践经验的同事是否提供建议。 很快就会回来。

    此致、Andreas

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

    其实,我很早就尝试过这个想法,但没有什么改变。

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    实际上、我很早就尝试了这个想法、但没有任何变化。

    好的、感谢确认。 我已经与开发团队联系了所有这些详细信息、听到我的回复后、我会立即通知您。

    此致、Andreas

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

    Jian、

    与开发团队交谈、看起来他们可以重新创建问题。 这些问题 疑似与以下状态有关:内核在 Falcon 引导模式下湖泊之前、在 SBL 执行结束时将 OSPI 闪存保留(8D 模式)、在内核可能期望不同的模式(例如 1S)能够成功探测 OSPI 闪存。

    一旦发现任何新发现、我们将尽快通知您、并为您提供一个补丁、供您试用。

    此致、Andreas

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

    尊敬的 Andreas:

    我可以询问交付补丁的目标日期吗?

    非常感谢!

    Yong

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

    尊敬的 Yong:

    我可以询问发送补丁的目标日期吗?

    我正在与开发团队跟进、以了解状态。 我之前要求临时补丁、但尚未得到响应。

    此致、Andreas

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

    尊敬的 Yong:

    我被告知应该尝试 flashFixUpOspiBoot() 之前调用 API Board_driversClose()Drivers_close() 在 SBL 代码中调用

    您可以在此处查看如何调用此函数的示例: https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage1/am62x-sk-lp/r5fss0-0_nortos/main.c#L281

    以下是添加函数调用的位置: https://github.com/TexasInstruments/mcupsdk-core-k3/blob/k3_main/examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage1/am62x-sk-lp/r5fss0-0_nortos/main.c#L373

    不幸的是、我无法自行尝试、因为我现在没有这种特定的硬件。

    此致、Andreas

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

    尊敬的 Yong:

    以下是添加函数调用的位置:

    请在 SBL stage1 中调用 API、而不是在 SBL stage2 中调用该 API、因为这是访问 NAND 的最后阶段。 PFA 相同的补丁:

    diff --git a/examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage2/am62x-sk-lp/r5fss0-0_nortos/main.c b/examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage2/am62x-sk-lp/r5fss0-0_nortos/main.c
    index 2bc25538c..123749763 100644
    --- a/examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage2/am62x-sk-lp/r5fss0-0_nortos/main.c
    +++ b/examples/drivers/boot/sbl_ospi_nand_linux_multistage/sbl_ospi_nand_linux_stage2/am62x-sk-lp/r5fss0-0_nortos/main.c
    @@ -158,6 +158,15 @@ int32_t App_runLinuxCpu(Bootloader_Handle bootHandle, Bootloader_BootImageInfo *
     	return status;
     }
     
    +void flashFixUpOspiBoot(OSPI_Handle oHandle, Flash_Handle fHandle)
    +{
    +    OSPI_setProtocol(oHandle, OSPI_FLASH_PROTOCOL(1,1,8,0));
    +    OSPI_enableSDR(oHandle);
    +    OSPI_clearDualOpCodeMode(oHandle);
    +    Flash_reset(fHandle);
    +    OSPI_setProtocol(oHandle, OSPI_FLASH_PROTOCOL(1,1,1,0));
    +}
    +
     int main()
     {
         int32_t status;
    @@ -254,6 +263,7 @@ int main()
     
             /* Deinitialise the flash peripherial before starting other cores,
                so that other systems can access and reinitialise it.*/
    +        flashFixUpOspiBoot(gOspiHandle[CONFIG_OSPI0], gFlashHandle[CONFIG_FLASH0]);
             Board_driversClose();
     
     		if(SystemP_SUCCESS == status)
    

    此致、

    Prashant

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

    尊敬的 Jian:Wen。

    您能否帮助 Andreas 和 Prashant 的回复、并检查它是否可以帮助解决问题?

    请尽快提供反馈。

    非常感谢!

    Yong

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

    我在 SDK10 和 SDK11 上测试了此补丁、但很遗憾、这个问题仍然存在。

    我在 Board_driversClose() 之前为 SBL2 调用了这个补丁

    谢谢

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

    尊敬的 Jian wen。

    您是否会帮助提供您这边的更改和测试步骤以供审核? 另请提供新日志。

    非常感谢!

    Yong

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


    void flashFixUpOspiBoot (OSPI_Handle oHandle、Flash_Handle fHandle)

      OSPI_setProtocol (oHandle、OSPI_FLASH_PROTOCOL (1、1、8、0));
      OSPI_enableSDR (oHandle);
      OSPI_clearDualOpCodeMode (oHandle);
      FLASH_RESET (fHandle);
      OSPI_setProtocol (oHandle、OSPI_FLASH_PROTOCOL (1、1、1、0));
    }

    int main()

       ......

       ......
      FlashFixUpOspiBoot (gOspiHandle[CONFIG_OSPI0]、gFlashHandle[CONFIG_FLASH0]);

        Board_driversClose();

    --------------------------------------------------------------------------------

    sdk10.

    e2e.ti.com/.../log8.txt

    sdk11.   

    不知道为什么会有一些崩溃消息,而不是时间来找到它的原因,我们使用 sdk10

    e2e.ti.com/.../log8.txt

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

    不知道为什么我刚刚发布了相同的日志文件、以下内容适用于 SDK11

    sdk11.

    e2e.ti.com/.../7853.log8.txt

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

    尊敬的 Jian:

    我再看一下这个;您的问题可能是因为在 SBL 引导时 OSPI 引导所需的 pinmux 可能会丢失。

    您能否将以下内容添加到电路板级 dts 文件中:

    &main_pmx0 {
    	ospi0_pins_default: ospi0-default-pins {
    		pinctrl-single,pins = <
    			AM62X_IOPAD(0x000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK */
    			AM62X_IOPAD(0x02c, PIN_OUTPUT, 0) /* (F23) OSPI0_CSn0 */
    			AM62X_IOPAD(0x00c, PIN_INPUT, 0) /* (E25) OSPI0_D0 */
    			AM62X_IOPAD(0x010, PIN_INPUT, 0) /* (G24) OSPI0_D1 */
    			AM62X_IOPAD(0x014, PIN_INPUT, 0) /* (F25) OSPI0_D2 */
    			AM62X_IOPAD(0x018, PIN_INPUT, 0) /* (F24) OSPI0_D3 */
    			AM62X_IOPAD(0x01c, PIN_INPUT, 0) /* (J23) OSPI0_D4 */
    			AM62X_IOPAD(0x020, PIN_INPUT, 0) /* (J25) OSPI0_D5 */
    			AM62X_IOPAD(0x024, PIN_INPUT, 0) /* (H25) OSPI0_D6 */
    			AM62X_IOPAD(0x028, PIN_INPUT, 0) /* (J22) OSPI0_D7 */
    			AM62X_IOPAD(0x008, PIN_INPUT, 0) /* (J24) OSPI0_DQS */
    		>;
    	};
    };
    
    &ospi0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&ospi0_pins_default>;
    };

    这些摘录来自 https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am62-phycore-som.dtsi?h=ti-linux-6.12.y 、但也应在此处应用。

    此致、Andreas

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

    我使用以下命令获取电路板上的 DTS

    DTC -I FS /proc/device-tree -O dts -o current.dts

    我决定不使用 falcon 模式,因为很少有项目使用此模式。 也许我们解决了这个问题、许多其他问题可能仍在等待我们解决。

    我们仍将使用默认 uboot 模式、可能会使用 MCU SDK 替换 uboot spl。

    请关闭此 TT

    谢谢

    e2e.ti.com/.../dts_5F00_on_5F00_board.txt