summaryrefslogtreecommitdiff
path: root/doc/board/intel/edison.rst
blob: 5a65673d1e06a06494145b88dc3bff3cb6aac5d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
.. 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