Any information related to investigating the Intel Edison kernel, U-Boot, SoC hardware, ACPI, tools to build the image etc.
This page is about upgrading U-Boot on Intel Edison. The goal is to get Intel Edison supported by U-Boot out-of-the-box. We are anticipating Intel Edison support in v2017.09 out-of-the-box.
UPDATE
So, U-Boot v2017.09 is out. It supports Intel Edison out of the box. Thus, this page is kinda in a freeze state from now on. Use my Github page to report an issue, if any, or send any of your concerns directly to upstream.
The task I’m working on now is to bring ACPI support for Edison board. Minimum support is available starting from v2017.11-rc2.
I would like to announce I’m able to build and flash latest U-Boot (v2016.11) on Edison which allows me to boot x86_64 kernel directly! So, the links:
I have established tagging in repository. All working cases are tagged with edison prefix. As of today (Sep 19) U-Boot version bumped to v2017.09 (stable). Development version is based on v2017.09.
To build just run couple of simple commands:
$ make edison_defconfig
$ make -j16
Don’t pay attention on non-standard configuration option error. You will have u-boot.bin compiled anyway. Solved (Jan 21).
First you need to prepare an image to be suitable for DFU. There are few options available. You have to choose one suitable for your case. Most likely it will be Option 2.
Installed edison-v2017.03 (or later) or development version v2017.03-rc1 (or later). Installing edison-v2017.03 (or later) or development version v2017.03-rc1 (or later).
nothing special is required, there are patches that fixes alignment
Installed v2014.04 or edison-v2016.11, or edison-v2017.01. Installing edison-v2017.03 (or later) or development version v2017.03-rc1 (or later).
truncate -s %4096 u-boot.bin]
Installed v2014.04 or edison-v2016.11, or edison-v2017.01. Installing edison-v2016.11, or edison-v2017.01.
$ dd if=u-boot.bin of=u-boot-4k.bin bs=4k seek=1 && truncate -s %4096 u-boot-4k.bin && mv u-boot-4k.bin u-boot.bin
When you get a u-boot.bin run the following command to get the image you flash with DFU:
$ dfu-util -v -d 8087:0a99 --alt u-boot0 -D u-boot.bin
There is a script which allows to create a suitable U-Boot image for xFSTK and DFU including preset environment.
Feel free to use my GitHub page for pull requests (with bug fixes), bug reports, improvements, etc.
U-Boot 2017.03-rc2-00019-gb986ef9a09 (Feb 17 2017 - 17:59:07 +0300)
CPU: x86_64, vendor Intel, device 406a8h
DRAM: 980.6 MiB
MMC: mmc@ff3fc000: 0, mmc@ff3fa000: 1
In: serial@ff010180
Out: serial@ff010180
Err: serial@ff010180
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
=>
=> pci enum
=> dm tree
[Class Probed Name]{.T2}
----------------------------------------
[root [ + ] root_driver]{.T2}
[timer [ + ] |-- tsc-timer]{.T2}
[pci [ + ] |-- pci]{.T2}
[pci_generic [ ] | |-- pci_0:0.0]{.T2}
[pci_generic [ ] | `-- pci_0:2.0]{.T2}
[serial [ + ] |-- serial@ff010180]{.T2}
[mmc [ + ] |-- mmc@ff3fc000]{.T2}
[blk [ + ] | `-- mmc@ff3fc000.blk]{.T2}
[mmc [ + ] |-- mmc@ff3fa000]{.T2}
[blk [ ] | `-- mmc@ff3fa000.blk]{.T2}
[misc [ + ] |-- power@ff00b000]{.T2}
[simple_bus [ + ] `-- cpus]{.T2}
[cpu [ + ] |-- cpu@0]{.T2}
[cpu [ + ] `-- cpu@1]{.T2}
=> cpu list
[0: cpu@0 Intel(R) Atom(TM) CPU U1000 @ 500MHz]{.T2}
[1: cpu@1 Intel(R) Atom(TM) CPU U1000 @ 500MHz]{.T2}
=>
After boot I have checked the version of U-Boot:
U-Boot 2014.04 (Jun 06 2016 - 14:40:07)
Interrupted to get U-Boot shell and run:
boot > run do_force_flash_os
Saving Environment to MMC...
Writing to redundant MMC(0)... done
GADGET DRIVER: usb_dnl_dfu
Open a new terminal and run on the host:
$ make clean && make edison_defconfig && make -j16
$ truncate -s %4096 u-boot.bin
$ dfu-util -v -d 8087:0a99 --alt u-boot0 -D u-boot.bin
Again in U-Boot shell:
#
DFU complete CRC32: 0xf340088e
DOWNLOAD ... OK
Ctrl+C to exit ...
[boot > reset]{.T2}
resetting ...
******************************
PSH KERNEL VERSION: b0182b2b
[WR: 20104000]{.T2}
******************************
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 ***
U-Boot 2017.03-rc3-00012-ge6566cddc9 (Mar 01 2017 - 21:01:06 +0200)
CPU: x86_64, vendor Intel, device 406a8h
DRAM: 980.6 MiB
MMC: mmc@ff3fc000: 0, mmc@ff3fa000: 1
In: serial@ff010180
Out: serial@ff010180
Err: serial@ff010180
Net: Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot: 0
=>