Khadas Docs

Amazing Khadas, always amazes you!

User Tools

Site Tools


Sidebar

products:sbc:common:development:kbi

This is an old revision of the document!


KBI - Khadas Bootloader Instructions

Introduction

This page introduces about KBI. You will learn how to manage the status of Khadas SBC through KBI.

Khadas Bootloader Instructions(KBI) can be used to:

  • Manage the programmable MCU
  • Carry out low level hardware management
  • Let developers utilise all the features of Khadas SBCs.

This page takes VIM2 as an example.

Get help

To get started, make sure you have booted into U-Boot:

normal power off
boot wol: enable
Hit Enter or space or Ctrl+C key to stop autoboot -- :  0 
kvim2#

You can get help information by typing kbi:

kvim2# kbi
kbi - Khadas Bootloader Instructions sub-system
 
Usage:
kbi [function] [mode] [write|read] <value>
 
kbi version - read version information
kbi usid - read usid information
kbi adc - read adc value
kbi powerstate - read power on state
kbi poweroff - power off device
kbi ethmac - read ethernet mac address
 
kbi led [systemoff|systemon] w <off|on|breathe|heartbeat> - set blue led mode
kbi led [systemoff|systemon] r - read blue led mode
 
kbi bootmode w <emmc|spi> - set bootmode to emmc or spi
kbi bootmode r - read current bootmode
 
kbi trigger [wol|rtc|ir|dcin|key|gpio] w <0|1> - disable/enable boot trigger
kbi trigger [wol|rtc|ir|dcin|key|gpio] r - read mode of a boot trigger

KBI Command

MCU Verison

Get the MCU firmware version:

kvim2# kbi version
version: 03

Initialize

Initialize the KBI:

kvim2# kbi init

Serial number

Get the device serial number:

kvim2# kbi usid
usid: 000000

ADC

Get ADC value:

kvim2# kbi adc
adc: 0x236

The ADC value can distinguish between hardware modules.

Power Off

Power off device:

kvim2# kbi poweroff

MAC Address

Get the Ethernet MAC address:

kvim2# kbi ethmac
mac address: 98:aa:fc:60:44:c0

LED Control

Setup the blue LED:

The blue LED has different working modes: Always Off, Always on, Breathe and Heartbeat. These indicate different VIM status-modes.

The MCU,in charge of system power management, controls the blue LED. The CPU controls the white LED. In this case, the blue LED still work even VIM2 was powered off.

The KBI can be used to program the blue LED for two different status-modes:

  • system off / idle: power off status, the CPU is powered down.
  • system on / working: power on status, the CPU is in working mode.

Examples:

To check the blue LED’s setting for system off / idle status:

kvim2# kbi led systemoff r
led mode: breathe  [systemoff]

To check the blue LED’s setting for system on / working status:

kvim2# kbi led systemon r
led mode: off  [systemon]

The terminal printout above says that the blue LED is to remain Always off when you power on the VIM2. You could instead change it to the breathe mode:

kvim2# kbi led systemon w breathe

You can also change the setting for system on / working status:

kvim2# kbi led systemon w Heartbeat

Boot Mode

VIM2 comes with both SPI flash and eMMC Storage. The KBI can be used to setup one of them as the default boot media.

To set the default boot media as SPI flash:

kvim2# kbi bootmode w spi

To set the default boot media as eMMC storage:

kvim2# kbi bootmode w emmc

You can check the default boot media by running:

kvim2# kbi bootmode r
bootmode: emmc

Boot Trigger Events

VIM2 supports different events for triggering boot-up:

  • WOL: Wake on Lan
  • RTC: RTC timer
  • IR: IR remote controller
  • DCIN: Plug in the DC adapter
  • Key: Power Key/Button
  • GPIO: External GPIO events

This means that when your VIM2 is powered-off, any of the above events can trigger it to power-on; when that trigger event has been set to the enabled status.

Examples:

  • Get the status for a WOL trigger event:
    kvim2# kbi trigger wol r
    boot wol: disable
  • By default, WOL is disabled for the preinstalled ROM, you can enable it by writing a new value:
    kvim2# kbi trigger wol w 1
    set_wol: 1
  • Of course, for security reasons, you might want to disable the WOL:
    kvim2# kbi trigger wol w 0
    set_wol: 0

See Also

Last modified: 2022/08/09 23:51 by ruby