bond 测试说明文档
bond数据内容
bond内容是从efuse中读取的数据,一共占8字节,前4字节为功能状态开关,后4字节为前4字节功能备份数据。
efuse是一种一次性可编程存储器。是利用电子迁移(EM)特性来生成的一种小型的熔丝结构。
EM熔丝可以在芯片上编程,采用I/O电路的片上电压(通常为2.5V),一个持续200微秒的10毫安直流脉冲就足以编程单根熔丝,该特性决定了efuse存储器每个bit仅支持一次编程,常见的是方法是从0编程为1,无法从1编程为0。
bond功能简介
测试例程说明
bond测试例程使用到的外设包含rom、efuse、efuse controller、uart。
- rom:上电执行efuse中的内容
- efuse controller:测试对象,用于测试对外部efuse存储器的访问。
- uart:使用uart0,实现调试信息打印,接收case配置信息等与PC的交互功能。
sfc测试例程遵循自动化测试框架,在例程执行之后,初始化串口0,通过串口发送“start”字段到PC,并等待PC发送“config”字段来获取本次需要执行的测试case。
在获取到case组合之后,初始化efuse controller,并根据case组合开始执行测试case。
这里的测试在软件上对读写做了一定限制,例如将已经置1的bit置1时不会发生写操作,而是直接返回,对已经置1的bit置0时将直接返回错误。以上限制都是基于存在efuse数据备份的基础上完成,efuse数据备份分两种方案:
- 使用纯软件备份efuse数据方案:上电之后主动将efuse数据读取出来保存在ram中,优先从ram中读取数据。
- 使用efuse controller 寄存器备份方案:上电后将efuse数据读取到寄存器中,优先从寄存器中读取数据。
case:0:bond data 读测试
bond data读测试极其简单,在efuse初始化之后,将efuse中bond相关数据读出与bond寄存器中数据进行对比,相等则为成功,反之失败,并将所有数据打印出来即可。
该测试固定判定执行成功。
case1:bond data配置测试
本case用于测试写efuse中bond相关数据,然后断电重启,让rom执行配置,rom操作完之后读取bond寄存器的值与efuse中bond内容进行对比,相等则为成功,反之失败。 注意:本次测试需要人工参与,该操需要手动断电重启。
测试流程如下:
- 往efuse中bond位置写入测试数据。
- 手动重启。
- 读出bond寄存器中的数据与efuse中bond相关数据进行对比。
测试结果通过,能正常的配置bond寄存器。