ST意法半导体
直播中

陈飞

7年用户 1185经验值
私信 关注
[问答]

STM32MP1 env本地构建TF-A在引导期间崩溃怎么解决?

你好
我正在尝试开始使用 STM32MP1 env,但在按照以下步骤构建受信任的固件启动映像时遇到了一些问题:https ://wiki.st.com/stm32mpu/wiki/STM32MP15_TF-A
我正在使用以下命令在v2.2-stm32mp分支上使用 gcc 版本9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)构建它,git 分支没有变化:
  • make distclean
  • make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=aarch32 ARM_ARCH_MAJOR=7 PLAT=stm32mp1 DTB_FILE_NAME=stm32mp157a-dk1.dtb FDT_SOURCES=fdts/stm32mp157a-dk1.dts DEBUG=1 STM32MP_SDMMC=1 dtbs
  • make CROSS_COMPILE=arm-linux-gnueabihf- ARCH=aarch32 ARM_ARCH_MAJOR=7 PLAT=stm32mp1 DTB_FILE_NAME=stm32mp157a-dk1.dtb FDT_SOURCES=fdts/stm32mp157a-dk1.dts DEBUG=1 STM32MP_SDMMC=1
我可以在串行控制台上看到以下消息:
  • NOtiCE:  CPU: STM32MP157AAC Rev.B
  • NOTICE:  Model: STMicroelectronics STM32MP157A-DK1 Discovery Board
  • NOTICE:  Board: MB1272 Var1.0 Rev.C-01
  • INFO:    Reset reason (0x15):
  • INFO:      Power-on Reset (rst_por)
  • INFO:    PMIC version = 0x10
  • INFO:    Using SDMMC
  • INFO:      Instance 1
  • INFO:    Boot used partition fsbl1
  • NOTICE:  BL2: v2.2-r2.0(debug):v2.2-stm32mp-r2
  • NOTICE:  BL2: Built : 11:17:04, Nov 13 2020
  • INFO:    Using crypto library 'stm32_crypto_lib'
  • INFO:    BL2: Doing platform setup
  • INFO:    RAM: DDR3-DDR3L 16bits 533000Khz
  • INFO:    Memory size = 0x20000000 (512 MB)
  • INFO:    BL2 runs SP_MIN setup
  • INFO:    BL2: Loading image id 4
  • INFO:    Loading image id=4 at address 0x2ffeb000
  • INFO:    Image id=4 loaded: 0x2ffeb000 - 0x2ffff000
  • INFO:    BL2: Loading image id 5
  • INFO:    Loading image id=5 at address 0xc0100000
  • INFO:    STM32 Image size : 903902
  • INFO:    Image id=5 loaded: 0xc0100000 - 0xc01dcade
  • WARNING: Skip signature check (header option)
  • NOTICE:  ROTPK is not deployed on platform. Skipping ROTPK verification.
  • NOTICE:  BL2: Booting BL32
  • INFO:    Entry point address = 0x2ffeb000
  • INFO:    SPSR = 0x1d3
  • Undefined instruction at: 0x2ffeb00c
  • Undefined instruction at: 0x2ffd4370

SD-CARD 映像是使用create_sdcard_from_flashlayout.sh构建的,基于以下脚本:
  • #Opt        Id                Name                Type                IP                Offset                Binary
  • -                0x01        fsbl1-boot        Binary                none        0x0                        arm-trusted-firmware/tf-a-stm32mp157a-dk1-serialboot.stm32
  • -                0x03        ssbl-boot        Binary                none        0x0                        bootloader/u-boot.stm32
  • P                0x04        fsbl1                Binary                mmc0        0x00004400        arm-trusted-firmware/tf-a.stm32
  • P                0x05        fsbl2                Binary                mmc0        0x00044400        arm-trusted-firmware/tf-a.stm32
  • PD                0x06        ssbl                Binary                mmc0        0x00084400        bootloader/u-boot.stm32
  • P                0x07        boot                System                mmc0        0x00284400        st-image-bootfs-openstlinux-weston-stm32mp1.ext4
  • P                0x08        rootfs                FileSystem        mmc0        0x05284400        st-image-weston-openstlinux-weston-stm32mp1.ext4
U_BOOT(也是本地构建)和其他图像都可以,因为如果我使用tf-a-stm32mp157a-dk1-trusted.stm32而不是本地编译的二进制文件,它将正常启动
是否有任何关于 TF-A 构建的已知问题?






回帖(1)

陈鲜孰

2023-1-12 11:04:40
我对您的构建命令和 CROSS_COMPILE 的值感到有点惊讶
在提供的 SDK 中正确构建 TF-A 的简单命令行是:
make -f Makefile.sdk TF_A_CONFIG=trusted TFA_DEVICETREE=<板>
举报

更多回帖

发帖
×
20
完善资料,
赚取积分