| .. SPDX-License-Identifier: GPL-2.0+ |
| .. sectionauthor:: Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
| |
| Edison |
| ====== |
| |
| 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. |
| |
| 1. 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 |
| |
| 2. Run your board and interrupt booting to U-Boot console. In the console |
| call:: |
| |
| => run do_force_flash_os |
| |
| 3. 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 |
| |
| 4. Return to U-Boot console and following hint. i.e. push Ctrl+C, and |
| reset the board:: |
| |
| => reset |
| |
| 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: |
| |
| .. code-block:: sh |
| |
| 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: |
| |
| .. code-block:: sh |
| |
| 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 |
| |
| .. code-block:: none |
| |
| 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: |
| |
| .. code-block:: none |
| |
| 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: |
| |
| .. code-block:: none |
| |
| ****************************** |
| 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: |
| |
| .. code-block:: none |
| |
| 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: |
| |
| .. _xFSTK: https://github.com/edison-fw/xFSTK |
| .. _drive: https://drive.google.com/drive/u/0/folders/1URPHrOk9-UBsh8hjv-7WwC0W6Fy61uAJ |