3.13.1. 模块介绍

3.13.1.1. 功能简介

UserID 是指厂商在量产过程中烧录的自定义 ID 数据,比如:

  • SN 序列号

  • MAC 地址

  • 其他通过指定名字索引的数据

这些信息可以在工厂生产过程中使用 AiBurnID 工具进行烧录,并且在存储在 “userid” 分区。

UserID 分区支持在烧录完成之后进行 锁定 功能,一旦锁定,启动过程中不再进入 UserID 烧录模式。

备注

  • ID 名字可以自定义,但是不能重复

  • ID 的数据长度没有做特殊限制,但是分区大小为 256KB

UserID 软件模块分为两部分:

  • U-Boot 中的 UserID 烧录

  • Linux 用户空间读写库

其中 U-Boot 的 UserID 程序主要用于实现烧录,以及 “userid” 分区读写;Linux 用户空间的 UserID 库用于用户程序读取相关的 ID 信息。

默认情况下,UserID 烧录功能在 U-Boot 中不使能,使能 UserID 功能会导致开发阶段启动速度变慢。

3.13.1.2. 启动流程

使能 UserID 功能之后,启动流程在不同场景下会有不同,容易让开发人员感到迷惑。 此处简要介绍在使能了 UserID 功能之后,在不同条件下的启动流程。

场景1: 开发过程,独立供电

条件

状态

UserID 分区是否锁定

USB0 是否连接到 PC

AiBurnID 工具是否在等待状态

/

../../../_images/boot_flow_11.png

场景2: 开发过程,USB 连接电脑供电

条件

状态

UserID 分区是否锁定

USB0 是否连接到 PC

AiBurnID 工具是否在等待状态

../../../_images/boot_flow_21.png

场景3: 量产过程,烧录 UserID

条件

状态

UserID 分区是否锁定

USB0 是否连接到 PC

AiBurnID 工具是否在等待状态

../../../_images/boot_flow_3.png

场景4: 量产完成,UserID 锁定

条件

状态

UserID 分区是否锁定

USB0 是否连接到 PC

/

AiBurnID 工具是否在等待状态

/

../../../_images/boot_flow_4.png