Mainline u-boot for khadas sbc

mainline u-boot for Khadas VIM and Edge sbc series

VIMx (VIM1 VIM2 VIM3 VIM3L) + Edge mainline


  • universal series for VIM1 VIM2 VIM3 VIM3L Edge boards
  • mainline u-boot + patches
  • suitable for SPI - SD - MMC
  • spi flash - read / write / bootup
  • usb kbd
  • usb storages
  • HDMI output
  • HDMI 4K supported
  • EFI
  • embed LOGO splash - easy customize
  • extra commands like script kbi
  • boot seq SPI => USB => SD => NVME => MMC => PXE => DHCP
  • fully stand-alone
  • auto store uboot env to first fat partition uboot.env file to booted source


3 diff formats *.bin - raw image // *.aml.img - amlogic burn images // *.kresq - krescue images

BUILD from sources


git clone
source env/
make uboot


PS: uboot for edge boards will be shared some days later (still on testing and developing )


Awesome Work guys, Thanks @hyphop was waiting for this for quite some time now

@Spikerguy, maybe your beloved distro can now take also advantage of this uboot !?

1 Like

Only if it can work without the need of cleaning vendor uboot from the emmc.

So will have to try it first.

i fear that mainline uboot will not be for you because there will only be one uboot on the emmc : either vendor or mainline

this mainline uboot edition have special boot sequence

SPI => USB => SD => NVME => MMC => PXE => DHCP

if u write this u boot to emmc == u can start many OS and distros ( excluded android ) from any external and internal storages by boot sequence prio! without additional manipulation

same u can write this uboot to SD card with your distro
and start system fully from sd (without emmc clean )
by TST mode (tripple press F_KEY) / mask rom mode

  • VIM1 VIM2 Edge - OK
  • this method not work for VIM3 VIM3L (full boot from from sd only if emmc uboot was removed - )

PS: NVME support for mainline uboot not ready for amlogic but for rockhip will be soon (still testing )

another feature is easy custom boot logo


uboot LOGO, displayed after uboot activate display


+ MMC|SD /splash.bmp                    (1st partition)
+ MMC|SD /usr/share/fenix/logo/logo.bmp (2nd partition)


file splash.*
splash.bmp       PC bitmap, Windows 3.x format, 32 bit per pixel (bgra - pixel_format)
splash.bmp.gz    gzip compressed data, was "splash.bmp"

raw bmp and gzipped bmp must have same name splash.bmp or logo.bmp
and same .bmp extension (without .gz)


gzip -9c splash.raw.bmp > splash.bmp


file splash.bmp | grep gzip \
gzip -dc splash.bmp > splash.raw.bmp


very easy customize boot LOGO, logo-file is simple BMP file (or gzipped BMP)


@hyphop how do I Implement this in my Ubuntu OS build, I did the 3 commands you listed what to do after that ?

if it mainline ubuntu builded by fenix (this uboot series already integrated to fenix) its very easy

just create /boot/splash.bmp (1st partition)
or edit /usr/share/fenix/logo/logo.bmp (2nd partition )

No no, you got me Wrong i am talking about how to implement mainline uboot in the ubuntu OS what are the steps to implement mainline uboot in my build?

all info was provided in 1st topic :wink:

source , binaries, links , docs , manuals …
plz clarify what are u need … ?

I am trying to build a Ubuntu bionic server image for my VIM3, please tell me the steps I need to execute to build this OS, I have built a few OSes using fenix before, and i have already done the first three steps you have given,

what should be my next step ?
do I run, source env/
and set the same Environment and then run the “make” command ?

no need to make some special in fenix (this uboot already integrated)

just download or upgrade your fenix (sync with our repo before use it)

make configuration like this for example


and start make or make uboot

1 Like

Ok @hyphop thanks so much, what do I do to sync the Repo?

now to sync fenix pero

cd fenix
git pull

Thanks @hyphop will definitely do it and tell you my results :smile:

Good to hear this :slight_smile:

I can give this a try next weekend.

I’ve tried to install the VIMx.UBOOT.mainline.emmc.kresq image but it failed according to the screenshot attached. I’ve checked the downloaded image using the Krescue option.
Using VIM3/PRO.

plz update your krescue SD (download latest system )

PS: i will check tomorrow too maybe i forget update images :wink: