SSD202 Flash 分区

1 分区说明

本文示例使用SPI NAND flash器件

  • CIS:
    SPI-NAND 独有的分区,保存在 flash 的 0 地址的位置,它包含两部分内容:
    一部分是 spinand info,保存 spinand 器件的一些基本信息
    一部分是 partinifo,保存的分区信息

  • IPL:
    CPU启动加载ROM里的启动代码,加载FLASH的0地址代码,获取本分区代码并运行。
    本分区代码初始化一些基础的硬件,例如设定当前 DDR 参数,以及 GPIO/IIC 相关等。

  • IPL_CUS:
    根据当前板子的实际情况初始化客制化板子硬件,例如GPIO,IIC 等。

  • UBOOT:
    如题所示。

  • ENV:
    UBOOT 的环境变量存放分区。

  • LOGO:
    开机 logo 相关的配置和数据。

  • KERNEL:
    如题所示。

  • ROOTFS:
    如题所示。

  • miservice:
    存储 mi 的库; 内存、屏幕等一些配置。
    具体可参考https://blog.csdn.net/winner0911/article/details/124174631 的 miservice分区建立过程

  • appconfigs
    客户自己定制的应用配置。

  • customer:
    客户自己定制的应用。

2 分区变更制作步骤

依据工程定义 spinand.glibc.011a.128 文件:
IMAGE_CONFIG = spinand.ubifs.p2.partition.config
依据 spinand.ubifs.p2.partition.config 文件
IMAGE_LIST = cis ipl ipl_cust uboot logo kernel rootfs miservice customer appconfigs
这些是在制作工程image时images/image.mk 会依据该列表生成二进制bin文件。

分区信息:
customer$(RESOUCE) = KaTeX parse error: Expected 'EOF', got '#' at position 24: …IR)/customer #̲ 文件夹目录 customer(FSTYPE) = ubifs # 分区文件系统
customerKaTeX parse error: Expected 'EOF', got '#' at position 28: …= 0xA00000 #̲ 存储位置 customer(MOUNTTG) = /customer # 系统的mount目标
customerKaTeX parse error: Expected 'EOF', got '#' at position 31: …i0:customer #̲ 系统的mount源 cu…(OPTIONS) = rw # 分区读写权限
customer$(OTABLK) = /dev/ubi0_2 # 分区的设备节点

修改对应的分区大小

opt/project/image/makefiletools/bin/pnigenerator -s 64 -p 2048 -b 64 -k 1024 -u 8 -l 0x20000 -t “0x140000(CIS),0x20000@0x140000(IPL0)2,0x20000(IPL1)2,0x20000(IPL_CUST0)2,0x20000(IPL_CUST1)2,0x40000(UBOOT0)4,0x40000(UBOOT1)4,0x20000(ENV0)1,0x20000(ENV1)1,0x280000(KERNEL)2,0x280000(RECOVERY)2,0x00f40000(rootfs)2,0x00f40000(rootfs_bak)2” -y “0x20000(KEY_CUST),0x400000(miservice),0x60000(LOGO),-(UBI)” -o /opt/project/image/output/images/boot/PARTINFO.pni
BOOT: 0x140000(CIS),0x20000@0x140000(IPL0)2,0x20000(IPL1)2,0x20000(IPL_CUST0)2,0x20000(IPL_CUST1)2,0x40000(UBOOT0)4,0x40000(UBOOT1)4,0x20000(ENV0)1,0x20000(ENV1)1,0x280000(KERNEL)2,0x280000(RECOVERY)2,0x00f40000(rootfs)2,0x00f40000(rootfs_bak)2
SYS: 0x20000(KEY_CUST),0x400000(miservice),0x60000(LOGO),-(UBI)
FLASH HAS USED 0x8000000KB
ChkSum : 2103
SpareByteCnt : 64
PageByteCnt : 2048
BlkPageCnt : 64
BlkCnt : 1024
PartCnt : 17
UnitByteCnt : 8
Checksum ok!!
IDX: StartBlk: BlkCnt: BackupBlkCnt: PartType:
0: 0,(0000000000) 10,(0X00140000) 0,(0000000000) 0X0020,(CIS)
1: 10,(0X00140000) 1,(0X00020000) 2,(0X00040000) 0X0003,(IPL0)
2: 13,(0X001A0000) 1,(0X00020000) 2,(0X00040000) 0X0003,(IPL1)
3: 16,(0X00200000) 1,(0X00020000) 2,(0X00040000) 0X0001,(IPL_CUST0)
4: 19,(0X00260000) 1,(0X00020000) 2,(0X00040000) 0X0001,(IPL_CUST1)
5: 22,(0X002C0000) 2,(0X00040000) 4,(0X00080000) 0X0006,(UBOOT0)
6: 28,(0X00380000) 2,(0X00040000) 4,(0X00080000) 0X0006,(UBOOT1)
7: 34,(0X00440000) 1,(0X00020000) 1,(0X00020000) 0X000D,(ENV0)
8: 36,(0X00480000) 1,(0X00020000) 1,(0X00020000) 0X000D,(ENV1)
9: 38,(0X004C0000) 20,(0X00280000) 2,(0X00040000) 0X0012,(KERNEL)
10: 60,(0X00780000) 20,(0X00280000) 2,(0X00040000) 0X0009,(RECOVERY)
11: 82,(0X00A40000) 122,(0X00F40000) 2,(0X00040000) 0X000F,(rootfs)
12: 206,(0X019C0000) 122,(0X00F40000) 2,(0X00040000) 0X001F,(rootfs_bak)
13: 330,(0X02940000) 1,(0X00020000) 0,(0000000000) 0X0040,(KEY_CUST)
14: 331,(0X02960000) 32,(0X00400000) 0,(0000000000) 0XF000,(miservice)
15: 363,(0X02D60000) 3,(0X00060000) 0,(0000000000) 0X0002,(LOGO)
16: 366,(0X02DC0000) 658,(0X05240000) 0,(0000000000) 0X0021,(UBI)

3 分区系统显示

/ # cat /proc/mtd
dev: size erasesize name
mtd0: 00060000 00020000 “IPL0”
mtd1: 00060000 00020000 “IPL1”
mtd2: 00060000 00020000 “IPL_CUST0”
mtd3: 00060000 00020000 “IPL_CUST1”
mtd4: 000c0000 00020000 “UBOOT0”
mtd5: 000c0000 00020000 “UBOOT1”
mtd6: 00040000 00020000 “ENV”
mtd7: 00040000 00020000 “ENV1”
mtd8: 002c0000 00020000 “KERNEL”
mtd9: 002c0000 00020000 “RECOVERY”
mtd10: 00f80000 00020000 “rootfs”
mtd11: 00f80000 00020000 “rootfs_bak”
mtd12: 00020000 00020000 “KEY_CUST”
mtd13: 002a0000 00020000 “miservice”
mtd14: 00060000 00020000 “LOGO”
mtd15: 0d3a0000 00020000 “UBI”

4 新增加一个分区

在 IMAGE_CONFIG = spinand.ramfs-squashfs.p2.partition.config
文件里的 IMAGE_LIST加入本分区名字
添加该分区对应的配置参数,如类型,大小等。
系统在编译过程中会自动生成。

5 script_nand.mk生成uboot脚本

image/configs/i2m/script_nand.mk
记得需要检查该脚本文件的内容是否和需要的一致。
它会影响烧写和系统挂载。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值