![](https://csdnimg.cn/release/download_crawler_static/86326360/bg7.jpg)
文档密级:秘密
2
总体烧写流程
• 根据 spinand device datasheet 中的块页信息确定 boot0, uboot,secure storage block
及预留物理区大小和可用逻辑区大小。
/* small nand:block size < 1MB; reserve 4M for uboot */
if (blksize <= SZ_128K) {
_start = UBOOT_START_BLOCK_SMALLNAND;
_end = _start + 32;
} else if (blksize <= SZ_256K) {
_start = UBOOT_START_BLOCK_SMALLNAND;
_end = _start + 16;
} else if (blksize <= SZ_512K) {
_start = UBOOT_START_BLOCK_SMALLNAND;
_end = _start + 8;
} else if (blksize <= SZ_1M && pagecnt <= 128) { //1M
_start = UBOOT_START_BLOCK_SMALLNAND;
_end = _start + 4;
/* big nand; reserve at least 20M for uboot */
} else if (blksize <= SZ_1M && pagecnt > 128) {
_start = UBOOT_START_BLOCK_BIGNAND;
_end = _start + 20;
} else if (blksize <= SZ_2M) {
_start = UBOOT_START_BLOCK_BIGNAND;
_end = _start + 10;
} else {
_start = UBOOT_START_BLOCK_BIGNAND;
_end = _start + 8;
}
if (CONFIG_AW_MTD_SPINAND_UBOOT_BLKS > 0)
_end = _start + CONFIG_AW_MTD_SPINAND_UBOOT_BLKS;
• 根据 uboot_start、uboot_end 生成的 mbr, partition 信息
• 获得逻辑区起始 block 地址后,扫描出厂坏块(factory bad block),出厂坏块以逻辑块为
单位
• 根据出厂坏块信息和分区表信息确定最后一个 UDISK 分区大小。
• 写 GPT 分区表和各个分区
1. 每个逻辑页的 oob 区域格式见 6 oob 结构
2. 每个逻辑块的尾页存放逻辑页和物理页的映射信息,其 data 区和 oob 区格式见 6 oob 结构
和 7 mapping page
• 写 uboot, 见 3
• 写 boot0, 见 4
版权所有 © 珠海全志科技股份有限公司。保留一切权利 2