Я пытаюсь скомпилировать доверенную прошивку ARM (TF-A) в STM32MP с помощью STM32CubeIDE.
Требования
- Linux, например *дистрибутив Buntu Linux 22.04 и выше
- Eclipse IDE
- STM32MP SDK
Когда я компилирую TF-A, я получаю, что такие метки, как fmc, i2c, sdmmc, spi и т. д., не могут быть найдены. Путь отсутствует в файлах .dts.
Код: Выделить всё
23:03:35 **** Build of configuration Default for project stm32-computer-pin-configuration_CA7_tf-a-2.8.15-r2 ****
make -f ../Makefile.sdk.ide TF_A_DEVICETREE=stm32mp151a-stm32-computer-pin-configuration-mx TF_A_CONFIG=optee-sdcard stm32 metadata
Wrapper for /opt/st/stm32cubeide_1.16.0/plugins/com.st.stm32cube.ide.mpu.linux.toolchain_2.1.0.202305092038/tools/bin/make
FIP_DEPLOYDIR_ROOT: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../../FIP_artifacts
+ case "$command" in
+ exec make -f ../Makefile.sdk.ide TF_A_DEVICETREE=stm32mp151a-stm32-computer-pin-configuration-mx TF_A_CONFIG=optee-sdcard stm32 metadata
make[1]: Nothing to be done for 'all'.
make[1]: Entering directory '/home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2'
Including bl32/optee/optee.mk
Trusted Firmware-A built for OP-TEE payload support
PSA_FWU_SUPPORT is an experimental feature
CPP /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.dts
DTC /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.dts
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:946.18-29 Label or path fmc_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:947.18-30 Label or path i2c2_pins_a not found
make[1]: Leaving directory '/home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2'
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:948.18-30 Label or path i2c4_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:950.18-34 Label or path qspi_bk1_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:951.18-34 Label or path qspi_bk2_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:952.18-34 Label or path qspi_clk_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:953.18-35 Label or path sdmmc1_b4_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:954.18-36 Label or path sdmmc1_dir_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:955.18-36 Label or path sdmmc1_dir_pins_b not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:956.18-35 Label or path sdmmc2_b4_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:957.18-35 Label or path sdmmc2_b4_pins_b not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:958.18-36 Label or path sdmmc2_d47_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:959.18-36 Label or path sdmmc2_d47_pins_b not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:960.18-36 Label or path sdmmc2_d47_pins_c not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:961.18-36 Label or path sdmmc2_d47_pins_d not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:963.18-31 Label or path uart4_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:964.18-31 Label or path uart4_pins_b not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:965.18-31 Label or path uart7_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:966.18-31 Label or path uart7_pins_b not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:967.18-31 Label or path uart7_pins_c not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:968.18-31 Label or path uart8_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:969.18-32 Label or path usart2_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:970.18-32 Label or path usart2_pins_b not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:971.18-32 Label or path usart2_pins_c not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:972.18-32 Label or path usart3_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:973.18-32 Label or path usart3_pins_b not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:974.18-32 Label or path usart3_pins_c not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:975.18-41 Label or path usbotg_fs_dp_dm_pins_a not found
Error: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.pre.dts:976.18-35 Label or path usbotg_hs_pins_a not found
FATAL ERROR: Syntax error parsing input tree
make[1]: *** [Makefile:1453: /home/lubuntu/Dokument/GitHub/stm32-computer/STM32CubeIDE/stm32-computer-pin-configuration/CA7/tf-a-2.8.15-r2/tf-a-stm32mp-v2.8.15-stm32mp-r2/../build/optee-sdcard-stm32mp15-stm32mp151a-stm32-computer-pin-configuration-mx/fdts/stm32mp151a-stm32-computer-pin-configuration-mx-bl2.dtb] Error 1
make: *** [../Makefile.sdk:232: tf-optee-sdcard-stm32mp15] Error 1
"make -f ../Makefile.sdk.ide TF_A_DEVICETREE=stm32mp151a-stm32-computer-pin-configuration-mx TF_A_CONFIG=optee-sdcard stm32 metadata" terminated with exit code 2. Build might be incomplete.
23:03:37 Build Failed. 31 errors, 0 warnings. (took 1s.745ms)
Это инструкции по воспроизведению этой проблемы.
Шаг 1:
Начните загружать STM32CubeIDE здесь: https://www.st.com/en/development- Tools/stm32cubeide.html
Выберите версию Linux: DEB, RPM или Generic.
Шаг 2:
Начните загрузку SDK здесь: https://www.st.com/en/embedded-software ... p1dev.html
Выберите свою архитектуру: ARM, x86, x86-Rust (Да, ST теперь поддерживает Rust)
Для случая x86:
Извлечение
Код: Выделить всё
tar xvf en.sdk-x86_64-stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.tar.gz
Код: Выделить всё
gzip -d en.sdk-x86_64-stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.tar.gz
tar xvf en.sdk-x86_64-stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.tar
Код: Выделить всё
chmod +x stm32mp1-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.2.4-openstlinux-6.1-yocto-mickledore-mpu-v24.06.26.sh
Шаг 3:
Когда вы установили следующее:< /p>
- STM32CubeIDE
- STM32MP SDK

Шаг 4:
Выберите свой процессор. Есть варианты:
- STM32MP15XXXX
- STM32MP13XXXX

Дайте ему имя:

< /p>
Очень важно, чтобы вы вошли в свою учетную запись ST, когда нажимаете «Готово». Затем он загрузит прошивку, компилятор и все другие инструменты.

Шаг 5:
После того, как вы создали проект, пришло время настроить SDK внутри STM32CubeIDE. Просто щелкните правой кнопкой мыши папку CA7 и выберите «Настроить OpenSTLinux».
[img]https://i.sstatic .net/7o0ZdYwe.png[/img]
Нажмите «Да»

Выберите папку установки SDK и нажмите «Применить и закрыть».

Шаг 6:
Пришло время добавить доверенную прошивку ARM.
Нажмите правой кнопкой мыши CA7 и выберите «Импортировать проект OpenSTLinux...

Здесь вы можете выбрать:
- Ядро Linux
- Optee-OS
- TF-A (доверенная прошивка ARM)
- U-boot
[img]https://i .sstatic.net/fsXVif6t.png[/img]
Шаг 7:
Создайте файлы .dts для своего проекта. Файлы .dts представляют собой файлы дерева устройств.

Шаг 8:
Теперь пришло время воспроизвести ошибку. Просто щелкните правой кнопкой мыши и нажмите «Построить цель». Теперь вы получите ту же ошибку, что и выше.

Ваши скомпилированные файлы теперь будут находиться в этой папке:
[img]https:/ /i.sstatic.net/Tky8z7Jj.png[/img]
Прогуляйтесь и задайте вопрос:
Есть поищите это.
Если вы откроете файл stm32mp15-bl2.dtsi внутри папки fdts внутри папки tf-a на вашем STM32MP проект. Если вы удалите эти /omit-if-not-ref/ &
, ошибка не появится при создании проекта.

Проблема в том, что... это не лучший вариант для отвечать. Конечно, это сработает, но так не должно быть. Значит, что-то не так и не хватает, и я не знаю, почему. Кроме того, у меня возникли проблемы с файлом .stm32 внутри папки FIP. Вероятно, я удалил /omit-if-not-ref/ &
.
Подробнее здесь: https://stackoverflow.com/questions/788 ... e-dts-file