This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM335X Bootloader from NOR FLASH

Other Parts Discussed in Thread: AM3352

根据设计需求,系统需要利用GPMC模块挂载一个1M*16bit NOR FLASH,而且要求其能从NOR FLASH启动。
阅读相关文件得到以下信息和疑问:

1.请问AM3352从NOR FLASH 启动时,Technical Reference Manual配置地址线只有A0-A11(2K)见附图1,而系统上NOR FLASH有1M空间,是否遵守该说明?我有个假想:AM3352从NOR FLASH 启动时,是将NOR FLASH前2k的相关配置信息转移到SDRAM,从而完成AM3352正常启动;AM3352启动完成后就会从新配置GPMC相关寄存器,进而能访问整个NOR FLASH的程序空间,程序就在NOR FLASH中执行。请问这个理解是否有误?

2.Technical Reference Manual:Specifically, external logic is needed to isolate the upper address lines (A12–A27) of the NOR flash from the device pins and drive them low during boot.请问AM3352从NOR FLASH 启动时,是不是必须将GPMC的A12-A27(一般情况下A12-A27是与AD0-AD15复用的)拉低?如果不拉低,会产生什么样的后果?

3.AM335X在上电时,SYSBOOT Pins 在PWRONRSTn上升沿时候捕捉。SYSBOOT 相关pins是ROM code执行后配置内部上下拉,还是必须由外部的电阻进行上下拉?

4.根据Technical Reference Manual上的参考框图,gpmc_advn_ale连接到NOR FLASH 相应的引脚(见附图1),但我使用的NOR FLASH没有地址锁存pin,请问gpmc_advn_ale不连接NOR FLASH是否影响AM3352从NOR FLASH启动?

  • 请参考 http://www.ti.com/tool/tmdxice3359#technicaldocuments

  • 谢谢,我开发的项目不使用LCD模块,刚好pin mux为GPMC的A[0:19],刚好满足要求。心中还有一个疑惑:TRM上介绍Pins Used for NOR Boot,只是罗列了GPMC A0-A11,我想确认NOR Boot是不是在启动时只需要用到GPMC A0-A11,二次bootloader完成后才对整个NOR FLASH程序进行执行?

  • 通过AM335x TRM的table 26-10可以了解到,sysboot[8]用来控制启动时Nor flash的位宽,sysboot[11:10]用来控制Nor Flash启动时GPMC工作在non-mux还是mux模式,这两种模式其实对应的是table 7-5中所描述的。 那么如果sysboot[11:10]设为1:0,即为mux模式,通过table 7-5可以了解到,GPMC A0-GPMC A11(ZCZ的R13-v17)是有有效输出的,但是输出的并不是A0-A11,而是A17-A27,A1-A16是通过AD0-AD15锁存得到的。 通过table 26-9可以了解到,对于Nor flash boot,mux模式又可分为mux1和mux2,可以由sysboot[4:0]选择,这两种方式的区别在于,mux1 把高地址A17-A27 (即A0-A11)active了,mux2没有把高地址active出来

  • 十分感谢!看资料没看仔细,不好意思,我还得问一个问题:我现在是1M*16bit的NOR FLASH,计划使用Non Multiplexed mode,所以现在是地址线要用[A1:A20],而LCD模块可以复用为A0:A19,请问AM3352AZCZD60这款芯片有没有内部地址移位?这样我就可以使用LCD模块进行复用为地址线就可以完成设计要求。利用A20引脚不仅占用了GPMC模块或者MMC模块,而且layout时走线不好控制延时。第二,SYSBOOT是复用LCD引脚,在芯片上电相关配置capture时,此时是不是需要外部逻辑进行配置这些引脚?我在TRM中“Set the booting device list based on the SW Booting Configuration or  SYSBOOT pins”这样的描述(见附图),是不是可以利用SW来代替SYSBOOT硬件pins配置?

  • Pin mux的问题还好解决。就是SYSBOOT是否能进行SW配置,而不依赖于外部pins?这个关系到成本,望TI工程师赐教!

  • sysboot pin目前只能通过外部上拉下拉确定,内部软件不能控制。

  • 我再想请教一个问题:在TRM中关于Fast External Booting有这样的描述“Addr/Data muxed device or a non-muxed (selected using SYSBOOT[11:10]) device in connected in XIP_MUX1 configuration”,是不是一定要使用XIP_MUX1配置?使用XIP_MUX2是不是就不能进行Fast External Booting?

  • 现在是问题越来越多,抱歉!上面这样写就应该是这样:GPMC 配置连接non-muxed 1M*16bit NOR FLASH需要A20,这个引脚与GPMC_A4和MMC_DATA3 引脚pin mux。GPMC_A4由于已经使用;MMC_DATA3需要外接接口!这样很被动!!

  • 最后问一个问题:如下图,TRM上描述“Specifically, external logic is needed to isolate the upper address lines (A12–A27) of the NOR flash from the device pins and drive them low during boot.”这个要求是在XIP_MUX1  mode 和XIP_MUX2 mode这样的进行ADD/DATA mux时的要求?还是non-muxed mode也要进行这样的逻辑配置?在此感谢Jian Zhou!多谢你的解答!

  • 这个是指ROM Code如果进入到Fast boot模式,它默认为XIP_MUX1配置,因为并没有哪个sysboot pin告诉rom code将GPMC配为XIP_MUX1还是XIP_MUX2。

    如果你想使用FAST boot,你的硬件电路要参考XIP_MUX1设计

  • 谢谢!我现在为了cost down,现在不使用muxed方式连接 NOR flash,而使用non-muxed方式NOR flash。我理解non-muxed方式连接NOR flash时,NOR flash BOOT期间A12-A17不需要拉低?

  • 我觉得高位地址是必须要拉低的,否则boot时读取的固件内容就会出错的。我以前调过dm8168,nor flash启动的时候高位地址没做控制,结果就是无法启动。

  •  如果GPMC配置成non mux,那么GPMC的A12-A27是否需要下拉?

    如果不按照你们的参考板Nor flash设计,而是把地址锁存器 74FCT163374AP等删掉,GPMC地址线直接连接到Nor flash 是否可以?

  • 当你选择从NOR FLASH启动时,配置好SYSBOOT PIN,ROM CODE会根据你的配置从地址0x08000000载入bootloader,但是实际上,在启动阶段只有A0~A11是有效的,A12以上都是被隔离的,所以理论上你的bootloader地址空间只有4K,然后,SYSBOOT PIN 会和GPMC的地址线复用,上电状态A12以上的地址线未必是0,所以,你得根据你的板子,算出ROM CODE认为的0x08000000地址实际上在你的板子上是哪个地址,然后,你把你的bootloader(小于4K)烧到这个地址,这样是可以正常启动的。

  • 非常感谢,

    我主要关心“上电状态A12以上的地址线未必是0”,GPMC在 no-muxed时 ,我不使用地址锁存器 74FCT163374AP,而是GPMC的A12以上地址直接与nor flash连接,并通过一个10K电阻接地,这样连接是否可以?这样连接能否保证bootloader运行前,A12以上的地址线为低?

  • 你好:

        我看到你写的帖子也是关于NORFLASH启动的,我做的项目也是做NORFLASH快速启动,但是我的u-boot.bin下载进去不能启动,由于刚接触这个所有有很多不太清楚的地方,特地想向你请教几个问题,方便问问你的QQ请教一下?谢谢!