summaryrefslogtreecommitdiffstats
path: root/meta-isg/meta-valleyisland/README
blob: 8592626b437a1eb7235fda2d5907d84cd9832fd0 (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
This README file contains information on building the meta-valleyisland
BSP layer, and booting the images contained in the /binary directory.
Please see the corresponding sections below for details.

The Valley Island BSP consists of two versions:
1. 32-bit Valley Island
2. 64-bit Valley Island

The BSP is made specifically for Intel Atom E38XX Processor E38XX
Development Kit (formerly known as Valley Island). This BSP integrates
Intel Graphics for Linux driver as the integrated graphics.

Valley Island BSP is meant to support Valley Island Development
Kit, "Bayley Bay" CRB and "Bakersport" CRB.

Further information on the platforms supported by this BSP can be
found here:

  http://www.intel.com/content/www/us/en/intelligent-systems/bay-trail/atom-processor-e3800-family-overview.html

Information on all Intel® embedded platforms can be found here:

  http://www.intel.com/p/en_US/embedded/hwsw/hardware

Yocto Project Compatible
========================

This BSP is compatible with the Yocto Project as per the requirements
listed here:

  https://www.yoctoproject.org/webform/yocto-project-compatible-registration

Dependencies
============

This layer depends on:

  URI: git://git.openembedded.org/bitbake
  branch: master

  URI: git://git.openembedded.org/openembedded-core
  layers: meta
  branch: dylan

  URI: git://git.yoctoproject.org/meta-intel
  layers: intel
  branch: dylan

Patches
=======

Please submit any patches against this BSP to the Meta-Intel Yocto mailing list
(meta-intel@yoctoproject.org) and cc: the maintainer:

Maintainer: Chang, Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>

Please see the meta-isg/MAINTAINERS file for more details.

Table of Contents
=================

  I. Building the meta-valleyisland BSP layer
 II. Booting the images in /binary
III. Device Notes
     a. Boot Loader
     b. I/O drivers
     c. LPIO ACPI enumeration support
 IV. Known Issues
     a. I/O drivers


I. Building the meta-valleyisland BSP layer
===========================================

In order to build an image with BSP support for a given release, you
need to download the corresponding BSP tarball from the 'Board Support
Package (BSP) Downloads' page of the Yocto Project website.

Having that done, and assuming you have extracted the BSP tarball contents
at the top-level of your Yocto build tree, you can build a valleyisland
image by adding the location of the meta-valleyisland layer to
bblayers.conf, along with the meta-intel layer itself (to access
common metadata shared between BSPs) e.g.:

  yocto/meta-intel \
  yocto/meta-intel/meta-isg/meta-valleyisland \

To enable the 32-bit Valley Island layer, add the valleyisland-32 MACHINE to local.conf:

  MACHINE ?= "valleyisland-32"

To enable the 64-bit Valley Island layer, add the valleyisland-64 MACHINE to local.conf:

  MACHINE ?= "valleyisland-64"

Valley Island BSP supports LPSS Devices in PCI mode by default. To enable ACPI mode,
follow the steps below and remove the some lines from the kernel recipe:

  $ cd ~/poky/meta-intel/meta-isg/meta-valleyisland/recipes-kernel/linux/
  $ vi linux-yocto_3.8.bbappend

Remove "features/valleyisland-io/valleyisland-io-pci \" from KERNEL_FEATURES_valleyisland-32
and KERNEL_FEATURES_valleyisland-64:

    KERNEL_FEATURES_valleyisland-32 = "features/valleyisland-io/valleyisland-io \
  -				       features/valleyisland-io/valleyisland-io-pci.scc \
				      "
    KERNEL_FEATURES_valleyisland-64 = "features/valleyisland-io/valleyisland-io \
  -				       features/valleyisland-io/valleyisland-io-pci.scc \
				      "

The meta-valleyisland contains support for Intel High Definition Audio. However,
HD Audio driver is dependent on gstreamer plugins and ffmpeg plugins to work properly.
These plugins require additional license flags in order to be included in the build.

Add "commercial" in the LICENSE_FLAGS_WHITELIST in local.conf. For example:

  LICENSE_FLAGS_WHITELIST = "commercial"

You should then be able to build a valleyisland image as such:

  $ source oe-init-build-env
  $ bitbake core-image-sato

At the end of a successful build, you should have a live image that
you can boot from a USB flash drive (see instructions on how to do
that below, in the section 'Booting the images from /binary').

As an alternative to downloading the BSP tarball, you can also work
directly from the meta-intel git repository.  For each BSP in the
'meta-intel' repository, there are multiple branches, one
corresponding to each major release starting with 'laverne' (0.90), in
addition to the latest code which tracks the current master (note that
not all BSPs are present in every release).  Instead of extracting a
BSP tarball at the top level of your yocto build tree, you can
equivalently check out the appropriate branch from the meta-intel
repository at the same location.

II. Booting the images in /binary
=================================

This BSP contains (or builds) live images which must be converted to a
partitioned image format in order to boot them on the Valley Island
Development Kit, Bayley Bay CRB and Bakersport CRB.

You can deploy the hddimg image to a USB or SATA device. You will
need to know the device name on your host as well as the device name on
the target. Be careful with this step as using the wrong host device can
result in overwriting data on your host machine.

Under Linux, USB and SATA devices typically appears as /dev/sdb,
/dev/sdc, etc. Watching your system messages as you connect the device
will tell you exactly which device name is assigned to the device.
On the Valley Island platform, assuming only one storage device is
attached at boot, a USB or SATA device will be /dev/sda.

After inserting the boot media into your host machine and determining
your host and target device, create the image using the mkefidisk.sh
script, provided by poky under scripts/contrib/. Note that root
privileges are required. For example, using an USB device which appears
as /dev/sdc on the host:

$ sudo ./mkefidisk.sh /dev/sdc core-image-sato-valleyisland-32.hddimg /dev/sda

Follow the prompts on the screen to confirm the action.

Insert the device into the Valley Island platform and power on. This
should result in a system booted to the Sato graphical desktop.

The root password is empty on the Poky reference distribution images.


III. Device Notes
=================
a. Boot Loader
--------------
BIOS : Bayley Bay 072_011
EC   : KSC v3.10 for Bayley Bay/Bakersport CRB Fab3

Required settings in BIOS

  Turn off Secure-boot:
    Device Manager -> System Setup -> Boot -> Security Boot -> Disable

  Turn off LPE Audio Support:
    Device Manager -> System Setup -> South Cluster Configuration ->
    Audio Configuration -> LPE Audio Support -> Disable

Please use EFI mode for all boot medium types, i.e. USB disk and Hard Disk.
Setting in BIOS:

  Choose boot medium:
    Boot Manager -> EFI (Hard Drive/USB Device)

  Save settings:
    Boot Maintenance Manager -> Boot Options -> Change Boot Order ->
    Change the order -> Commmit Changes and Exit


b. I/O drivers
--------------
The I2C controller driver supports fast mode by default.
To enable standard mode, appends the arguments to kernel command line.

  "i2c-designware-pci.force_std_mode=1" (PCI mode)
  "i2c-designware-platform.force_std_mode=1" (ACPI mode)


c. LPIO ACPI enumeration support
--------------------------------
Required settings in BIOS

  Turn on ACPI mode
    Device Manager -> System Setup -> South Cluster Configuration ->
    LPSS & SCC Configuration -> LPSS & SCC Device Mode -> ACPI mode

Some LPSS devices are hidden in ACPI mode to support Windows. To enable
these devices, toggle the following in the BIOS Menu.

  Device Manager -> System Setup -> South Cluster Configuration -> Miscellaneous
  Configuration -> Unsupported LPSS Device and select "Unhide"


IV. Known Limitations
=====================
a. I/O drivers
--------------
HSUART:

When runninig PCI mode HSUART at baud rate 2M and above, you may observe
kernel message "serial8250: too much work for irq...". Most of the time it
won't disrupt the transfer and able to complete without data corruption.
However, occasionally your transfer may halt when that kernel message appear.
In this case, you would need to re-open the HSUART port.