TI中文支持网
TI专业的中文技术问题搜集分享网站

AM4377 spi0 nor flash boot启动问题

您好!
第一次使用AM4377从spi0 flash启动的功能,遇到了一些问题麻烦帮看一下?
硬件环境使用第三方的开发板(核心板dts文件与TI开发板相同),使用自己外接4pin的spi0 nor flash;sysboot可以拨码设置为01001b从SPI启动或11001b从uart/mmc0起;
当前uboot编译使用sdk是2016.05+gitAUTOINC+6c5519b6fc_3.2.0.5,编译用的am43xx_evm_defconfig配置,生成spl和uboot在uart0和emmc模式可以启动正常;
在uboot后加载自己的BSP.bin,读写擦除spi0 flash功能也验证正常;
但在uboot菜单下sf probe扫描不到flash:

MYIR># sf probe 

Invalid bus 0 (err=-19)Failed to initialize SPI flash at 0:0 (error -19)

当前有几个问题不太确认,在E2E也没有找到相关的案例:
1.使用SPI0启动,需要向flash中写入哪几个文件?看到TI wiki的说明不太一样,是以第一个为准吗:
MLO.byteswap and u-boot.img files (processors.wiki.ti.com/…/Linux_Core_U-Boot_User's_Guide
MLO.spi and u-boot.bin files(processors.wiki.ti.com/…/AM335x_U-Boot_User's_Guide

2.在当前的uboot阶段想使用sf probe扫描到flash,是否需要修改boot编译选项重新编译?
或直接在bsp阶段写入支持flash启动的boot文件拨码到spi启动,这个启动boot是否需要修改选项重新编译?
1>在TI支持上看到335x的案例uboot需要使用am335x_evm_spiboot_config的配置,但4377没有类似的config;是否需要有CONFIG_SYS_EXTRA_OPTIONS="SPI_BOOT" 这样的配置才可以?
2>关于pinmux,默认的am437x-gp-evm.dts文件中SPI的管脚是不是没有配置?即默认不支持SPI访问?搜到spi的关键字只有以下几行:
i2c1_pins: i2c1_pins {
pinctrl-single,pins = <
0x15c (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* spi0_cs0.i2c1_scl */
0x158 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE2) /* spi0_d1.i2c1_sda */
>;
};
而335x的配置中有module_pin_mux spi0_pin_mux[];

3.MLO与uboot需要分别放到flash的什么地址?是否分别是0和0x20000?

谢谢!

yiping xiao:

最新测试现象: 默认配置编译的MLO.byteswap在bsp阶段通过函数写入flash 0地址,mlo启动正常了: U-Boot SPL 2018.03-00304-g4d20f09-dirty (Mar 13 2018 – 14:57:24) Trying to boot from unknown boot device SPL: Unsupported Boot Device! SPL: failed to boot from all boot devices ### ERROR ### Please RESET the board ### 已修改将uboot.img写到flash的0x80000,但uboot仍没有启动成功 (此地址定义为CONFIG_SYS_SPI_U_BOOT_OFFS但不清楚是哪个定义)

从 unknown boot device 看spl没有获取到启动dev为spi (从spl_boot_device函数获取的但不清楚是哪个分支)

赞(0)
未经允许不得转载:TI中文支持网 » AM4377 spi0 nor flash boot启动问题
分享到: 更多 (0)