KBI是”Khadas Bootloader Instructions”的缩写,主要用于以下几方面:
- 控制可编程MCU
- 管理底层硬件
- 让开发者体验VIM2/VIM3/Edge全部的特性
这篇文档介绍了如何配置使用KBI。 因为KBI是U-Boot 命令,所以必须先设置串口调试工具(VIM2/VIM3/Edge)。
注意:此文档以VIM2为例进行说明,VIM3和Edge都是差不多的用法。
在开始之前,确保先进入U-boot命令行模式:
1 | normal power off |
帮助信息
和其他U-boot命令一样,直接执行kbi
会给出帮助信息:
1 | kvim2# kbi |
使用方法
1) 获取MCU固件版本号:
1 | kvim2# kbi version |
2) 初始化KBI:
1 | kvim2# kbi init |
3) 获取设备usid:
1 | kvim2# kbi usid |
4) 获取ADC数值:
1 | kvim2# kbi adc |
ADC数值用于区分不同的Khadas开发板。
5) 给设备断电:
1 | kvim2# kbi poweroff |
6) 获取以太网MAC地址:
1 | kvim2# kbi ethmac |
7) 设置LED工作模式:
VIM2蓝色LED有不同的工作模式,如长灭
、长亮
、呼吸
和心跳
等来只是不同的状态。
VIM2 蓝色LED是由MCU来控制的,同时MCU还控制VIM2的总电源,而VIM2白色LED是由Amlogic CPU来控制的,所以蓝色LED会一直工作,即使你关闭了VIM2电源。
事实上,KBI能设置两种不同的蓝灯模式:
- 系统关闭/待机:断电状态,CPU断电。
- 系统运行/工作:上电状态,CPU工作。
示例:
查看系统关闭/待机时的蓝灯模式:
1 | kvim2# kbi led systemoff r |
查看系统运行/工作时的蓝灯模式:
1 | kvim2# kbi led systemon r |
上面显示当系统运行时蓝灯状态为长灭
,你可以改为呼吸灯
模式:
1 | kvim2# kbi led systemon w breathe |
同样的,对于系统关闭时的蓝灯状态,你也可以设置为别的模式,如下:
1 | kvim2# kbi led systemon w breathe |
8) 启动模式
VIM2配置有eMMC和SPI存储器,可以通过KBI设置从哪里启动系统。
设置默认从SPI Flash启动系统:
1 | kvim2# kbi bootmode w spi |
关于SPI FLASH启动请参考如何从SPI Flash启动(VIM2/VIM3/Edge) 。
设置默认从eMMC启动系统:
1 | kvim2# kbi bootmode w emmc |
查看当前启动模式:
1 | kvim2# kbi bootmode r |
9) 开机触发事件
VIM2支持不同的开机触发事件:
- WOL: 通过网络唤醒开机
- RTC: 通过RTC唤醒开机
- IR: 通过红外唤醒开机
- DCIN: 通过DC输入唤醒开机
- Key: 通过电源键唤醒开机
- GPIO: 通过外部GPIO唤醒开机
这意味着,当VIM2关机时,上述任意一个事件在使能的情况下可以触发VIM2开机。
示例:
获取WOL触发使能状态:
1 | kvim2# kbi trigger wol r |
出厂固件WOL是默认关闭的。你可以通过如下方式打开WOL触发:
1 | kvim2# kbi trigger wol w 1 |
当然,出于安全的角度考虑,你可能需要关闭WOL触发:
1 | kvim2# kbi trigger wol w 0 |