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.

[参考译文] TMDS64EVM:从自定义 SBL_OSPI 引导 Linux 在中断控制器初始化时失败

Guru**** 2482225 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1449476/tmds64evm-linux-boot-from-custom-sbl_ospi-fails-on-interrupt-controller-initialization

器件型号:TMDS64EVM

工具与软件:

您好!

我尝试从自定义 ospi 引导加载程序并行引导 Linux (在 A53上)和裸机应用程序(在 R5上)。

自定义引导加载程序基于 SBL_OSPI、并使用 SBL_OSPI_Linux 中用于 Linux 引导的器件进行了扩展。

我在 ospi 闪存中有一个 Linux 应用程序映像、用于在 SD 卡上引导 Linux。 从 SD 卡直接引导 Linux (将引导跳线设置为 SDCARD 引导)成功。

从 ospi 引导加载程序启动时、Linux 引导在中断控制器初始化时失败、并在循环中呈现 am65-cpsw-nuss 以太网初始化:

[    0.914500] ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000a '10.1.7--v10.01.07 (Fiery Fox)')
[    1.026931] pca953x 0-0038: supply vcc not found, using dummy regulator
[    1.034036] pca953x 0-0038: using no AI
[    1.061276] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
[    1.069359] pca953x 1-0022: supply vcc not found, using dummy regulator
[    1.076421] pca953x 1-0022: using AI
[    1.101798] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
[    1.108001] ti-sci-intr 4210000.interrupt-controller: Destination irq resource allocation failed
[    1.117032] ti-sci-intr: probe of 4210000.interrupt-controller failed with error -22
[    1.125841] ti-sci-intr bus@f4000:interrupt-controller@a00000: Destination irq resource allocation failed
[    1.135668] ti-sci-intr: probe of bus@f4000:interrupt-controller@a00000 failed with error -22
[    1.144875] ti-sci-inta 48000000.interrupt-controller: VINT resource allocation failed
[    1.153008] ti-sci-inta: probe of 48000000.interrupt-controller failed with error -22
[    1.161685] ti-udma 485c0100.dma-controller: Number of rings: 68
[    1.168524] ti-udma 485c0000.dma-controller: Number of rings: 288
[    1.176488] printk: console [ttyS2] disabled
[    1.181376] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 30, base_baud = 3000000) is a 8250
[    1.190222] printk: console [ttyS2] enabled
[    1.190222] printk: console [ttyS2] enabled
[    1.198718] printk: bootconsole [ns16550a0] disabled
[    1.198718] printk: bootconsole [ns16550a0] disabled
[    1.217052] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.260362] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.270834] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.279026] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000002
[    1.291964] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
[    1.299102] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.309081] mmc0: CQHCI version 5.10
[    1.310061] ti-udma 485c0100.dma-controller: Number of rings: 68
[    1.320436] ti-udma 485c0000.dma-controller: Number of rings: 288
[    1.330444] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.359045] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    1.376350] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.386817] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.395031] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000002
[    1.407984] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
[    1.415159] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.424061] ti-udma 485c0100.dma-controller: Number of rings: 68
[    1.430611] mmc1: CQHCI version 5.10
[    1.431261] ti-udma 485c0000.dma-controller: Number of rings: 288
[    1.444397] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
[    1.477581] mmc0: Command Queue Engine enabled
[    1.482104] mmc0: new HS200 MMC card at address 0001
[    1.482174] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    1.488037] mmcblk0: mmc0:0001 S0J56X 14.8 GiB
[    1.496397] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.507313]  mmcblk0: p1 p2 p3 p4 < p5 >
[    1.510118] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
[    1.512711] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB
[    1.519527] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000002

为了确保裸机应用程序的初始化不是问题、我添加了一个空应用程序、该应用程序不起作用。 因此、我假设问题在于自定义引导加载程序。  

我不确定 SBL 引导加载程序如何防止 Linux 初始化中断控制器。

我 感谢您提出的任何想法。

Alex

会的  

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

    请忽略最后一个"我会"、 因为没有编辑按钮、我无法更正它  

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

    您好、Alex、

    由于 RM 配置的差异、您似乎必须在 SBL 中使用 Linux 板配置 blob 来启动 Linux。 您是否已经尝试了以下更改、但仍然看到问题?

    --- ./examples/drivers/boot/sbl_ospi/am64x-evm/r5fss0-0_nortos/ti-arm-clang/makefile	2024-12-04 13:07:12.639416480 +0530
    +++ ./examples/drivers/boot/sbl_ospi_linux/am64x-evm/r5fss0-0_nortos/ti-arm-clang/makefile	2024-09-19 15:32:14.737729016 +0530
    ...
    @@ -255,7 +255,7 @@
     SYSFW_PATH=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/soc/am64x_am243x
     SYSFW_LOAD_ADDR=0x44000
     BOARDCFG_LOAD_ADDR=0x7B000
    -BOARDCFG_BLOB=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/sciclient_default_boardcfg/am64x/boardcfg_blob.bin
    +BOARDCFG_BLOB=$(MCU_PLUS_SDK_PATH)/source/drivers/sciclient/sciclient_default_boardcfg/am64x/boardcfg_blob_linux.bin
     
     
     SBL_RUN_ADDRESS=0x70000000
    ...

    此致、

    Prashant