S3C2416的启动方式分为IROM、NAND、ONENAND/ROM三种模式,有的datasheet上只有IROM、ONENAND/ROM两种模式,如下图所示:
图1
图2
图2应该是早期三星的2416手册,图1为之后再次更新的,所以这里以图1为准;
其实我们经常用得到的启动模式大多分为两类,SD和NAND,SD启动属于IROM或者inand,所以OM[4]-OM[0]依次选择01000,OM[0]为时钟选择项,0为系统内部时钟,1为外部时钟。
如果是nand启动则需要根据nand的页大小、地址循环发送次数等去选择。
除了选择OM[4]-OM[0]之外,还需要配置GPC[7]-GPC[5]三个寄存器来选择系统启动引导模式,如下图所示:
此处如果为SD卡启动则配置GPC[7]-GPC[5]为000,如果为NAND启动模式则需要根据NAND的页大小、循环地址大小取相应的值,例如采用K1F9G08U0E芯片为NAND,其对页和地址循环描述如下表:
则一页的大小为2K,即2048,AddressCycle为4,所以GPC[7]-GPC[5]为100。
需要强调的是,不管是SD卡启动还是NAND启动,OM[4]-OM[0]和GPC[7]-GPC[5]都必须同时满足要求,一般只需要动这两方面的配置,软件代码部分不需要调整,然后CPU会自动根据配置要求选择读取SD里的数据还是NAND里的。