全志A33启动方式
全志A33芯片支持NAND/Nor Flash,SD card,USB四种启动方式

- 原理:芯片上电后,内部 BootROM(固化在芯片中的最小启动程序)会尝试访问 NAND Flash,从中读取 Boot0(一级启动程序)加载到内部 SRAM 并执行。
- Boot0 的作用:初始化 DRAM,并加载 Boot1(如 U-Boot)到 DRAM。
- 缺点:NAND Flash 不可随机读取,需要 ECC 和 FTL 管理,启动过程较复杂。
那么什么是 ECC 和 FTL 呢?
首先是ECC
- ECC(Error Correction Code)纠错码,用于检测和纠正 NAND Flash 存储过程中出现的位错误(bit error)
因为NAND Flash 可靠性相对较低,经过多次擦写后,容易出现位翻转(bit-flip)。
特别是 MLC、TLC 类型的 NAND Flash,出错概率更高。
工作原理:写入数据时,会同时写入一个 ECC 校验,读取数据时,用 ECC 校验是否有错误并进行纠正。
常见的ECC类型:
BCH RS LDPC
ECC 通常存储在 OOB 区(Out-Of-Band 区),即 NAND Flash 的每一页数据旁边的一小块区域。
FTL
- 屏蔽 NAND Flash 的物理擦写机制和坏块管理,为上层提供像块设备一样的访问方式(比如像磁盘一样顺序读写)。
- Linux 中由 MTD + UBI + UBIFS 提供支持。
2.NOR Flash 启动
- 原理:芯片从 NOR Flash 直接取指令执行(XIP:eXecute In Place),即 BootROM 直接从 NOR 读取并执行 Boot0。
- 优点:访问简单,启动快,适合做安全引导。
- 缺点:容量小。
3.SD 卡启动
这个就是一种非常常见的启动方式了
- 原理:芯片上电后尝试从 SD 卡(或 eMMC)中读取 Boot0,如果存在合法的启动分区(如全志的 FES 格式或 FAT/EXT 文件系统中的 boot 文件),则加载执行。
- 优点:开发调试方便,可热插拔。不依赖板载存储,易于更新系统。
- 缺点:插拔稳定性差,不适合量产产品长期运行。
4.USB 启动(FEL 模式)
原理:如果前几种介质都未能启动成功,或者按下某个启动键进入“USB启动/FEL模式”,芯片进入 USB FEL 模式,等待通过 USB 口接入主机(如 PC)下载并运行启动程序。
FEL 是全志芯片特有的一种 USB 下载协议(类似串口烧录)。
优点:无需板载存储即可烧录/启动系统。
缺点:启动速度慢,依赖外部工具。
解释一下什么是FEL模式
FEL(Firmware Easy Loader)模式 是全志芯片的 USB 下载启动模式,当没有有效的启动介质时(或者人为触发)进入。
全志芯片上电后,从 BootROM 尝试启动 NAND、eMMC、SD 等存储介质,如果没有发现有效的 Boot0,会自动进入 FEL 模式(或通过按键强制进入),芯片在 USB 接口上枚举为一个特殊设备(全志的 USB Vendor ID 和 Product ID)主机(通常是电脑)通过 sunxi-fel 工具向芯片 RAM 下载并执行程序。
全志A33启动方式
http://example.com/2025/05/11/全志A33的启动方式/