summaryrefslogtreecommitdiffstats
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README459
1 files changed, 0 insertions, 459 deletions
diff --git a/README b/README
deleted file mode 100644
index f377c67b..00000000
--- a/README
+++ /dev/null
@@ -1,459 +0,0 @@
1meta-intel
2==========
3
4This README file contains information on building and booting
5meta-intel BSP layers. Please see the corresponding sections below
6for details.
7
8
9Yocto Project Compatible
10========================
11
12The BSPs contained in this layer are compatible with the Yocto Project
13as per the requirements listed here:
14
15 https://www.yoctoproject.org/webform/yocto-project-compatible-registration
16
17
18Dependencies
19============
20
21This layer depends on:
22
23 URI: git://git.openembedded.org/bitbake
24
25 URI: git://git.openembedded.org/openembedded-core
26 layers: meta
27 branch: master
28
29
30Table of Contents
31=================
32
33 I. Overview
34 II. Building and booting meta-intel BSP layers
35 a. Building the intel-common BSP layers
36 b. Booting the intel-common BSP images
37 c. Building the installer image
38 III. Technical Miscellany
39 Benefits of using meta-intel
40 The intel-common kernel package architecture
41 Intel-specific machine features
42 IV. Tested Hardware
43 V. Guidelines for submitting patches
44
45
46I. Overview
47===========
48
49This is the location for Intel-maintained BSPs.
50
51For details on the intel-common, see the information below.
52
53For all others, please see the README files contained in the
54individual BSP layers for BSP-specific information.
55
56If you have problems with or questions about a particular BSP, please
57contact the maintainer listed in the MAINTAINERS file directly (cc:ing
58the Yocto mailing list puts it in the archive and helps other people
59who might have the same questions in the future), but please try to do
60the following first:
61
62 - look in the Yocto Project Bugzilla
63 (http://bugzilla.yoctoproject.org/) to see if a problem has
64 already been reported
65
66 - look through recent entries of the meta-intel
67 (https://lists.yoctoproject.org/pipermail/meta-intel/) and Yocto
68 (https://lists.yoctoproject.org/pipermail/yocto/) mailing list
69 archives to see if other people have run into similar problems or
70 had similar questions answered.
71
72If you believe you have encountered a bug, you can open a new bug and
73enter the details in the Yocto Project Bugzilla
74(http://bugzilla.yoctoproject.org/). If you're relatively certain
75that it's a bug against the BSP itself, please use the 'Yocto Project
76Components: BSPs | meta-intel' category for the bug; otherwise, please
77submit the bug against the most likely category for the problem - if
78you're wrong, it's not a big deal and the bug will be recategorized
79upon triage.
80
81
82II. Building and booting meta-intel BSP layers
83==============================================
84
85The following sections contain information on building and booting the
86BSPs contained in the meta-intel layer.
87
88Note that these instructions specifically cover the intel-common, which
89may or may not be applicable to other BSPs contained in this layer - if
90a given BSP contains its own README, that version should be used instead,
91and these instructions can be ignored.
92
93a. Building the intel-common BSP layers
94-------------------------------------------------
95
96In order to build an image with BSP support for a given release, you
97need to download the corresponding BSP tarball from the 'Board Support
98Package (BSP) Downloads' page of the Yocto Project website (or
99equivalently, check out the appropriate branch from the meta-intel git
100repository, see below). For the intel-common BSPs, those tarballs would
101correspond to the following choices in the BSP downloads section:
102
103 - Intel-core2-32 IntelĀ® Common Core BSP (Intel-core2-32)
104 - Intel-corei7-64 IntelĀ® Common Core BSP (Intel-corei7-64)
105
106The intel-* BSPs, also known as the intel-common BSPs, provide a few
107carefully selected tune options and generic hardware support to cover
108the majority of current Intel CPUs and devices. The naming follows the
109convention of intel-<TUNE>-<BITS>, where TUNE is the gcc cpu-type
110(used with mtune and march typically) and BITS is either 32 bit or 64
111bit.
112
113Having done that, and assuming you extracted the BSP tarball contents
114at the top-level of your yocto build tree, you can build a BSP image
115by adding the location of the meta-intel layer to bblayers.conf e.g.:
116
117 yocto/meta-intel \
118
119To enable a particular machine, you need to add a MACHINE line naming
120the BSP to the local.conf file:
121
122 MACHINE ?= "xxx"
123
124where 'xxx' is replaced by one of the following BSP names:
125
126 - intel-core2-32
127
128 This BSP is optimized for the Core2 family of CPUs as well as all
129 Atom CPUs prior to the Silvermont core.
130
131 - intel-corei7-64
132
133 This BSP is optimized for Nehalem and later Core and Xeon CPUs as
134 well as Silvermont and later Atom CPUs, such as the Baytrail SoCs.
135
136You should then be able to build an image as such:
137
138 $ source oe-init-build-env
139 $ bitbake core-image-sato
140
141At the end of a successful build, you should have an image that
142you can boot from a USB flash drive (see instructions on how to do
143that below, in the section 'Booting the intel-common BSP images').
144
145As an alternative to downloading the BSP tarball, you can also work
146directly from the meta-intel git repository. For each BSP in the
147'meta-intel' repository, there are multiple branches, one
148corresponding to each major release starting with 'laverne' (0.90), in
149addition to the latest code which tracks the current master (note that
150not all BSPs are present in every release). Instead of extracting
151a BSP tarball at the top level of your yocto build tree, you can
152equivalently check out the appropriate branch from the meta-intel
153repository at the same location.
154
155b. Booting the intel-common BSP images
156--------------------------------------
157
158If you've built your own image, either from the downloaded BSP layer
159or from the meta-intel git repository, you'll find the bootable
160image in the build/tmp/deploy/images/xxx directory, where again
161'xxx' refers to the machine name used in the build.
162
163Under Linux, insert a USB flash drive. Assuming the USB flash drive
164takes device /dev/sdf, use dd to copy the image to it. Before the image
165can be burned onto a USB drive, it should be un-mounted. Some Linux distros
166may automatically mount a USB drive when it is plugged in. Using USB device
167/dev/sdf as an example, find all mounted partitions:
168
169 $ mount | grep sdf
170
171and un-mount those that are mounted, for example:
172
173 $ umount /dev/sdf1
174 $ umount /dev/sdf2
175
176Now burn the image onto the USB drive:
177
178 $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress
179 $ sync
180 $ eject /dev/sdf
181
182This should give you a bootable USB flash device. Insert the device
183into a bootable USB socket on the target, and power on. This should
184result in a system booted to the Sato graphical desktop.
185
186If you want a terminal, use the arrows at the top of the UI to move to
187different pages of available applications, one of which is named
188'Terminal'. Clicking that should give you a root terminal.
189
190If you want to ssh into the system, you can use the root terminal to
191ifconfig the IP address and use that to ssh in. The root password is
192empty, so to log in type 'root' for the user name and hit 'Enter' at
193the Password prompt: and you should be in.
194
195If you find you're getting corrupt images on the USB (it doesn't show
196the syslinux boot: prompt, or the boot: prompt contains strange
197characters), try doing this first:
198
199 $ dd if=/dev/zero of=/dev/sdf bs=1M count=512
200
201c. Building the installer image
202-----------------------------------------------
203
204If you plan to install your image to your target machine, you can build a wic
205based installer image instead of default wic image. To build it, you need to
206add below configuration to local.conf :
207
208 WKS_FILE = "image-installer.wks.in"
209 IMAGE_FSTYPES_append = " ext4"
210 IMAGE_TYPEDEP_wic = "ext4"
211 INITRD_IMAGE_LIVE="core-image-minimal-initramfs"
212 do_image_wic[depends] += "${INITRD_IMAGE_LIVE}:do_image_complete"
213 do_rootfs[depends] += "virtual/kernel:do_deploy"
214 IMAGE_BOOT_FILES_append = "\
215 ${KERNEL_IMAGETYPE} \
216 microcode.cpio \
217 ${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.ext4;rootfs.img \
218 ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', 'grub-efi-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
219 ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', '${IMAGE_ROOTFS}/boot/EFI/BOOT/grub.cfg;EFI/BOOT/grub.cfg', '', d)} \
220 ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', 'systemd-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \
221 ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/loader.conf;loader/loader.conf ', '', d)} \
222 ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/entries/boot.conf;loader/entries/boot.conf', '', d)} "
223
224Burn the wic image onto USB flash device, insert the device to target machine
225and power on. This should start the installation process.
226
227III. Technical Miscellany
228=========================
229
230Benefits of using meta-intel
231----------------------------
232
233Using meta-intel has the following benefits over a generic BSP:
234
235tune flags
236++++++++++
237intel-* MACHINEs each have different compilation flags appropriate for their
238targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern
23964-bit Intel Core i microarchitecture, and includes instruction sets up to
240SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2
241microarchitecture, and includes instruction sets up to SSE3.
242
243linux-intel kernel
244++++++++++++++++++
245The linux-intel kernel is an initiative to bring better Intel(R) hardware
246support to the current LTS linux kernel. It contains a base LTS kernel with
247additional backports from upstream Intel drivers. In addition, a default kernel
248config containing most features found on Intel boards is supplied via the
249yocto-kernel-cache.
250
251graphics stack
252++++++++++++++
253Meta-intel provides the latest Intel Graphics Linux Stack drivers to support
254Intel hardware as defined by the https://01.org/linuxgraphics.
255
256Other software
257++++++++++++++
258 * intel ucode - provides the latest microcode updates for Intel processors
259
260 * thermald - which proactively controls thermal, using P-states, T-states, and
261the Intel power clamp driver.
262(https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon)
263
264The intel-common kernel package architecture
265--------------------------------------------
266
267These BSPs use what we call the intel-common Linux kernel package
268architecture. This includes core2-32-intel-common and
269corei7-64-intel-common. These kernel packages can also be used by any
270of the BSPs in meta-intel that choose to include the
271intel-common-pkgarch.inc file.
272
273To minimize the proliferation of vendor trees, reduce the sources we
274must support, and consolidate QA efforts, all BSP maintainers are
275encouraged to make use of the intel-common Linux kernel package
276architecture.
277
278Intel-specific machine features
279-------------------------------
280
281The meta-intel layer makes some additional machine features available
282to BSPs. These machine features can be used in a BSP layer in the
283same way that machine features are used in other layers based on
284oe-core, via the MACHINE_FEATURES variable.
285
286Requirements
287++++++++++++
288
289The meta-intel-specific machine features are only available to a BSP
290when the meta-intel layer is included in the build configuration, and
291the meta-intel.inc file is included in the machine configuration of
292that BSP.
293
294To make these features available for your machine, you will need to:
295
296 1. include a configuration line such as the below in bblayers.conf
297 BBLAYERS += "<local path>/meta-intel"
298 2. include the following line in the machine configuration file
299 require conf/machine/include/meta-intel.inc
300
301Once the above requirements are met, the machine features provided by
302the meta-intel layer will be available for the BSP to use.
303
304Available machine features
305++++++++++++++++++++++++++
306
307Currently, the meta-intel layer makes the following set of
308Intel-specific machine features available:
309
310 * intel-ucode
311
312These machine features can be included by listing them in the
313MACHINE_FEATURES variable in the machine configuration file. For
314example:
315
316 MACHINE_FEATURES += "intel-ucode"
317
318Machine feature details
319+++++++++++++++++++++++
320
321 * intel-ucode
322
323 This feature provides support for microcode updates to Intel
324 processors. The intel-ucode feature runs at early boot and uses
325 the microcode data file added by the feature into the BSP's
326 initrd. It also puts the userland microcode-updating tool,
327 iucode_tool, into the target images along with the microcode data
328 file.
329
330 Q. Why might a user want to enable the intel-ucode feature?
331
332 A. Intel releases microcode updates to correct processor behavior
333 as documented in the respective processor specification
334 updates. While the normal approach to getting such microcode
335 updates is via a BIOS upgrade, this can be an administrative
336 hassle and not always possible in the field. The intel-ucode
337 feature enables the microcode update capability present in the
338 Linux kernel. It provides an easy path for upgrading processor
339 microcode without the need to change the BIOS. If the feature
340 is enabled, it is also possible to update the existing target
341 images with a newer microcode update in the future.
342
343 Q. How would a user bundle only target-specific microcode in the
344 target image?
345
346 A. The Intel microcode data file released by Intel contains
347 microcode updates for multiple processors. If the BSP image is
348 meant to run on only a certain subset of processor types, a
349 processor-specific subset of microcode can be bundled into the
350 target image via the UCODE_FILTER_PARAMETERS variable. This
351 works by listing a sequence of iucode-tool parameters in the
352 UCODE_FILTER_PARAMETERS variable, which in this case will
353 select only the specific microcode relevant to the BSP. For
354 more information on the underlying parameters refer to the
355 iucode-tool manual page at http://manned.org/iucode-tool
356
357 To define a set of parameters for microcode-filtering via the
358 UCODE_FILTER_PARAMETERS variable, one needs to identify the
359 cpuid signatures of all the processors the BSP is meant to run
360 on. One way to determine the cpuid signature for a specific
361 processor is to build and run an intel-ucode-feature-enabled
362 image on the target hardware, without first assigning any value
363 to the UCODE_FILTER_PARAMETERS variable, and then once the
364 image is booted, run the "ucode_tool -S" command to have the
365 ucode tool scan the system for processor signatures. These
366 signatures can then be used in the UCODE_FILTER_PARAMETERS
367 variable in conjunction with -s parameter. For example, for
368 the fri2 BSP, the cpuid can be determined as such:
369
370 [root@fri2 ~]# iucode_tool -S
371 iucode_tool: system has processor(s) with signature 0x00020661
372
373 Given that output, a suitable UCODE_FILTER_PARAMETERS variable
374 definition could be specified in the machine configuration as
375 such:
376
377 UCODE_FILTER_PARAMETERS = "-s 0x00020661"
378
379 Q. Are there any reasons a user might want to disable the
380 intel-ucode feature?
381
382 A. The microcode data file and associated tools occupy a small
383 amount of space (a few KB) on the target image. BSPs which are
384 highly sensitive to target image size and which are not
385 experiencing microcode-related issues might consider not
386 enabling this feature.
387
388
389IV. Tested Hardware
390===================
391
392The following undergo regular basic testing with their respective MACHINE types.
393Note that both 64-bit and 32-bit firmware is available for the MinnowBoard
394Turbot, so it is tested against both intel-corei7-64 and intel-core2-32.
395
396intel-corei7-64:
397 NUC6i5SYH
398 NUC7i7BNH
399 Coffee Lake-H
400
401intel-core2-32:
402 MinnowBoard Turbot
403
404
405V. Guidelines for submitting patches
406====================================
407
408Please submit any patches against meta-intel BSPs to the meta-intel
409mailing list (meta-intel@lists.yoctoproject.org). Also, if your patches are
410available via a public git repository, please also include a URL to
411the repo and branch containing your patches as that makes it easier
412for maintainers to grab and test your patches.
413
414There are patch submission scripts available that will, among other
415things, automatically include the repo URL and branch as mentioned.
416Please see the Yocto Project Development Manual sections entitled
417'Using Scripts to Push a Change Upstream and Request a Pull' and
418'Using Email to Submit a Patch' for details.
419
420Regardless of how you submit a patch or patchset, the patches should
421at minimum follow the suggestions outlined in the 'Submitting a Change
422to the Yocto Project' section in the Yocto Project Development Manual.
423Specifically, they should:
424
425 - Include a 'Signed-off-by:' line. A commit can't legally be pulled
426 in without this.
427
428 - Provide a single-line, short summary of the change. This short
429 description should be prefixed by the BSP or recipe name, as
430 appropriate, followed by a colon. Capitalize the first character
431 of the summary (following the colon).
432
433 - For the body of the commit message, provide detailed information
434 that describes what you changed, why you made the change, and the
435 approach you used.
436
437 - If the change addresses a specific bug or issue that is associated
438 with a bug-tracking ID, include a reference to that ID in your
439 detailed description in the following format: [YOCTO #<bug-id>].
440
441 - Pay attention to line length - please don't allow any particular
442 line in the commit message to stretch past 72 characters.
443
444 - For any non-trivial patch, provide information about how you
445 tested the patch, and for any non-trivial or non-obvious testing
446 setup, provide details of that setup.
447
448Doing a quick 'git log' in meta-intel will provide you with many
449examples of good example commits if you have questions about any
450aspect of the preferred format.
451
452The meta-intel maintainers will do their best to review and/or pull in
453a patch or patchset within 24 hours of the time it was posted. For
454larger and/or more involved patches and patchsets, the review process
455may take longer.
456
457Please see the meta-intel/MAINTAINERS file for the list of maintainers
458and their specific areas; it's also a good idea to cc: the specific
459maintainer, if applicable.