Boot Select

Boot Select Flow

关于boot select的software boot flow如下。

../../_images/boot_select_software_boot_flow.svg

Boot Source

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等),会有如下区分事项:

  1. 对于IOT应用,芯片没有内置FLASH时,只会从外部FLASH boot,FT直接烧写对应的boot int otp bits。

  2. 同时有内部和外部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的方式,预期会在下面两种方式中选择一种:

  1. 所有IC对应OTP bits默认FT P成从NOR boot,如果是芯片接的是nand flash就会进入loop,这时候可以和上面一样通过ROM code CMD去修改nor/nand选择重新boot。

  2. 没有内置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.

汇总

控制方式

选择内容

说明

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.