4.3 海思SS928开发 - uboot开发 - 非安全启动镜像制作

发布于:2024-04-24 ⋅ 阅读:(28) ⋅ 点赞:(0)

4.3 uboot开发 - 非安全启动镜像

  • 非安全启动方案启动流程如下:芯片上电,加载固化在ROM里的代码->启动GSL->启动uboot->引导内核启动
  • 其中,gsl 为一级 Bootloader,uboot 为二级 Bootloader。

准备 gsl.bin 文件

  • 制作步骤如下:

    cd ~/hiss928/sdk/ema_2.0.2.2/SS928V100_SDK_V2.0.2.2/osdrv/components
    tar -xf boot.tar.gz
    cd boot/gsl/
    # 将工具链加入系统路径
    source ~/hiss928/sdk/ss928_sdk_g7.3_k4.19/env_setup.sh
    # 编译 gsl
    make CHIP=ss928v100
    # 最后生成的文件为 pub/gsl.bin
    
  • 编译中遇到的问题:aarch64-mix210-linux-ld:linker.lds:29: syntax error

    • 原因:向前翻,可以看到 /bin/sh: line 1: printf: `': invalid format character 错误,该错误导致 TEXT_BASE 未定义
    • 解决:修改 cfg.mk,第 7 行将 %\#x 修改为 %#x

非安全启动镜像制作

  • 制作步骤如下:

    cd ..
    # 拷贝制作需要的脚本文件
    cp -rfp image_map ~/hiss928/uboot/ss928_uboot_v2020.1/
    cp gsl/pub/gsl.bin ~/hiss928/uboot/ss928_uboot_v2020.1/gsl.loader
    
    # 编译 uboot
    cd ~/hiss928/uboot/ss928_uboot_v2020.1/
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- distclean
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- ss928v100_emmc_defconfig
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- -j16
    make ARCH=arm CROSS_COMPILE=aarch64-mix210-linux- u-boot-z.bin
    
    # 制作非安全启动镜像
    cp -f gsl.loader image_map/gsl.bin
    cp -f u-boot-ss928v100.bin image_map/u-boot-original.bin
    cp -f ss928.reg image_map/.reg
    cd image_map
    python3 oem/oem_quick_build.py
    # 最后在 image/oem/ 目录下生成的 boot_image.bin 镜像即为 非安全启动镜像
    

完善仓库

  • .gitignore 文件末尾添加以下内容:

    *__pycache__/
    image_map/image/
    image_map/oem/tmp/
    
  • 推送代码到远端。