Go to file
Chai, Chong Yi 4e8b0ef1e5 linux-yocto_4.1: use KERNEL_FEATURES for PWM in Leaf Hill
Leaf Hill PWM kernel configuration is overwritten by intel_pwm feature.
Introduce Leaf Hill PWM feature to take those configuration into final
config.
These PWM kernel configuration are required by DC-IRIS kernel driver
in Leaf Hill platform.

Signed-off-by: Chai, Chong Yi <chong.yi.chai@intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
2017-07-05 23:10:17 -07:00
common linux-yocto_4.1: use KERNEL_FEATURES for PWM in Leaf Hill 2017-07-05 23:10:17 -07:00
conf linux-yocto_4.1: use BSP_SUBTYPE for BSP specific configuration 2016-11-08 13:34:16 -08:00
meta-isg meta-valleyisland: Update machine SRCREVs to latest commit 2016-05-06 09:14:03 -07:00
meta-tlk tlk: layer.conf: Add proper dependency and priority 2016-03-30 16:11:51 -07:00
scripts/lib/wic/canned-wks mkgalileodisk.wks: WiC image for Galileo Gen 1/2 2015-11-13 07:45:54 -08:00
MAINTAINERS meta-crystalforest: relocate meta-crystalforest layer into meta-isg layer 2015-10-02 08:15:43 -07:00
README README: Updated for Quark X1000 2015-11-16 10:08:17 -08:00

meta-intel

This is the location for Intel maintained BSPs.

Please see the README files contained in the individual BSP layers for BSP-specific information. For details on the intel-common BSPs, see the conf/machine/README file.

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:

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.

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 'How to Submit a Change' secion 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 #].

  • 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.

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 += "/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.

Building for Intel Quark X1000 microprocessor

To target the Intel Quark X1000.

  1. In conf/local.conf set the MACHINE type to be intel-quark.

    MACHINE ??= "intel-quark"

  2. Build a target image of your choice.

    $ bitbake core-image-minimal

  3. Use the provided wic script to create an SD card image.

    $ wic list images mkgalileodisk Create an Galileo Gen 1/2 disk image mkgummidisk Create an EFI disk image ...

    $ wic create mkgalileodisk -e core-image-minimal

  4. Write the output image to an SD Card

$ sudo dd if=~/mkgalileodisk-*-mmcblk0.direct of=/dev/mmcblk0
  1. Insert the SD Card into the reference platform and power on.

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.