Boot Select
Boot Select Flow
关于boot select的software boot flow如下。
Boot Source
NA.
NA.
NA.
NA.
NA.
Boot from Internal/External FLASH
Internal flash
External flash
因为我们有两个SPIC(SPIC0-flash only,SPIC1-flash&psram共用),都可以接flash,但是系统只会从SPIC0连接的FLASH boot。
其中pinmux上两个SPIC 和flash device的对应关系可以通过软件来配置。对于挂两个flash的场景中,如果内部一颗flash, 外部一颗flash。 两个flash density可能会不同。客户希望选择从不同density的flash boot。
该配置一共有两个控制,trap pin or OTP。 trap pin的优势是不需要boot起来,在产线通过探针就可以做到选择。OTP的优势是在产品阶段,不会收到干扰。
具体boot from internal/external FLASH细节可以参考SPIC spec
对于不同的芯片(有无内部FLASH等),会有如下区分事项:
对于IOT应用,芯片没有内置FLASH时,只会从外部FLASH boot,FT直接烧写对应的boot int otp bits。
同时有内部和外部FLASH时候,默认FT烧写otp bits从内部boot。如果客户需要从外部FLASH boot,客户产线会在内部FLASH boot时进入loop。此时可以通过通过rom code CMD 强制修改boot int pin trap到的reg里面的值为期望值,然后再reboot一次(不会reset这里reg的值),完成默认boot flash的选择修改。之后boot进入客户预期的FLASH中,在对应的image中,会对otp boot int的bit进行改写,这样之后再boot时就可以默认通过客户预期的flash位置boot。
OTP
OTP bits含义:
Offset 00h, bits [7:6]
0/3: determined by power-on latch
1: boot from internal FLASH
2: boot from external FLASH
Trap pin
该Trap pin名称为:BOOT_INT,对应IO是PB17,该pin仅在QFN48及更大封装上会出pin,QFN40上此IO不出pin。
Trap pin的trap状态及对应含义为:
0: boot from external FLASH
1: boot from internal FLASH
Boot from NOR/NAND FLASH
Nor Flash
Nand Flash
该配置一共有两个控制,trap pin or efuse。 trap pin的优势是不需要boot起来,在产线通过探针就可以做到选择。Efuse的优势是在产品阶段,不会收到干扰。
BOOT from NOR/NAND的方式,预期会在下面两种方式中选择一种:
所有IC对应OTP bits默认FT P成从NOR boot,如果是芯片接的是nand flash就会进入loop,这时候可以和上面一样通过ROM code CMD去修改nor/nand选择重新boot。
没有内置PSRAM的IC都在FT以OTP烧成默认从NOR boot。其余的IC不烧,交由客户去选择。
OTP
OTP bits含义:
Offset 02h, bits [7:6]
0/3: determined by power-on latch
1: boot from NOR FLASH
2: boot from NAND FLASH
Trap pin
该Trap pin名称为:BOOT_NOR,对应IO是PB18,该pin仅在QFN48及更大封装上会出pin,QFN40上此IO不出pin。
Trap pin的trap状态及对应含义为:
0: boot from NAND FLASH
1: boot from NOR FLASH
支持的其他 Boot 配置
NA.
NA.
NA.
NA.
NA.
汇总
控制方式 |
选择内容 |
说明 |
|---|---|---|
logical efuse |
Boot interface:SDIO, USB or Flash |
在test mode 不看该efuse 内容 |
Trap pin & efuse |
Boot location: internal flash or external flash |
在test mode 不看该efuse 内容 在非test mode 下(): Efuse 内容优先级大于 power on latch 内容,efuse 没有PG才看power on latch pin |
Trap pin & efuse |
Flash type: Nand or Nor flash |
在test mode 不看该efuse 内容 在非test mode 下(): Efuse 内容优先级大于 power on latch 内容,efuse 没有PG才看power on latch pin |
Efuse |
Nor flash density |
默认32MB一下,PG 后大于等于32MB |
Efuse |
Nand flash page size |
默认auto detect,PG 后force成4K page |
Test mode
Test mode 因为只有厂内使用,客户端不会使用。因此主要考虑灵活性。能够使用trap pin确定的方式,应该优先使用trap pin选择。而这点恰巧和客户端使用相反,客户端因为设计固定以后,希望做到能够不受trap pin 影响,因此客户端使用场景是efuse 优先级大于trap pin。
基于以上考量,boot location以及boot flash type在test mode下,会优先使用power on trap。而在normal mode下则优先使用efuse。
因为我们是IOT产品,boot from flash对于我们test mode来说最为方便,因此boot interface在test mode下会忽略efuse中的内容,而采用boot from flash(默认选项)。
注:这里所指的test mode特殊处理,是指ROM code中对于Boot flow的判定和选择。
boot pinmux 配置
NA.
NA.
NA.
NA.
NA.