SSD_SPINAND母片制作
1. Spinand母片制作方法¶
先到tool目录下载相关工具
V011更新说明:
V011默认打开双ENV备份功能,这种情况下制作母片使用的SstarMakeBin和之前不同。
- 
SstarMakeBin:非双ENV版本使用 
- 
SstarMakeBin_dual_env:双ENV版本使用 
1.1. 基本文件¶
- 
可执行程序 SstarMakeBin 
- 
初始化文件SPINAND.INI(spinand) SPINAND.INI中的nandid需要根据实际flash的datasheet来填写, image_directory为对应需要打包的image路径: 
- 
烧录器的配置文件 leap.def & snchk.def(leap烧录器用leap.def,其他烧录器一般用snchk.def)用来制作母片的image文件以及对应的烧录脚本,统一放在images文件夹下: images文件夹是从 project\image\output\images下面的images拷贝过来的
- 
配置分区和image路径的脚本 auto_update_spinand.txt需要注意的是 auto_update_spinand.txt下面dynpart这行的分区信息需要跟uboot下面的mtdparts保持一致: 
- 
需要注意的是,ubi文件格式需要额外的空间来存ubi的信息,所以ubi分区不能全部用完,需要预留如下大小的空间用来存放ubi信息: 常见的1G bit,2G bit,4G bit NAND的预留量算出来为9MB,17MB,34MB 不然在制作母片的时候会报如下peb不够的error:  Eg: 公版spinand 128M的flash,ubi分区总的大小903个block,需要预留的大小为>= 903*2*4k + 4*4k  所以在 project\image\configs\p3\spinand.ubifs.partition.dispcam.config中,ubi分区总的大小不能超过0X070E0000 - 903*2*4k + 4*4k 
- 
在制作母片前需要将 SpinandPackBinTool\images\boot下的sni与pni文件更名,原名为flash_list.sni更名为SPINANDINFO.sni;原名为partinfo.pni更名为PARTINFO.pni,如下: 此处的文件名与 SpinandPackBinTool\SPINAND.INI中的配置一致即可。 不然会报如下错误:  
1.2. 执行SstarMakeBin¶
执行SstarMakeBin生成nand.bin。
注意: 执行打包命令前更改SpinandPackBinTool\images\scripts_bin下部分文件,详细说明如下。
V011: scripts改为scripts_bin!
- 
注释 [[cis.es文件中以下两行 
- 
注释 [[set_partition.es文件中如下内容 然后在linux执行 ./SstarMakeBin -n SPINAND.INI生成nand.bin,这就是烧录程序,最后使用烧录器烧录。  
1.3. 制作母片出错检查¶
- 
如果是执行生成bin时有报错,先检查一下是否所执行的命令不支持,比如sd的升级脚本需要改为tftp的脚本形式 
- 
是否执行了一些save命令,重新保存了分区信息,导致分区信息与在auto_update_spinand.txt中指定的分区不一致 
- 
如果是烧录到板子上跑不起来,首先根据分区信息,检查生成的bin文件对应偏移地址处的文件信息是否正确,比如IPL的分区偏移为0x140000,则检查生成的bin文件地址0x140000位置处的文件内容是否为IPL文件的内容 
- 
检查烧录器烧录时oob区是否disable 
- 
用flash tool工具分别dump出板子上flash开始处、IPL分区偏移处、IPL_CUST分区偏移处、UBOOT分区偏移处、kernel分区偏移处的部分文件对比是否与烧录的bin文件一致 
2. Flash支持列表¶
目前已经支持的flash请参考SSD_Flash支持列表
3. 烧录器参考配置¶
烧录器参考如下配置(不同烧录器配置可能不同):
针对GD5F1GQ4UBYIG烧录器配置如下:

针对GD5F2GQ4UB9IG烧录器配置如下:

4. 母片制作配置¶
4.1. 应用产品信息¶
| CPU品牌/型号 | 软件系统 | 
|---|---|
| Sigmastar | Linux | 
4.2. 烧录数据文件(镜像文件)¶
| NO | 文件名 | 文件大小bytes | 对应芯片地址/或块编号 | 
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | |||
| … | |||
- 
镜像文件中是否包含Spare(OOB)数据: ☐ 有Spare(OOB)数据: ________字节 √ 无Spare(OOB)数据 
- 
坏块管理模式(是否有分区) ☐ 跳过方式: Skip IB √ 分区方式: Multiple Partitions (with skip IB) *** 需要提供分区表文件 
- 
是否使用On-chip ECC(仅带有片内ECC功能的Flash) ☐ 不使用On-chip ECC 最大允许错误位参数: _____(bits) / (bytes) *** 镜像文件中必须包含Spare(OOB)数据 √ 使用On-chip ECC 
- 
坏块标记 标记位置(地址): 800h 坏块标记数据: 00h 
分区信息配置参考制作母片动态生成的snchk.def文件,使用二进制打开这个文件格式如下:

每一行是一个分区,每四个字节是一个数据,14个字节表示的是startblock,58表示lastblock,9~12表示usedblock,需要注意的是def格式是大端存储的。