summaryrefslogtreecommitdiff
path: root/members/arm/platforms/README.textile
blob: d7632c592cbfa1dc89adfe5dc279e079fd6d4934 (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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
h1. ARM Development Platform Software

This page describes the monthly ARM landing team 15.06 software release for the ARM Juno and AEMv8-FVP Platforms

TABLE OF CONTENTS

"1. Preface":#preface

"2. Software":#sw

"2.1 Prerequisites":#pre

"2.2 Downloading the software and binaries":#down

"2.3 Downloading the filesystem binaries":#down-bins

"2.4 Building the software":#build

"2.5 Installing on your Juno":#install

"2.6 Running the FVP":#fvp

"2.7 Using prebuilt binaries":#prebuilt


h2(#preface). 1. Preface

The ARM software images contained in this released are distributed according to the "EULA":https://wiki.linaro.org/ARM/Juno/EULA

This release page describes how to download the source code and binaries, build the source code and install all the binaries on your platform. There are also links below to download Linaro prebuilt binaries.

For a description of the Juno hardware and how to get started with the platform see the "Juno Technical Overview":http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.subset.boards.express/index.html

For a description of ARM Fastmodels see "Modeling and ESL":http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.set.models/index.html

For any problems with your Juno system, fastmodel or this software please contact support@arm.com providing details of which release you are using.

h2(#sw). 2. Software

This release supports 3 different software stacks which have been validated on the platforms. All include board firmware, System Power Controller firmware, ARM Trusted firmware and a choice of UEFI or u-boot loader. The options are:

* LSK - Linaro Stable Kernel (v3.10) + Android LCR
* LSK - Linaro Stable Kernel (v3.10) + OpenEmbedded Filesystem
* LSK - Linaro Stable Kernel (v3.10) + BusyBox Filesystem
* Linaro Tracking Kernel (latest) + OpenEmbedded Filesystem
* Linaro Tracking Kernel (latest) + BusyBox Filesystem

For each option the instructions here use 15.06 release prebuilt binaries for the Android or OpenEmbedded filesystems. Standard Linaro instructions can be used to rebuild the filesystem yourself.

h3(#pre). 2.1 Prerequisites

* To be run on an Ubuntu 14.04 LTS system

* Preinstall the following packages:
** acpica-tools
** bc
** bison
** build-essential
** curl
** flex
** g++-multilib
** gcc-multilib
** genext2fs
** git
** gperf
** iasl
** libc6:i386
** libstdc++6:i386,
** libncurses5:i386
** libxml2-utils
** make
** openjdk-7-jdk
** python
** python-mako
** uuid-dev
** wget
** zlib1g:i386
** zlib1g-dev:i386
** zip

* Install Linaro GCC (aarch64 little endian) from "here":http://releases.linaro.org/14.11/components/toolchain/binaries/aarch64-linux-gnu/gcc-linaro-4.9-2014.11-x86_64_aarch64-linux-gnu.tar.xz

* Install the 'Repo' tool as per "Installing Repo":https://source.android.com/source/downloading.html. Do not initialize the Repo client

* If necessary, also register for authenticated access by following the instructions in the "Using Authentication" section of "Installing Repo":https://source.android.com/source/downloading.html

* Configure Git's user.email and user.name attributes before using repo.

h3(#down). 2.2 Downloading the software sources

* Create a workspace directory and cd into it
* Use the repo tool to sync all the software GITs
For a LSK kernel:

bc. repo init -u https://git.linaro.org/landing-teams/working/arm/manifest -b 15.06 -m pinned-lsk.xml

For the latest tracking kernel:

bc. repo init -u https://git.linaro.org/landing-teams/working/arm/manifest -b 15.06 -m pinned-latest.xml

Then in both cases:

bc. repo sync -j8

h3(#down-bins). 2.3 Downloading the filesystem binaries

Ignore this section if you want to boot BusyBox

For Juno Android, download "juno.img.bz2":https://releases.linaro.org/15.06/android/reference-lcr/juno/juno.img.bz2 (accept the EULA to download)

For FVP Android, download "fvp.img.bz2":https://releases.linaro.org/15.06/android/reference-lcr/fvp/fvp.img.bz2

For any platform minimal OE, download "lt-vexpress64-openembedded_minimal-armv8-gcc-4.9_20150620-722.img.gz":https://releases.linaro.org/15.06/openembedded/juno-lsk/lt-vexpress64-openembedded_minimal-armv8-gcc-4.9_20150620-722.img.gz

For any platform LAMP OE, download "lt-vexpress64-openembedded_lamp-armv8-gcc-4.9_20150620-722.img.gz":https://releases.linaro.org/15.06/openembedded/juno-lsk/lt-vexpress64-openembedded_lamp-armv8-gcc-4.9_20150620-722.img.gz

Unpack the compressed image file.

For FVP copy the image to the root directory of your workspace.

For Juno insert a USB stick (minimum 4GB) into your system and run:

bc. sudo dd if=<downloaded file>.img of=/dev/sd<x>

(where @<x>@ is the letter corresponding to the USB stick)

For Juno Android, download "ramdisk.img":https://releases.linaro.org/15.06/android/reference-lcr/juno/ramdisk.img or
for FVP Android, download "ramdisk.img":https://releases.linaro.org/15.06/android/reference-lcr/fvp/ramdisk.img
and copy to the root directory of your workspace.

h3(#build). 2.4 Building the software

* First decide how you wish to specify your cross compiler:
** Add the @CROSS_COMPILE=<path-and-prefix>@ prefix to all build script invocations.
** Edit @<workspace>/build-scripts/variants@ files to make CROSS_COMPILE point at the path and prefix to where you installed Linaro GCC.
** note: you may specify the prefix without a path if the compiler is on your path.

* From the root directory of your workspace execute the following commands to build the software components and package them into an output folder:

h4. Juno

* For LSK - Linaro Stable Kernel (v3.10) + Android LCR

bc. ./build-scripts/build-all.sh juno-android
./build-scripts/build-all.sh juno-android package

* For LSK - Linaro Stable Kernel (v3.10) + OpenEmbedded Filesystem OR
* For Linaro Tracking Kernel (latest) + OpenEmbedded Filesystem

bc. ./build-scripts/build-all.sh juno-oe
./build-scripts/build-all.sh juno-oe package

* For LSK - Linaro Stable Kernel (v3.10) + BusyBox Filesystem OR
* For Linaro Tracking Kernel (latest) + BusyBox Filesystem

bc. ./build-scripts/build-all.sh juno-busybox
./build-scripts/build-all.sh juno-busybox package

h4. FVP

* For LSK - Linaro Stable Kernel (v3.10) + Android LCR

bc. ./build-scripts/build-all.sh fvp-android
./build-scripts/build-all.sh fvp-android package

* For LSK - Linaro Stable Kernel (v3.10) + OpenEmbedded Filesystem OR
* For Linaro Tracking Kernel (latest) + OpenEmbedded Filesystem

bc. ./build-scripts/build-all.sh fvp-oe
./build-scripts/build-all.sh fvp-oe package

* For LSK - Linaro Stable Kernel (v3.10) + BusyBox Filesystem OR
* For Linaro Tracking Kernel (latest) + BusyBox Filesystem

bc. ./build-scripts/build-all.sh fvp-busybox
./build-scripts/build-all.sh fvp-busybox package

The build will create binaries for ARM Trusted Firmware, UEFI, u-boot, Linux, ramdisk and a DTB. The Firmware components will then be packaged into a FIP and all the binaries copied under the "output" folder.
Running a different build will overwrite derived objects in the source tree, but will not overwrite the output folder created by the package step.

h3(#install). 2.5 Installing on your Juno

* Mount the Juno flash device

Connect up the USB configuration port to your build system whereby the MMC which populates the NOR flash at boot will be mounted as a new drive.

* Ensure your Juno system binaries are up to date

From your workspace recovery folder copy all of:
SOFTWARE, SITE1, MB and config.txt overwriting the files that were already there on the mounted drive.

* Copy the binaries you have built to your Juno

For UEFI copy the contents of @output/<variant>/uefi@ to the SOFTWARE folder
For u-boot copy the contents of @output/<variant>/uboot@ to the SOFTWARE folder
Where @<variant>@ is the argument to build-all.sh above - eg: juno-android

* For Android or OpenEmbedded Insert the USB stick created above into your Juno (not needed for BusyBox)

Power cycle your Juno and it will copy and run the new software images.

h3(#fvp). 2.6 Running the FVP

To run the FVP models, you must first set the following variables:

| *Variable* | *Usage* | *Example* |
| $MODEL | This sets the path and filename of the model executable | /usr/local/FVP_Base_AEMv8A-AEMv8A |
| $DISK | This sets the path and filename of the disk image.  Busybox variants don't need to set DISK, however both OE and Android variants will fail to boot without it.  You should download and unzip the disk image before running the model. | $USER/Downloads/fvp.img |

Then, from your workspace root directory, you launch the model, telling it the path of the variant you wish to boot.

First set the model variable

bc. export MODEL=/usr/local/FVP_Base_AEMv8A-AEMv8A

Example 1: Running a busybox uboot variant:

bc. ./model-scripts/run_model.sh output/fvp-busybox/uboot

Example 2: Running an Android uboot variant:

bc. export DISK=fvp.img
 ./model-scripts/run_model.sh output/fvp-android/uboot

Example 3: Running an OpenEmbedded UEFI variant:

bc. export DISK=lt-vexpress64-openembedded_minimal-armv8-gcc-4.9_20150620-722.img
./model-scripts/run_model.sh output/fvp-oe/uefi


h3(#prebuilt). 2.7 Using prebuilt binaries

If you want to use prebuilt firmware and kernel binaries rather than download and build the software as described above, first, you should follow the instructions in "section 2.3":#down-bins and then download the prebuilt firmware images for the platform you wish to use.

The pre-built ZIP contains the following ZIP files for each supported configuration. For Juno the contents should be  copied to the SOFTWARE folder as described in section 2.5 and for FVP the contents should be copied to your workspace output folder (which you will need to create if you have not run a build).

Other variants are only available when built from source.  The current prebuilt binaries are targeted at Mobile, Enterprise and developer segments.

h4. Juno Prebuilt Binaries

Juno prebuilt binaries are available "here":https://wiki.linaro.org/ARM/Juno?action=AttachFile&do=get&target=juno-platforms.zip. These binaries contain the Juno recovery images and so can be used to restore a broken system.

| *Filename*                     | *Variant*    | *Kernel* | *Bootloader* |
| juno-lsk-android-uboot.zip     | Android      | LSK 3.10 | U-Boot       |
| juno-latest-oe-uefi.zip        | OpenEmbedded | latest   | UEFI         |
| juno-latest-busybox-uboot.zip  | BusyBox      | latest   | U-Boot       |

h4. FVP Prebuilt Binaries

FVP prebuilt binaries are available "here":https://wiki.linaro.org/ARM/Juno?action=AttachFile&do=get&target=fvp-platforms.zip

| *Filename*                     | *Variant*    | *Kernel* | *Bootloader* |
| fvp-lsk-android-uboot.zip      | Android      | LSK 3.10 | U-Boot       |
| fvp-latest-oe-uefi.zip         | OpenEmbedded | latest   | UEFI         |
| fvp-latest-busybox-uboot.zip   | BusyBox      | latest   | U-Boot       |