Build Instructions for U-Boot as main bootloader¶
Simple you can build U-Boot and obtain u-boot.bin:
$ make edison_defconfig $ make all
Updating U-Boot on Edison¶
By default Intel Edison boards are shipped with preinstalled heavily patched U-Boot v2014.04. Though it supports DFU which we may be able to use.
Prepare u-boot.bin as described in chapter above. You still need one more step (if and only if you have original U-Boot), i.e. run the following command:
$ truncate -s %4096 u-boot.bin
Run your board and interrupt booting to U-Boot console. In the console call:
=> run do_force_flash_os
Wait for few seconds, it will prepare environment variable and runs DFU. Run DFU command from the host system:
$ dfu-util -v -d 8087:0a99 --alt u-boot0 -D u-boot.bin
Return to U-Boot console and following hint. i.e. push Ctrl+C, and reset the board:
Updating U-Boot using xFSTK¶
You can also update U-Boot using the xfstk-dldr-solo tool if you can build it. One way to do that is to follow the xFSTK instructions. In short, after you install all necessary dependencies and clone repository, it will look like this:
cd xFSTK export DISTRIBUTION_NAME=ubuntu20.04 export BUILD_VERSION=1.8.5 git checkout v$BUILD_VERSION ...
Once you have built it, you can copy xfstk-dldr-solo to /usr/local/bin and libboost_program_options.so.1.54.0 to /usr/lib/i386-linux-gnu/ and with luck it will work. You might find this drive helpful.
If it does, then you can download and unpack the Edison recovery image, install dfu-util, reset your board and flash U-Boot like this:
xfstk-dldr-solo --gpflags 0x80000007 \ --osimage u-boot-edison.img \ --fwdnx recover/edison_dnx_fwr.bin \ --fwimage recover/edison_ifwi-dbg-00.bin \ --osdnx recover/edison_dnx_osr.bin
This should show the following
XFSTK Downloader Solo 1.8.5 Copyright (c) 2015 Intel Corporation Build date and time: Aug 15 2020 15:07:13 .Intel SoC Device Detection Found Parsing Commandline.... Registering Status Callback.... .Initiating Download Process.... .......(lots of dots)........XFSTK-STATUS--Reconnecting to device - Attempt #1 .......(even more dots)......................
You have about 10 seconds after resetting the board to type the above command. If you want to check if the board is ready, type:
lsusb | egrep "8087|8086" Bus 001 Device 004: ID 8086:e005 Intel Corp.
If you see a device with the same ID as above, the board is waiting for your command.
After about 5 seconds you should see some console output from the board:
****************************** PSH KERNEL VERSION: b0182b2b WR: 20104000 ****************************** SCU IPC: 0x800000d0 0xfffce92c PSH miaHOB version: TNG.B0.VVBD.0000000c microkernel built 11:24:08 Feb 5 2015 ******* PSH loader ******* PCM page cache size = 192 KB Cache Constraint = 0 Pages Arming IPC driver .. Adding page store pool .. PagestoreAddr(IMR Start Address) = 0x04899000 pageStoreSize(IMR Size) = 0x00080000 *** Ready to receive application ***
After another 10 seconds the xFSTK tool completes and the board resets. About 10 seconds after that should see the above message again and then within a few seconds U-Boot should start on your board:
U-Boot 2020.10-rc3 (Sep 03 2020 - 18:44:28 -0600) CPU: Genuine Intel(R) CPU 4000 @ 500MHz DRAM: 980.6 MiB WDT: Started with servicing (60s timeout) MMC: mmc@ff3fc000: 0, mmc@ff3fa000: 1 Loading Environment from MMC... OK In: serial Out: serial Err: serial Saving Environment to MMC... Writing to redundant MMC(0)... OK Saving Environment to MMC... Writing to MMC(0)... OK Net: No ethernet found. Hit any key to stop autoboot: 0 Target:blank Partitioning using GPT Writing GPT: success! Saving Environment to MMC... Writing to redundant MMC(0)... OK Flashing already done... 5442816 bytes read in 238 ms (21.8 MiB/s) Valid Boot Flag Setup Size = 0x00003c00 Magic signature found Using boot protocol version 2.0c Linux kernel version 3.10.17-poky-edison+ (ferry@kalamata) #1 SMP PREEMPT Mon Jan 11 14:54:18 CET 2016 Building boot_params at 0x00090000 Loading bzImage at address 100000 (5427456 bytes) Magic signature found Kernel command line: "rootwait ..." Magic signature found Starting kernel ... ... Poky (Yocto Project Reference Distro) 1.7.2 edison ttyMFD2 edison login: