Khadas VIM3以及VIM3L板载了一块存储空间为16MB的SPI-falsh芯片,可用于从SPI启动系统,这篇文档将说明如何从SPI启动。
编译可用于SPI启动的Uboot
从SPI启动的Uboot和从EMMC启动的Uboot,编译方法是一样的,通过fenix就可以轻松的编译出用于SPI启动的脚本。
这意味着你要有一个可以用于编译的fenix的环境.如果没有,请参照 fenix使用说明 搭建编译的环境
- 选择编译的环境
1 | cd fenix |
如果你的板子是VIM3,请选择VIM3选项,是VIM3L,请选择VIM3L
- 编译uboot
1 | make uboot |
如果编译成功了,你将会在fenix/u-boot/build
下找到一个可以烧录进SPI的Uboot固件uboot.bin
。
烧录uboot进SPI Flash
将上一步编译得到的uboot放进SD卡,u盘,或者通过TFTP直接加载进内存中。
设置串口工具 并且进入Uboot命令行
加载固件到DDR中
- 从SD卡加载的方式:
1 | load mmc 0 1080000 u-boot.bin |
- 从U盘加载的方式:
1 | usb start |
- 通过TFTP的方式:
设置TFTP的方法在如何设TFTP服务器的文档里有详细的说明。
1 | tftp 1080000 u-boot.bin |
烧录
1 | sf probe |
说明: 这一步需要一些时间,请耐心的等待
修改启动方式为SPI
如果你想要从SPI启动系统,首先需要将启动方式设置为SPI,默认的启动方式是从eMMC启动的。
- 确认当前的启动方式:
1 | kbi bootmode r |
当前启动方式为eMMC
- 设置为SPI启动:
1 | kbi bootmode w spi |
关机已使新设置的启动方式的参数生效:
1 | kbi poweroff |
此时,再次按下power按键,就会从SPI启动了
不再需要从SPI启动时清除SPI
1 | sf probe |