diff options
author | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
---|---|---|
committer | ToshikazuOhiwa <toshikazu_ohiwa@mail.toyota.co.jp> | 2020-03-30 09:24:26 +0900 |
commit | 5b80bfd7bffd4c20d80b7c70a7130529e9a755dd (patch) | |
tree | b4bb18dcd1487dbf1ea8127e5671b7bb2eded033 /bsp/meta-intel/README | |
parent | 706ad73eb02caf8532deaf5d38995bd258725cb8 (diff) |
agl-basesystem
Diffstat (limited to 'bsp/meta-intel/README')
-rw-r--r-- | bsp/meta-intel/README | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/bsp/meta-intel/README b/bsp/meta-intel/README new file mode 100644 index 00000000..24d6a682 --- /dev/null +++ b/bsp/meta-intel/README @@ -0,0 +1,432 @@ +meta-intel +========== + +This README file contains information on building and booting +meta-intel BSP layers. Please see the corresponding sections below +for details. + + +Yocto Project Compatible +======================== + +The BSPs contained in this layer are 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: 1.40 + + URI: git://git.openembedded.org/openembedded-core + layers: meta + branch: thud + + +Table of Contents +================= + + I. Overview + II. Building and booting meta-intel BSP layers + a. Building the intel-common BSP layers + b. Booting the intel-common BSP images + III. Technical Miscellany + Benefits of using meta-intel + The intel-common kernel package architecture + Intel-specific machine features + IV. Tested Hardware + V. Guidelines for submitting patches + + +I. Overview +=========== + +This is the location for Intel-maintained BSPs. + +For details on the intel-common, see the information below. + +For all others, please see the README files contained in the +individual BSP layers for BSP-specific information. + +If you have problems with or questions about a particular BSP, please +contact the maintainer listed in the MAINTAINERS file directly (cc:ing +the Yocto mailing list puts it in the archive and helps other people +who might have the same questions in the future), but please try to do +the following first: + + - look in the Yocto Project Bugzilla + (http://bugzilla.yoctoproject.org/) to see if a problem has + already been reported + + - look through recent entries of the meta-intel + (https://lists.yoctoproject.org/pipermail/meta-intel/) and Yocto + (https://lists.yoctoproject.org/pipermail/yocto/) mailing list + archives to see if other people have run into similar problems or + had similar questions answered. + +If you believe you have encountered a bug, you can open a new bug and +enter the details in the Yocto Project Bugzilla +(http://bugzilla.yoctoproject.org/). If you're relatively certain +that it's a bug against the BSP itself, please use the 'Yocto Project +Components: BSPs | meta-intel' category for the bug; otherwise, please +submit the bug against the most likely category for the problem - if +you're wrong, it's not a big deal and the bug will be recategorized +upon triage. + + +II. Building and booting meta-intel BSP layers +============================================== + +The following sections contain information on building and booting the +BSPs contained in the meta-intel layer. + +Note that these instructions specifically cover the intel-common, which +may or may not be applicable to other BSPs contained in this layer - if +a given BSP contains its own README, that version should be used instead, +and these instructions can be ignored. + +a. Building the intel-common BSP layers +------------------------------------------------- + +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 (or +equivalently, check out the appropriate branch from the meta-intel git +repository, see below). For the intel-common BSPs, those tarballs would +correspond to the following choices in the BSP downloads section: + + - Intel-core2-32 IntelĀ® Common Core BSP (Intel-core2-32) + - Intel-corei7-64 IntelĀ® Common Core BSP (Intel-corei7-64) + +The intel-* BSPs, also known as the intel-common BSPs, provide a few +carefully selected tune options and generic hardware support to cover +the majority of current Intel CPUs and devices. The naming follows the +convention of intel-<TUNE>-<BITS>, where TUNE is the gcc cpu-type +(used with mtune and march typically) and BITS is either 32 bit or 64 +bit. + +Having done that, and assuming you extracted the BSP tarball contents +at the top-level of your yocto build tree, you can build a BSP image +by adding the location of the meta-intel layer to bblayers.conf e.g.: + + yocto/meta-intel \ + +To enable a particular machine, you need to add a MACHINE line naming +the BSP to the local.conf file: + + MACHINE ?= "xxx" + +where 'xxx' is replaced by one of the following BSP names: + + - intel-core2-32 + + This BSP is optimized for the Core2 family of CPUs as well as all + Atom CPUs prior to the Silvermont core. + + - intel-corei7-64 + + This BSP is optimized for Nehalem and later Core and Xeon CPUs as + well as Silvermont and later Atom CPUs, such as the Baytrail SoCs. + +You should then be able to build an image as such: + + $ source oe-init-build-env + $ bitbake core-image-sato + +At the end of a successful build, you should have an image that +you can boot from a USB flash drive (see instructions on how to do +that below, in the section 'Booting the intel-common BSP images'). + +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. + +b. Booting the intel-common BSP images +-------------------------------------- + +If you've built your own image, either from the downloaded BSP layer +or from the meta-intel git repository, you'll find the bootable +image in the build/tmp/deploy/images/xxx directory, where again +'xxx' refers to the machine name used in the build. + +Under Linux, insert a USB flash drive. Assuming the USB flash drive +takes device /dev/sdf, use dd to copy the image to it. Before the image +can be burned onto a USB drive, it should be un-mounted. Some Linux distros +may automatically mount a USB drive when it is plugged in. Using USB device +/dev/sdf as an example, find all mounted partitions: + + $ mount | grep sdf + +and un-mount those that are mounted, for example: + + $ umount /dev/sdf1 + $ umount /dev/sdf2 + +Now burn the image onto the USB drive: + + $ sudo dd if=core-image-sato-intel-corei7-64.wic of=/dev/sdf status=progress + $ sync + $ eject /dev/sdf + +This should give you a bootable USB flash device. Insert the device +into a bootable USB socket on the target, and power on. This should +result in a system booted to the Sato graphical desktop. + +If you want a terminal, use the arrows at the top of the UI to move to +different pages of available applications, one of which is named +'Terminal'. Clicking that should give you a root terminal. + +If you want to ssh into the system, you can use the root terminal to +ifconfig the IP address and use that to ssh in. The root password is +empty, so to log in type 'root' for the user name and hit 'Enter' at +the Password prompt: and you should be in. + +If you find you're getting corrupt images on the USB (it doesn't show +the syslinux boot: prompt, or the boot: prompt contains strange +characters), try doing this first: + + $ dd if=/dev/zero of=/dev/sdf bs=1M count=512 + +III. Technical Miscellany +========================= + +Benefits of using meta-intel +---------------------------- + +Using meta-intel has the following benefits over a generic BSP: + +tune flags +++++++++++ +intel-* MACHINEs each have different compilation flags appropriate for their +targeted hardware sets. intel-corei7-64 has tune flags appropriate for modern +64-bit Intel Core i microarchitecture, and includes instruction sets up to +SSE4.2. intel-core2-32 has tune flags appropriate for legacy 32-bit Intel Core2 +microarchitecture, and includes instruction sets up to SSE3. + +linux-intel kernel +++++++++++++++++++ +The linux-intel kernel is an initiative to bring better Intel(R) hardware +support to the current LTS linux kernel. It contains a base LTS kernel with +additional backports from upstream Intel drivers. In addition, a default kernel +config containing most features found on Intel boards is supplied via the +yocto-kernel-cache. + +graphics stack +++++++++++++++ +Meta-intel provides the latest Intel Graphics Linux Stack drivers to support +Intel hardware as defined by the https://01.org/linuxgraphics. + +Other software +++++++++++++++ + * intel ucode - provides the latest microcode updates for Intel processors + + * thermald - which proactively controls thermal, using P-states, T-states, and +the Intel power clamp driver. +(https://01.org/linux-thermal-daemon/documentation/introduction-thermal-daemon) + +The intel-common kernel package architecture +-------------------------------------------- + +These BSPs use what we call the intel-common Linux kernel package +architecture. This includes core2-32-intel-common and +corei7-64-intel-common. These kernel packages can also be used by any +of the BSPs in meta-intel that choose to include the +intel-common-pkgarch.inc file. + +To minimize the proliferation of vendor trees, reduce the sources we +must support, and consolidate QA efforts, all BSP maintainers are +encouraged to make use of the intel-common Linux kernel package +architecture. + +Intel-specific machine features +------------------------------- + +The meta-intel layer makes some additional machine features available +to BSPs. These machine features can be used in a BSP layer in the +same way that machine features are used in other layers based on +oe-core, via the MACHINE_FEATURES variable. + +Requirements +++++++++++++ + +The meta-intel-specific machine features are only available to a BSP +when the meta-intel layer is included in the build configuration, and +the meta-intel.inc file is included in the machine configuration of +that BSP. + +To make these features available for your machine, you will need to: + + 1. include a configuration line such as the below in bblayers.conf + BBLAYERS += "<local path>/meta-intel" + 2. include the following line in the machine configuration file + require conf/machine/include/meta-intel.inc + +Once the above requirements are met, the machine features provided by +the meta-intel layer will be available for the BSP to use. + +Available machine features +++++++++++++++++++++++++++ + +Currently, the meta-intel layer makes the following set of +Intel-specific machine features available: + + * intel-ucode + +These machine features can be included by listing them in the +MACHINE_FEATURES variable in the machine configuration file. For +example: + + MACHINE_FEATURES += "intel-ucode" + +Machine feature details ++++++++++++++++++++++++ + + * intel-ucode + + This feature provides support for microcode updates to Intel + processors. The intel-ucode feature runs at early boot and uses + the microcode data file added by the feature into the BSP's + initrd. It also puts the userland microcode-updating tool, + iucode_tool, into the target images along with the microcode data + file. + + Q. Why might a user want to enable the intel-ucode feature? + + A. Intel releases microcode updates to correct processor behavior + as documented in the respective processor specification + updates. While the normal approach to getting such microcode + updates is via a BIOS upgrade, this can be an administrative + hassle and not always possible in the field. The intel-ucode + feature enables the microcode update capability present in the + Linux kernel. It provides an easy path for upgrading processor + microcode without the need to change the BIOS. If the feature + is enabled, it is also possible to update the existing target + images with a newer microcode update in the future. + + Q. How would a user bundle only target-specific microcode in the + target image? + + A. The Intel microcode data file released by Intel contains + microcode updates for multiple processors. If the BSP image is + meant to run on only a certain subset of processor types, a + processor-specific subset of microcode can be bundled into the + target image via the UCODE_FILTER_PARAMETERS variable. This + works by listing a sequence of iucode-tool parameters in the + UCODE_FILTER_PARAMETERS variable, which in this case will + select only the specific microcode relevant to the BSP. For + more information on the underlying parameters refer to the + iucode-tool manual page at http://manned.org/iucode-tool + + To define a set of parameters for microcode-filtering via the + UCODE_FILTER_PARAMETERS variable, one needs to identify the + cpuid signatures of all the processors the BSP is meant to run + on. One way to determine the cpuid signature for a specific + processor is to build and run an intel-ucode-feature-enabled + image on the target hardware, without first assigning any value + to the UCODE_FILTER_PARAMETERS variable, and then once the + image is booted, run the "ucode_tool -S" command to have the + ucode tool scan the system for processor signatures. These + signatures can then be used in the UCODE_FILTER_PARAMETERS + variable in conjunction with -s parameter. For example, for + the fri2 BSP, the cpuid can be determined as such: + + [root@fri2 ~]# iucode_tool -S + iucode_tool: system has processor(s) with signature 0x00020661 + + Given that output, a suitable UCODE_FILTER_PARAMETERS variable + definition could be specified in the machine configuration as + such: + + UCODE_FILTER_PARAMETERS = "-s 0x00020661" + + Q. Are there any reasons a user might want to disable the + intel-ucode feature? + + A. The microcode data file and associated tools occupy a small + amount of space (a few KB) on the target image. BSPs which are + highly sensitive to target image size and which are not + experiencing microcode-related issues might consider not + enabling this feature. + + +IV. Tested Hardware +=================== + +The following undergo regular basic testing with their respective MACHINE types. +Note that both 64-bit and 32-bit firmware is available for the MinnowBoard +Turbot, so it is tested against both intel-corei7-64 and intel-core2-32. + +intel-corei7-64: + NUC6i5SYH + MinnowBoard Turbot + +intel-core2-32: + MinnowBoard Turbot + + +V. Guidelines for submitting patches +==================================== + +Please submit any patches against meta-intel BSPs to the meta-intel +mailing list (meta-intel@yoctoproject.org). Also, if your patches are +available via a public git repository, please also include a URL to +the repo and branch containing your patches as that makes it easier +for maintainers to grab and test your patches. + +There are patch submission scripts available that will, among other +things, automatically include the repo URL and branch as mentioned. +Please see the Yocto Project Development Manual sections entitled +'Using Scripts to Push a Change Upstream and Request a Pull' and +'Using Email to Submit a Patch' for details. + +Regardless of how you submit a patch or patchset, the patches should +at minimum follow the suggestions outlined in the 'Submitting a Change +to the Yocto Project' section in the Yocto Project Development Manual. +Specifically, they should: + + - Include a 'Signed-off-by:' line. A commit can't legally be pulled + in without this. + + - Provide a single-line, short summary of the change. This short + description should be prefixed by the BSP or recipe name, as + appropriate, followed by a colon. Capitalize the first character + of the summary (following the colon). + + - For the body of the commit message, provide detailed information + that describes what you changed, why you made the change, and the + approach you used. + + - If the change addresses a specific bug or issue that is associated + with a bug-tracking ID, include a reference to that ID in your + detailed description in the following format: [YOCTO #<bug-id>]. + + - Pay attention to line length - please don't allow any particular + line in the commit message to stretch past 72 characters. + + - For any non-trivial patch, provide information about how you + tested the patch, and for any non-trivial or non-obvious testing + setup, provide details of that setup. + +Doing a quick 'git log' in meta-intel will provide you with many +examples of good example commits if you have questions about any +aspect of the preferred format. + +The meta-intel maintainers will do their best to review and/or pull in +a patch or patchset within 24 hours of the time it was posted. For +larger and/or more involved patches and patchsets, the review process +may take longer. + +Please see the meta-intel/MAINTAINERS file for the list of maintainers +and their specific areas; it's also a good idea to cc: the specific +maintainer, if applicable. |