在NXP的SDK使用

前言

本文将介绍NXP i.MX8的SDK包使用方法,是根据以下手册做的笔记,建议还是啃原版手册。

NXP-SDK用户手册

1.DDR配置

DDR配置是指使用寄存器编程辅助工具(RPA)为用户具体的DDR 配置(DDR 芯片类型、容量等)进行 DDR 初始化。

下载RPA

RPA下载地址

RPA的介绍

RPA是一个excel表格,通过修改表格中的数据,生成BOARD_NAME.cfg或者BOARD_NAME.ds,在SCFW移植中使用。

RPA中一共有6个选项卡:
选项卡
不同的选项卡有不同的功能,在本文下文会介绍部分选项卡的作用。

Register Configuration选项卡

我们先重点关注Register Configuration选项卡,它将用于配置DDR的基本信息。
表格的颜色代表不同的信息,可以简单理解为:
橙色:经常需要认为修改,为DDR配置信息
绿色:可以修改,但不经常修改的信息
灰色:自动更新的信息
白色:不更改的信息
黄色:在其他选项卡出现,表示其他选项卡(如DCD CFG file CBT)中黄色部分的信息与Register Configuration的配置有关。
在这里插入图片描述

BoardDataBusConfig选项卡

用来配置DDR与SOC的连接关系
在这里插入图片描述

“DCD CFG file CBT” 与 “DCD stress test script”

根据前两个选项卡生成的副本,需要复制生成.cfg或.ds文件。

RPA使用方法

  1. 获得DDR提供商的datasheet,根据datasheet填写Register Configuration选项卡。
    在这里插入图片描述

  2. 根据原理图,填写BoardDataBusConfig选项卡配置DDR与SOC的物理连接信息。
    手册中的例子:
    在这里插入图片描述

  3. 填写好以上两个选项卡后,会自动更DCD CFG file CBTDCD stress test script
    如果要生成配置文件用于移植,则将DCD CFG file CBT中的内容复制到一个文本中,命名为xxx.cfg
    如果要进行压力测试,则将DCD stress test script中的内容复制到一个文本中,命名为xxx.ds

  4. 将以上两个文件移入dcd目录下(SCFW移植中会讲到)

2. SCFW移植

在imx8系列中除了A核,还有M核,硬件资源是可以进行分配的,我们使用SCU对其进行资源分区,SCU上运行的程序就是SCFW。

SCFW提供的服务:

在这里插入图片描述

编译scfw

SCFW代码请在手册中找
1.下载交叉编译工具链,并配置环境变量TOOLS
2. 将DDR配置生成的xxx.cfg文件拷贝到目录SCFW_SOURECE/scfw_export_mx8qm_b0/platform/board/mx8qm_mek/dcd下。
3. 编译代码,命令格式为:
在这里插入图片描述
编译生成scfw_tcm.bin

3. ATF移植

ATF的作用是电源管理与资源分区,是一个启动固件。

电源管理

linux的电源管理-PSCI,主要用于:

  • 处理器空闲管理
  • 处理器动态加载/移除,以及二次启动
  • 系统关闭和复位
    源码位置:ATF_SOURCE/plat/imx/imx8qm/imx8qm_psci.c

资源分区

源码位置:ATF_SOURCE/plat/imx/imx8qm/imx8qm_bl31_setup.c

编译ATF

在目录ATF_SOURCE/plat/imx/imx8qm/下 执行make命令:
在这里插入图片描述
在这里插入图片描述
如果编译成功,二进制文件将位于 ATF_SOURCE/build/imx8qx/release/bl31.bin 中。
在这里插入图片描述

4. UBOOT移植

  1. 制作deconfig文件
    使用deconfig配置需要的文件有:
    在这里插入图片描述
    在这里插入图片描述
    deconfig文件内存放一些配置信息
    在这里插入图片描述
    编译目录
    在这里插入图片描述
  2. uboot-imx/录编译生成u-boot.binSPL ,镜像位于 uboot-imx/spl/u-boot-spl.bin
make xxx_deconfig
make -j4

5. 内核移植

在linux-imx/目录编译生成u-boot.bin

make xxx_deconfig
make -j4

编译完成的 Linux 内核镜像为 arch/arm64/boot/image,dtb 文件位于arch/arm64/boot/dts/freescale/
folder。

6. 镜像打包

  1. 将编译好的二进制镜像放入imx-mkimage/中对应板子的目录下,包括:
  • ATF编译生成的bl31.bin
  • uboot编译生成的u-boot.bin u-boot-spl.bin
  • scfw编译生成的scfw_tcm.bin
  • 下载版本对应的seco.bin
    wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/<package file name>
    其中根据手册选取对应版本
    在这里插入图片描述
    例如:
wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/imx-seco-3.7.1.bin
chmod a+x imx-seco-3.7.1.bin
cd imx-seco-3.7.1/firmware/seco/mx8qxc0-ahab-container.img
  • 如果有M4的程序,可以把M4的镜像命名为m4_image.bin后放入打包文件夹
  1. 我们先来根据makefile看看打包的流程(非SPL启动):
    在这里插入图片描述
    在这里插入图片描述
  2. 打包
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值