diff options
author | Lee Chee Yang <chee.yang.lee@intel.com> | 2024-04-19 09:39:40 +0800 |
---|---|---|
committer | Anuj Mittal <anuj.mittal@intel.com> | 2024-04-19 10:10:47 +0800 |
commit | e166755b86a6f2d56cd9101dad85f2801f4279c5 (patch) | |
tree | 5e85a709760e0ede3e281ce82de493b16cb44e2f | |
parent | 0093d9f2eaf97063c81bc73736ebe7c29a69200f (diff) | |
download | meta-intel-e166755b86a6f2d56cd9101dad85f2801f4279c5.tar.gz |
documentation: update and restructure README
Update README content, reference and links. Also, split and convert this
into multiple markdown files.
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-rw-r--r-- | README | 470 | ||||
-rw-r--r-- | README.md | 32 | ||||
-rw-r--r-- | documentation/building_and_booting.md | 134 | ||||
-rw-r--r-- | documentation/reporting_bugs.md | 22 | ||||
-rw-r--r-- | documentation/submitting_patches.md | 26 | ||||
-rw-r--r-- | documentation/tested_hardware.md | 24 |
6 files changed, 238 insertions, 470 deletions
diff --git a/README b/README deleted file mode 100644 index ca2c5041..00000000 --- a/README +++ /dev/null | |||
@@ -1,470 +0,0 @@ | |||
1 | meta-intel | ||
2 | ========== | ||
3 | |||
4 | This README file contains information on building and booting | ||
5 | meta-intel BSP layers. Please see the corresponding sections below | ||
6 | for details. | ||
7 | |||
8 | |||
9 | Yocto Project Compatible | ||
10 | ======================== | ||
11 | |||
12 | The BSPs contained in this layer are compatible with the Yocto Project | ||
13 | as per the requirements listed here: | ||
14 | |||
15 | https://www.yoctoproject.org/webform/yocto-project-compatible-registration | ||
16 | |||
17 | |||
18 | Dependencies | ||
19 | ============ | ||
20 | |||
21 | This 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 | |||
30 | Table 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 | |||
46 | I. Overview | ||
47 | =========== | ||
48 | |||
49 | This is the location for Intel-maintained BSPs. | ||
50 | |||
51 | For details on the intel-common, see the information below. | ||
52 | |||
53 | For all others, please see the README files contained in the | ||
54 | individual BSP layers for BSP-specific information. | ||
55 | |||
56 | If you have problems with or questions about a particular BSP, please | ||
57 | contact the maintainer listed in the MAINTAINERS file directly (cc:ing | ||
58 | the Yocto mailing list puts it in the archive and helps other people | ||
59 | who might have the same questions in the future), but please try to do | ||
60 | the 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 | |||
72 | If you believe you have encountered a bug, you can open a new bug and | ||
73 | enter the details in the Yocto Project Bugzilla | ||
74 | (http://bugzilla.yoctoproject.org/). If you're relatively certain | ||
75 | that it's a bug against the BSP itself, please use the 'Yocto Project | ||
76 | Components: BSPs | meta-intel' category for the bug; otherwise, please | ||
77 | submit the bug against the most likely category for the problem - if | ||
78 | you're wrong, it's not a big deal and the bug will be recategorized | ||
79 | upon triage. | ||
80 | |||
81 | |||
82 | II. Building and booting meta-intel BSP layers | ||
83 | ============================================== | ||
84 | |||
85 | The following sections contain information on building and booting the | ||
86 | BSPs contained in the meta-intel layer. | ||
87 | |||
88 | Note that these instructions specifically cover the intel-common, which | ||
89 | may or may not be applicable to other BSPs contained in this layer - if | ||
90 | a given BSP contains its own README, that version should be used instead, | ||
91 | and these instructions can be ignored. | ||
92 | |||
93 | a. Building the intel-common BSP layers | ||
94 | ------------------------------------------------- | ||
95 | |||
96 | In order to build an image with BSP support for a given release, you | ||
97 | need to download the corresponding BSP tarball from the 'Board Support | ||
98 | Package (BSP) Downloads' page of the Yocto Project website (or | ||
99 | equivalently, check out the appropriate branch from the meta-intel git | ||
100 | repository, see below). For the intel-common BSPs, those tarballs would | ||
101 | correspond 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 | |||
106 | The intel-* BSPs, also known as the intel-common BSPs, provide a few | ||
107 | carefully selected tune options and generic hardware support to cover | ||
108 | the majority of current Intel CPUs and devices. The naming follows the | ||
109 | convention 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 | ||
111 | bit. | ||
112 | |||
113 | Having done that, and assuming you extracted the BSP tarball contents | ||
114 | at the top-level of your yocto build tree, you can build a BSP image | ||
115 | by adding the location of the meta-intel layer to bblayers.conf e.g.: | ||
116 | |||
117 | yocto/meta-intel \ | ||
118 | |||
119 | To enable a particular machine, you need to add a MACHINE line naming | ||
120 | the BSP to the local.conf file: | ||
121 | |||
122 | MACHINE ?= "xxx" | ||
123 | |||
124 | where '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 | |||
136 | You should then be able to build an image as such: | ||
137 | |||
138 | $ source oe-init-build-env | ||
139 | $ bitbake core-image-sato | ||
140 | |||
141 | At the end of a successful build, you should have an image that | ||
142 | you can boot from a USB flash drive (see instructions on how to do | ||
143 | that below, in the section 'Booting the intel-common BSP images'). | ||
144 | |||
145 | As an alternative to downloading the BSP tarball, you can also work | ||
146 | directly from the meta-intel git repository. For each BSP in the | ||
147 | 'meta-intel' repository, there are multiple branches, one | ||
148 | corresponding to each major release starting with 'laverne' (0.90), in | ||
149 | addition to the latest code which tracks the current master (note that | ||
150 | not all BSPs are present in every release). Instead of extracting | ||
151 | a BSP tarball at the top level of your yocto build tree, you can | ||
152 | equivalently check out the appropriate branch from the meta-intel | ||
153 | repository at the same location. | ||
154 | |||
155 | b. Booting the intel-common BSP images | ||
156 | -------------------------------------- | ||
157 | |||
158 | If you've built your own image, either from the downloaded BSP layer | ||
159 | or from the meta-intel git repository, you'll find the bootable | ||
160 | image in the build/tmp/deploy/images/xxx directory, where again | ||
161 | 'xxx' refers to the machine name used in the build. | ||
162 | |||
163 | Under Linux, insert a USB flash drive. Assuming the USB flash drive | ||
164 | takes device /dev/sdf, use dd to copy the image to it. Before the image | ||
165 | can be burned onto a USB drive, it should be un-mounted. Some Linux distros | ||
166 | may 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 | |||
171 | and un-mount those that are mounted, for example: | ||
172 | |||
173 | $ umount /dev/sdf1 | ||
174 | $ umount /dev/sdf2 | ||
175 | |||
176 | Now 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 | |||
182 | This should give you a bootable USB flash device. Insert the device | ||
183 | into a bootable USB socket on the target, and power on. This should | ||
184 | result in a system booted to the Sato graphical desktop. | ||
185 | |||
186 | If you want a terminal, use the arrows at the top of the UI to move to | ||
187 | different pages of available applications, one of which is named | ||
188 | 'Terminal'. Clicking that should give you a root terminal. | ||
189 | |||
190 | If you want to ssh into the system, you can use the root terminal to | ||
191 | ifconfig the IP address and use that to ssh in. The root password is | ||
192 | empty, so to log in type 'root' for the user name and hit 'Enter' at | ||
193 | the Password prompt: and you should be in. | ||
194 | |||
195 | If you find you're getting corrupt images on the USB (it doesn't show | ||
196 | the syslinux boot: prompt, or the boot: prompt contains strange | ||
197 | characters), try doing this first: | ||
198 | |||
199 | $ dd if=/dev/zero of=/dev/sdf bs=1M count=512 | ||
200 | |||
201 | c. Building the installer image | ||
202 | ----------------------------------------------- | ||
203 | |||
204 | If you plan to install your image to your target machine, you can build a wic | ||
205 | based installer image instead of default wic image. To build it, you need to | ||
206 | add 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}.rootfs.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 | |||
224 | Burn the wic image onto USB flash device, insert the device to target machine | ||
225 | and power on. This should start the installation process. | ||
226 | |||
227 | III. Technical Miscellany | ||
228 | ========================= | ||
229 | |||
230 | Benefits of using meta-intel | ||
231 | ---------------------------- | ||
232 | |||
233 | Using meta-intel has the following benefits over a generic BSP: | ||
234 | |||
235 | tune flags | ||
236 | ++++++++++ | ||
237 | intel-* MACHINEs each have different compilation flags appropriate for their | ||
238 | targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern | ||
239 | 64-bit Intel Core i microarchitecture, and includes instruction sets up to | ||
240 | SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2 | ||
241 | microarchitecture, and includes instruction sets up to SSE3. | ||
242 | |||
243 | linux-intel kernel | ||
244 | ++++++++++++++++++ | ||
245 | The linux-intel kernel is an initiative to bring better Intel(R) hardware | ||
246 | support to the current LTS linux kernel. It contains a base LTS kernel with | ||
247 | additional backports from upstream Intel drivers. In addition, a default kernel | ||
248 | config containing most features found on Intel boards is supplied via the | ||
249 | yocto-kernel-cache. | ||
250 | |||
251 | graphics stack | ||
252 | ++++++++++++++ | ||
253 | Meta-intel provides the latest Intel Graphics Linux Stack drivers to support | ||
254 | Intel hardware as defined by the https://01.org/linuxgraphics. | ||
255 | |||
256 | Other 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 | ||
261 | the Intel power clamp driver. | ||
262 | (https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon) | ||
263 | |||
264 | The intel-common kernel package architecture | ||
265 | -------------------------------------------- | ||
266 | |||
267 | These BSPs use what we call the intel-common Linux kernel package | ||
268 | architecture. This includes core2-32-intel-common and | ||
269 | corei7-64-intel-common. These kernel packages can also be used by any | ||
270 | of the BSPs in meta-intel that choose to include the | ||
271 | intel-common-pkgarch.inc file. | ||
272 | |||
273 | To minimize the proliferation of vendor trees, reduce the sources we | ||
274 | must support, and consolidate QA efforts, all BSP maintainers are | ||
275 | encouraged to make use of the intel-common Linux kernel package | ||
276 | architecture. | ||
277 | |||
278 | Intel-specific machine features | ||
279 | ------------------------------- | ||
280 | |||
281 | The meta-intel layer makes some additional machine features available | ||
282 | to BSPs. These machine features can be used in a BSP layer in the | ||
283 | same way that machine features are used in other layers based on | ||
284 | oe-core, via the MACHINE_FEATURES variable. | ||
285 | |||
286 | Requirements | ||
287 | ++++++++++++ | ||
288 | |||
289 | The meta-intel-specific machine features are only available to a BSP | ||
290 | when the meta-intel layer is included in the build configuration, and | ||
291 | the meta-intel.inc file is included in the machine configuration of | ||
292 | that BSP. | ||
293 | |||
294 | To 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 | |||
301 | Once the above requirements are met, the machine features provided by | ||
302 | the meta-intel layer will be available for the BSP to use. | ||
303 | |||
304 | Available machine features | ||
305 | ++++++++++++++++++++++++++ | ||
306 | |||
307 | Currently, the meta-intel layer makes the following set of | ||
308 | Intel-specific machine features available: | ||
309 | |||
310 | * intel-ucode | ||
311 | |||
312 | These machine features can be included by listing them in the | ||
313 | MACHINE_FEATURES variable in the machine configuration file. For | ||
314 | example: | ||
315 | |||
316 | MACHINE_FEATURES += "intel-ucode" | ||
317 | |||
318 | Machine 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 | |||
389 | IV. Tested Hardware | ||
390 | =================== | ||
391 | |||
392 | The following undergo regular basic testing with their respective MACHINE types. | ||
393 | Note that both 64-bit and 32-bit firmware is available for the MinnowBoard | ||
394 | Turbot, so it is tested against both intel-corei7-64 and intel-core2-32. | ||
395 | |||
396 | intel-corei7-64: | ||
397 | Alder Lake-P | ||
398 | Alder Lake-S | ||
399 | Elkhart Lake | ||
400 | Kaby Lake | ||
401 | Raptor Lake-P | ||
402 | Tiger Lake | ||
403 | |||
404 | intel-skylake-64: | ||
405 | Alder Lake-P | ||
406 | Alder Lake-S | ||
407 | Elkhart Lake | ||
408 | Kaby Lake | ||
409 | Raptor Lake-P | ||
410 | Tiger Lake | ||
411 | |||
412 | intel-core2-32: | ||
413 | MinnowBoard Turbot | ||
414 | |||
415 | |||
416 | V. Guidelines for submitting patches | ||
417 | ==================================== | ||
418 | |||
419 | Please submit any patches against meta-intel BSPs to the meta-intel | ||
420 | mailing list (meta-intel@lists.yoctoproject.org). Also, if your patches are | ||
421 | available via a public git repository, please also include a URL to | ||
422 | the repo and branch containing your patches as that makes it easier | ||
423 | for maintainers to grab and test your patches. | ||
424 | |||
425 | There are patch submission scripts available that will, among other | ||
426 | things, automatically include the repo URL and branch as mentioned. | ||
427 | Please see the Yocto Project Development Manual sections entitled | ||
428 | 'Using Scripts to Push a Change Upstream and Request a Pull' and | ||
429 | 'Using Email to Submit a Patch' for details. | ||
430 | |||
431 | Regardless of how you submit a patch or patchset, the patches should | ||
432 | at minimum follow the suggestions outlined in the 'Submitting a Change | ||
433 | to the Yocto Project' section in the Yocto Project Development Manual. | ||
434 | Specifically, they should: | ||
435 | |||
436 | - Include a 'Signed-off-by:' line. A commit can't legally be pulled | ||
437 | in without this. | ||
438 | |||
439 | - Provide a single-line, short summary of the change. This short | ||
440 | description should be prefixed by the BSP or recipe name, as | ||
441 | appropriate, followed by a colon. Capitalize the first character | ||
442 | of the summary (following the colon). | ||
443 | |||
444 | - For the body of the commit message, provide detailed information | ||
445 | that describes what you changed, why you made the change, and the | ||
446 | approach you used. | ||
447 | |||
448 | - If the change addresses a specific bug or issue that is associated | ||
449 | with a bug-tracking ID, include a reference to that ID in your | ||
450 | detailed description in the following format: [YOCTO #<bug-id>]. | ||
451 | |||
452 | - Pay attention to line length - please don't allow any particular | ||
453 | line in the commit message to stretch past 72 characters. | ||
454 | |||
455 | - For any non-trivial patch, provide information about how you | ||
456 | tested the patch, and for any non-trivial or non-obvious testing | ||
457 | setup, provide details of that setup. | ||
458 | |||
459 | Doing a quick 'git log' in meta-intel will provide you with many | ||
460 | examples of good example commits if you have questions about any | ||
461 | aspect of the preferred format. | ||
462 | |||
463 | The meta-intel maintainers will do their best to review and/or pull in | ||
464 | a patch or patchset within 24 hours of the time it was posted. For | ||
465 | larger and/or more involved patches and patchsets, the review process | ||
466 | may take longer. | ||
467 | |||
468 | Please see the meta-intel/MAINTAINERS file for the list of maintainers | ||
469 | and their specific areas; it's also a good idea to cc: the specific | ||
470 | maintainer, if applicable. | ||
diff --git a/README.md b/README.md new file mode 100644 index 00000000..b3b5e60b --- /dev/null +++ b/README.md | |||
@@ -0,0 +1,32 @@ | |||
1 | # meta-intel | ||
2 | |||
3 | OpenEmbedded/Yocto BSP layer for Intel platforms. | ||
4 | |||
5 | ## Dependencies | ||
6 | |||
7 | This layer primarily depends on OpenEmbedded-Core (OE-Core). However, certain | ||
8 | recipes may require additional layers to support optional features or | ||
9 | programming languages not supported by OE-Core. Such recipes are located within | ||
10 | the `dynamic-layers` directory. | ||
11 | |||
12 | Base dependencies: | ||
13 | - [Bitbake](https://git.openembedded.org/bitbake) | ||
14 | - [OE-Core](https://git.openembedded.org/openembedded-core) | ||
15 | |||
16 | Dynamic additional dependencies: | ||
17 | |||
18 | - [meta-openembedded](https://git.openembedded.org/meta-openembedded/tree/meta-oe) | ||
19 | - [meta-python](https://git.openembedded.org/meta-openembedded/tree/meta-python) | ||
20 | - [meta-clang](https://github.com/kraj/meta-clang.git) | ||
21 | |||
22 | |||
23 | ## Contents | ||
24 | |||
25 | - [Building and booting meta-intel BSP layers](documentation/building_and_booting.md) | ||
26 | - [Intel oneAPI DPC++/C++ Compiler](documentation/dpcpp-compiler.md) | ||
27 | - [Tested Hardware](documentation/tested_hardware.md) | ||
28 | - [Guidelines for submitting patches](documentation/submitting_patches.md) | ||
29 | - [Reporting bugs](documentation/reporting_bugs.md) | ||
30 | - [Reporting security bugs](SECURITY.md) | ||
31 | - [Maintainers](MAINTAINERS) | ||
32 | |||
diff --git a/documentation/building_and_booting.md b/documentation/building_and_booting.md new file mode 100644 index 00000000..478a4fb0 --- /dev/null +++ b/documentation/building_and_booting.md | |||
@@ -0,0 +1,134 @@ | |||
1 | ### Building the Intel BSP layers | ||
2 | |||
3 | The intel-common BSP provide a few carefully selected tune options and | ||
4 | generic hardware support to cover the majority of current Intel CPUs and | ||
5 | devices. The naming follows the convention of intel-<TUNE>-<BITS>, where | ||
6 | TUNE is the gcc cpu-type (used with mtune and march typically) and BITS | ||
7 | is either 32 bit or 64 bit. | ||
8 | |||
9 | In order to build an image with BSP support for a given release, you | ||
10 | need to clone the meta-intel layer from git repository: | ||
11 | ``` | ||
12 | git clone https://git.yoctoproject.org/meta-intel | ||
13 | ``` | ||
14 | |||
15 | Check out the appropriate branch or release tags. The branch name and tags | ||
16 | would align with Yocto Project | ||
17 | [Release Codenames](https://wiki.yoctoproject.org/wiki/Releases). | ||
18 | Assuming meta-intel repository is cloned at the top-level of | ||
19 | OE-Core build tree, you can build a BSP image by adding the location of | ||
20 | the meta-intel layer to bblayers.conf: | ||
21 | ``` | ||
22 | BBLAYERS = " \ | ||
23 | /openembedded-core/meta \ | ||
24 | /openembedded-core/meta-intel " | ||
25 | ``` | ||
26 | |||
27 | To enable a particular machine, add a MACHINE line naming the BSP | ||
28 | to the local.conf file: | ||
29 | ``` | ||
30 | MACHINE ?= "intel-corei7-64" | ||
31 | ``` | ||
32 | |||
33 | where this can be replaced by other MACHINE types available: | ||
34 | |||
35 | - intel-core2-32 | ||
36 | |||
37 | This BSP is optimized for the Core2 family of CPUs as well as all | ||
38 | Atom CPUs prior to the Silvermont core. | ||
39 | |||
40 | - intel-corei7-64 | ||
41 | |||
42 | This BSP is optimized for Nehalem and later Core and Xeon CPUs as | ||
43 | well as Silvermont and later Atom CPUs, such as the Baytrail SoCs. | ||
44 | |||
45 | - intel-skylake-64 | ||
46 | |||
47 | This BSP uses [x86-64-v3 tuning](https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html). | ||
48 | |||
49 | You should then be able to build an image as such: | ||
50 | ``` | ||
51 | $ source oe-init-build-env | ||
52 | $ bitbake core-image-sato | ||
53 | ``` | ||
54 | |||
55 | At the end of a successful build, you should have an image that | ||
56 | you can boot from a USB flash drive. | ||
57 | |||
58 | |||
59 | ## Booting the intel-common BSP images | ||
60 | |||
61 | If you've built your own image, you'll find the bootable | ||
62 | image in the build/tmp/deploy/images/{MACHINE} directory, where | ||
63 | 'MACHINE' refers to the machine name used in the build. | ||
64 | |||
65 | Under Linux, insert a USB flash drive. Assuming the USB flash drive | ||
66 | takes device /dev/sdf, use dd to copy the image to it. Before the image | ||
67 | can be burned onto a USB drive, it should be un-mounted. Some Linux distros | ||
68 | may automatically mount a USB drive when it is plugged in. Using USB device | ||
69 | /dev/sdf as an example, find all mounted partitions: | ||
70 | ``` | ||
71 | $ mount | grep sdf | ||
72 | ``` | ||
73 | |||
74 | and un-mount those that are mounted, for example: | ||
75 | ``` | ||
76 | $ umount /dev/sdf1 | ||
77 | $ umount /dev/sdf2 | ||
78 | ``` | ||
79 | |||
80 | Now burn the image onto the USB drive: | ||
81 | ``` | ||
82 | $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress | ||
83 | $ sync | ||
84 | $ eject /dev/sdf | ||
85 | ``` | ||
86 | |||
87 | This should give you a bootable USB flash device. Insert the device | ||
88 | into a bootable USB socket on the target, and power on. This should | ||
89 | result in a system booted to the Sato graphical desktop. | ||
90 | |||
91 | If you want a terminal, use the arrows at the top of the UI to move to | ||
92 | different pages of available applications, one of which is named | ||
93 | 'Terminal'. Clicking that should give you a root terminal. | ||
94 | |||
95 | If you want to ssh into the system, you can use the root terminal to | ||
96 | ifconfig the IP address and use that to ssh in. The root password is | ||
97 | empty, so to log in type 'root' for the user name and hit 'Enter' at | ||
98 | the Password prompt: and you should be in. | ||
99 | |||
100 | If you find you're getting corrupt images on the USB (it doesn't show | ||
101 | the syslinux boot: prompt, or the boot: prompt contains strange | ||
102 | characters), try doing this first: | ||
103 | ``` | ||
104 | $ dd if=/dev/zero of=/dev/sdf bs=1M count=512 | ||
105 | ``` | ||
106 | |||
107 | ## Building the installer image | ||
108 | |||
109 | If you plan to install your image to your target machine, you can build a wic | ||
110 | based installer image instead of default wic image. To build it, you need to | ||
111 | add below configuration to local.conf : | ||
112 | |||
113 | ``` | ||
114 | WKS_FILE = "image-installer.wks.in" | ||
115 | IMAGE_FSTYPES:append = " ext4" | ||
116 | IMAGE_TYPEDEP:wic = "ext4" | ||
117 | INITRD_IMAGE_LIVE="core-image-minimal-initramfs" | ||
118 | do_image_wic[depends] += "${INITRD_IMAGE_LIVE}:do_image_complete" | ||
119 | do_rootfs[depends] += "virtual/kernel:do_deploy" | ||
120 | IMAGE_BOOT_FILES:append = "\ | ||
121 | ${KERNEL_IMAGETYPE} \ | ||
122 | microcode.cpio \ | ||
123 | ${IMGDEPLOYDIR}/${IMAGE_BASENAME}-${MACHINE}.rootfs.ext4;rootfs.img \ | ||
124 | ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', 'grub-efi-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \ | ||
125 | ${@bb.utils.contains('EFI_PROVIDER', 'grub-efi', '${IMAGE_ROOTFS}/boot/EFI/BOOT/grub.cfg;EFI/BOOT/grub.cfg', '', d)} \ | ||
126 | ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', 'systemd-bootx64.efi;EFI/BOOT/bootx64.efi', '', d)} \ | ||
127 | ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/loader.conf;loader/loader.conf ', '', d)} \ | ||
128 | ${@bb.utils.contains('EFI_PROVIDER', 'systemd-boot', '${IMAGE_ROOTFS}/boot/loader/entries/boot.conf;loader/entries/boot.conf', '', d)} " | ||
129 | ``` | ||
130 | |||
131 | Burn the wic image onto USB flash device, insert the device to target machine | ||
132 | and power on. This should start the installation process. | ||
133 | |||
134 | |||
diff --git a/documentation/reporting_bugs.md b/documentation/reporting_bugs.md new file mode 100644 index 00000000..04a4d47f --- /dev/null +++ b/documentation/reporting_bugs.md | |||
@@ -0,0 +1,22 @@ | |||
1 | ## Reporting bugs | ||
2 | |||
3 | If you have problems with or questions about a particular BSP, please | ||
4 | contact the maintainer listed in the [Maintainer](MAINTAINERS) file directly (cc:ing | ||
5 | the Yocto mailing list puts it in the archive and helps other people | ||
6 | who might have the same questions in the future), but please try to do | ||
7 | the following first: | ||
8 | |||
9 | - look in the [Yocto Project Bugzilla](http://bugzilla.yoctoproject.org/) to see if a | ||
10 | problem has already been reported | ||
11 | |||
12 | - look through recent entries of the [meta-intel](https://lists.yoctoproject.org/g/meta-intel/messages) | ||
13 | and [Yocto Archives](https://lists.yoctoproject.org/g/yocto/messages) mailing list archives to see | ||
14 | if other people have run into similar problems or had similar questions answered. | ||
15 | |||
16 | If you believe you have encountered a bug, you can open a new bug and | ||
17 | enter the details in the [Yocto Project Bugzilla](https://bugzilla.yoctoproject.org/). | ||
18 | If you're relatively certain that it's a bug against the BSP itself, please use the | ||
19 | 'BSPs | bsps-meta-intel' category for the bug; otherwise, please submit the bug against | ||
20 | the most likely category for the problem. if you're wrong, it's not a big deal and | ||
21 | the bug will be recategorized upon triage. | ||
22 | |||
diff --git a/documentation/submitting_patches.md b/documentation/submitting_patches.md new file mode 100644 index 00000000..41a039bd --- /dev/null +++ b/documentation/submitting_patches.md | |||
@@ -0,0 +1,26 @@ | |||
1 | ## Guidelines for submitting patches | ||
2 | |||
3 | Please submit any patches against meta-intel BSPs to the | ||
4 | [meta-intel mailing list](https://lists.yoctoproject.org/g/meta-intel) | ||
5 | (email: meta-intel@lists.yoctoproject.org). Also, if your patches are | ||
6 | available via a public git repository, please also include a URL to | ||
7 | the repo and branch containing your patches as that makes it easier | ||
8 | for maintainers to grab and test your patches. | ||
9 | |||
10 | The patches should follow the suggestions outlined in the | ||
11 | [Yocto Project and OpenEmbedded Contributor Guide](https://docs.yoctoproject.org/dev/contributor-guide/index.html). | ||
12 | In addition, for any non-trivial patch, provide information about how you | ||
13 | tested the patch, and for any non-trivial or non-obvious testing | ||
14 | setup, provide details of that setup. | ||
15 | |||
16 | Doing a quick 'git log' in meta-intel will provide you with many | ||
17 | examples of good example commits if you have questions about any | ||
18 | aspect of the preferred format. | ||
19 | |||
20 | The meta-intel maintainers will do their best to review and/or pull in | ||
21 | a patch or patch sets within 24 hours of the time it was posted. For | ||
22 | larger and/or more involved patches and patch sets, the review process | ||
23 | may take longer. | ||
24 | |||
25 | Please see the [MAINTAINERS](MAINTAINERS.md) for the list of maintainers. It's also | ||
26 | a good idea to cc: the maintainer, if applicable. | ||
diff --git a/documentation/tested_hardware.md b/documentation/tested_hardware.md new file mode 100644 index 00000000..48a25ab4 --- /dev/null +++ b/documentation/tested_hardware.md | |||
@@ -0,0 +1,24 @@ | |||
1 | ## Tested Hardware | ||
2 | |||
3 | The following undergo regular basic testing with their respective MACHINE types. | ||
4 | |||
5 | - intel-corei7-64: | ||
6 | * Alder Lake-P | ||
7 | * Alder Lake-S | ||
8 | * Alder Lake-PS | ||
9 | * Elkhart Lake | ||
10 | * Metor Lake-P | ||
11 | * Raptor Lake-P | ||
12 | * Tiger Lake | ||
13 | |||
14 | - intel-skylake-64: | ||
15 | * Alder Lake-P | ||
16 | * Alder Lake-S | ||
17 | * Alder Lake-PS | ||
18 | * Elkhart Lake | ||
19 | * Metor Lake-P | ||
20 | * Raptor Lake-P | ||
21 | * Tiger Lake | ||
22 | |||
23 | - intel-core2-32: | ||
24 | * MinnowBoard Turbot | ||