Go to file
Naveen Saini 5fe4e84b44 linux-intel/4.19: update SRCREV for 4.19.8
Integrating linux-intel stable updates that comprise the following commits:

860b700 intel-ipu4: ici: Move empty list check into spinlock to avoid list get out of sync.
6ff5100 Merge "media: intel-ipu4: [VIRT] Increase the POLL_WAIT timeout & REQ_TIMEOUT." into base
370cb2d media: intel-ipu4: [VIRT] Increase the POLL_WAIT timeout & REQ_TIMEOUT.
2832c17 media: intel-ipu4: [VIRT] Avoid double close of dmabuf FD.
9069601 Bug Fix to fix incorrect osid value
3f3118a Merge changes I2e18a2af,If588089a,I15df88ed,I55f32395 into base
a7c6f29 Security: Fix copy wrong size of keystore client id
d423299 Merge "Security: improvement for depressing compile warning" into base
151279c drivers/hyper_dmabuf: Remove from imported_list to avoid exporting dma_buf later after receiving unexport notification
b4906df drivers/hyper_dmabuf: Remove the imported dma_buf with closed domid
3b59449 drivers/hyper_dmabuf: Reuse the exported dma_buf to avoid creating multiple dma_buf for one importer
a465b67 drm/i915/gvt: Get Port ID from the encoder object instead of using enc_to_dig_port
15fde117 Merge "platform/x86: Change struct fields to 16-bit in sep, socwatchhv drivers" into base
baa4375 platform/x86: Change struct fields to 16-bit in sep, socwatchhv drivers
7c02775 drm/i915/gvt: allocate memory for vreg mmio during boot time
1c3cbb6 Merge "Revert "igb_avb: back port an upstream patch and add debug hook."" into base
9260569 Revert "igb_avb: back port an upstream patch and add debug hook."
9975a2a media: intel-ipu4: [ICI] Workaround to force compare buffer index at ici dqbuf
cd59716 media: intel-ipu4: [VIRT] Close dmabuf fd when dmabuf released.
2449c3e media: i2c: Fix for warnings for max9286_ici and intel platform
64ecb0f media: intel-ipu4: [ICI] MAX9286 and AR0231AT enabled for ICI
40835ed media: ici: Add handler to clear dma mapped buffers with dma free
47ddfd9 media: i2c & pci: Reduce log level
1fce67d media: intel-ipu4: [VIRT] Fix ipu_psys_getbuf func error return value propagation.
c06757d media: intel-ipu4: [ICI] Fix sometimes FW failed to stream on.
5345d2b media: intel-ipu4: [ICI] Fix cvbs image quality issues
7ab8c65 media: intel-ipu4: [ICI]: get virtual I2C ID dynamically if different from physical
c4c7db6 media: intel-ipu4: [VIRT] Release ISYS buffer during stream node close.
8d103c9 media: i2c: crlmodule-lite: Remove unused variable
125694d media: ici: Change total BE_STREAMS and MAX_STREAMS
ee5617d media: i2c: ti964: [ICI] Enabling TI964 deser and OV10635 sensor
e844132 drm/i915: Not wait for fuse registers in guest
86a6eb3 Merge "ASoC: Intel: boards: Update aliases for TDF machine drivers." into base
1116569 ASoC: Intel: boards: Update aliases for TDF machine drivers.
4d91449 Merge "igb_avb: back port an upstream patch and add debug hook." into base
a6f07e0 igb_avb: back port an upstream patch and add debug hook.
d01f88e drm/i915/gvt: force to active the high-performance mode during vGPU busy
ca8c4e5 Security: improvement for depressing compile warning
6f21740 vhm: fix audio backend module handle ioreq incorrectly
0750349 drm/i915/gvt: fix kernel panic when fail to create ppgtt
04c309e Merge "media: intel-ipu4: [VIRT] Support for IPU ACRN virtualization." into base
1e6ba2f Merge "media: ipu4: add virtio depends for ipu virtio driver" into base
5bf98b2 Merge "media: intel-ipu4: [ICI] Fix putbuf list and getbuf list out of sync issue." into base
7ef4e8a Merge "media: ici: Change ici_isys_pixelformat parameter with ICI_FORMAT_RGB565 format" into base
79cde33 Merge "media: intel-ipu4: [VIRT] Fix PSYS 2 PG operation issue." into base
190896e Merge "media: ici: Change value of ICI_FORMAT_RGB565" into base
408c5b1 Merge "media: intel-ipu4: [VIRT] Use native driver function return value for the IOCTL calls." into base
31be9d8 Merge "media: intel-ipu4: [VIRT] Fixed function exit to return error when failed." into base
2d48a89 Merge "media: intel-ipu4: [VIRT] Add timeout to front end request to avoid hang task." into base
856a4e0 Merge "media: intel-ipu4: [VIRT] Use actual object size for map_guest_phys call rather than using hard coded page size." into base
ebabdce Merge "media: intel-ipu4: [VIRT] Move the PYSY buffer release from SOS back to UOS." into base
311851e Merge "media: intel-ipu4: [VIRT] Fix 1st run hang and 3rd run crash issue when running single PG use cases." into base
623dc5a Merge "media: intel-ipu4: [VIRT] Add class_create for pipeline and psys device node." into base
7343c8b Merge "media: intel-ipu4: [VIRT] Add 32 bits IOTCL support for IPU PSYS virtualization." into base
4cdd2b2 Merge "media: intel-ipu4: [VIRT] Add support for IPU_IOC_QCMD ioctl call" into base
59d6037 Merge "media: intel-ipu4: [VIRT] Add support for dqevent/poll IOCTL and file ops." into base
eac3132 Merge "media: intel-ipu4: [VIRT] Add support for getbuf/mapbuf/unmapbuf IOCTL call" into base
34a6e6a Merge "media: intel-ipu4: [VIRT] Support for PSYS BE." into base
abe3bb9 Merge "media: intel-ipu4: [VIRT] Psys mediation connected to FE" into base
206f938 Merge "media: intel-ipu4: [VIRT] Psys mediation stub para virt driver." into base
4bf25a70 Merge "media: intel-ipu4: [VIRT] Use pointer for sync data member in request struct to avoid size mismatch." into base
0356c09 Merge "media: intel-ipu4: fix build warning" into base
f9b7289 Merge "media: intel-ipu4: css: scci_IPU4_master_20181030_0713 fw release" into base
7a8a16d Merge "media: intel-ipu4: css: scci_IPU4_master_20181029_0542 fw release" into base
acd2228 Merge "media: ti964: add magna subdev for 2nd ti964" into base
4615d53 Merge "media: ti964: pdata for AS_1140" into base
bd80c9c Merge "media: intel-ipu4: be-soc: Set NV16 input format" into base
f59fc63 Merge "media: ov2775: update register setting" into base
b88b3df3 Merge "media: intel-ipu4: magna: Modify for dual magna." into base
3700188 Merge "media: intel-ipu4: ox03a10: set hflip default" into base
79b98b7 Merge "media: Buttress base addr interface" into base
d9b8515 Merge "media: ov2775: Update v4l2 ctrl setting" into base
d765f9c Merge "media: intel-ipu4: add timestamp info in driver" into base
d906cd6 Merge "drm/i915: Allow user control over preempt timeout on their important context" into base
f422524 Merge "drm/i915: Use a preemption timeout to enforce interactivity" into base
535e63e Merge "drm/i915/preemption: Select timeout when scheduling" into base
b4d07f1 Merge "drm/i915/execlists: Try preempt-reset from hardirq timer context" into base
2c1530d Merge "drm/i915/execlists: Force preemption via reset on timeout" into base
c96319e media: intel-ipu4: [VIRT] Support for IPU ACRN virtualization.
756a96b media: ipu4: add virtio depends for ipu virtio driver
ea49cb9 media: intel-ipu4: [ICI] Fix putbuf list and getbuf list out of sync issue.
6ab089f media: ici: Change ici_isys_pixelformat parameter with ICI_FORMAT_RGB565 format
74378ed media: intel-ipu4: [VIRT] Fix PSYS 2 PG operation issue.
0b1960c media: ici: Change value of ICI_FORMAT_RGB565
d90a464 media: intel-ipu4: [VIRT] Use native driver function return value for the IOCTL calls.
ce08e63 media: intel-ipu4: [VIRT] Fixed function exit to return error when failed.
33017d7 media: intel-ipu4: [VIRT] Add timeout to front end request to avoid hang task.
7f335ef media: intel-ipu4: [VIRT] Use actual object size for map_guest_phys call rather than using hard coded page size.
57d5d40 media: intel-ipu4: [VIRT] Move the PYSY buffer release from SOS back to UOS.
6067264 media: intel-ipu4: [VIRT] Fix 1st run hang and 3rd run crash issue when running single PG use cases.
1e35b9e media: intel-ipu4: [VIRT] Add class_create for pipeline and psys device node.
4147ac9 media: intel-ipu4: [VIRT] Add 32 bits IOTCL support for IPU PSYS virtualization.
2b8d53d media: intel-ipu4: [VIRT] Add support for IPU_IOC_QCMD ioctl call
cd0b8d4 media: intel-ipu4: [VIRT] Add support for dqevent/poll IOCTL and file ops.
93c1a84 media: intel-ipu4: [VIRT] Add support for getbuf/mapbuf/unmapbuf IOCTL call
0daa3a5 media: intel-ipu4: [VIRT] Support for PSYS BE.
e84b0c7 media: intel-ipu4: [VIRT] Psys mediation connected to FE
4e05bf5 media: intel-ipu4: [VIRT] Psys mediation stub para virt driver.
65efffc media: intel-ipu4: [VIRT] Use pointer for sync data member in request struct to avoid size mismatch.
2bf12c7 media: intel-ipu4: fix build warning
8561cf4 media: intel-ipu4: css: scci_IPU4_master_20181030_0713 fw release
07675a2 media: intel-ipu4: css: scci_IPU4_master_20181029_0542 fw release
eff9e0b media: ti964: add magna subdev for 2nd ti964
d6b5697 media: ti964: pdata for AS_1140
4341f6d media: intel-ipu4: be-soc: Set NV16 input format
5b61764 media: ov2775: update register setting
4344ddc media: intel-ipu4: magna: Modify for dual magna.
eb975c6 media: intel-ipu4: ox03a10: set hflip default
2c8b2dc media: Buttress base addr interface
1358362 media: ov2775: Update v4l2 ctrl setting
de1c5e1 media: intel-ipu4: add timestamp info in driver
95a7d5c drm/i915: Allow user control over preempt timeout on their important context
a3cd919 drm/i915: Use a preemption timeout to enforce interactivity
cab2746 drm/i915/preemption: Select timeout when scheduling
eb77ed8 drm/i915/execlists: Try preempt-reset from hardirq timer context
6bf5601 drm/i915/execlists: Force preemption via reset on timeout
6430c87 rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
8ecdb9d Merge "mei: dal: fix a race in bh_request()" into base
016f1f9 Merge "mei: dal: fix race in bh_request completion" into base
93bf89a Merge "mei: virtio: fix queue flush with non empty vtag list" into base
eb66a25 Merge "x86: vdso: Pass --eh-frame-hdr to ld" into base
d8280d1 mei: dal: fix a race in bh_request()
c5deebf mei: dal: fix race in bh_request completion
a50cac2 mei: virtio: fix queue flush with non empty vtag list
2279822 Merge changes from topic 'acrn_ww51.3' into base
baae5e3 x86: vdso: Pass --eh-frame-hdr to ld
4e24ac8 ASoc: Intel: Skylake: Pass correct parameter to acrn_ioreq_complete_request function
d5d79e9 virtio_blk: add discard and write zeroes support
731aa83 VBS-K: use kernel virtio header files
b50e0f3 drm/i915/gvt: emulate correct state of SKL_FUSE_STATUS on BXT
e5fe756 Kernel/VHM: Refine the usage of spinlock in VHM
2966146 Kernel/VHM: VM_list changes the lock from mutex to rw_lock to avoid sleeping
9b9078d kernel/VHM: Add the vm owner for each ioreq_client to release vhm_vm after releasing client
185e8ff vhm: Correct the parameters usage in find_next_bit
5654cf5 VHM: Check null-pointer of vhm_req before updating state of emulated io_request
888b529 ASoc: Intel: Skylake: Fix build issue in skl virtio driver
bbc69af Asoc: Intel: Skylake: display firmware name and version
f6b17f3 platform/x86: sep, socwatchhv driver and code-formatting fixes
4706c87 ASoC: tdf8532: Account for critical sections.
5e94049 Merge "REVERTME: ASoC: Add error handling for stream events in soc_pcm_prepare" into base
56aa33a Merge "ASoC: Intel: Skylake: Virt: Add virtualization layer to skl driver" into base
17f3ea9 Merge "ASoC: Intel: Skylake: Workarounds for virtualization" into base
7d01b5d Merge "ASoC: Intel: Skylake: Notify BE about stream update" into base
f260415 Merge "ASoC: Intel: Skylake: Register virtualization BE service" into base
1fb49e2 Merge "ASoC: Intel: Skylake: Add support for Virtio SST" into base
ff18ef8 Merge "tc: Add support for configuring the taprio scheduler" into base
bf673e6 Merge "ASoC: Intel: Skylake: Add Kconfig options for virtualization" into base
7fb6751 Merge "ASoC: Intel: Skylake: Modify skl_platform_register" into base
8d66ee0 Merge "ASoC: Intel: Skylake: Export skylake functions for virtio." into base
0ce69aa Merge "i915: make driver init async" into base
4c4b0b5 i915: make driver init async
799c0b9 Merge changes Ib176f84a,I13756406,I026c991f,I2d5ad9a8,If4d14f37, ... into base
75cae28 i915: temporarily disable a gem assert
420fc52 REVERTME: ASoC: Add error handling for stream events in soc_pcm_prepare
4dfae03 Kernel/VHM: refine the refcnt of vhm_vm so that vhm_vm exists before ioreq_client is released
a0776e6 kernel/VHM: Fix race condition in ioreq_client by using refcnt and idr mechanism
8cf33a2 Kernel/VHM: Use the traped pci_access addr based on VM instead of static global variable
26d8d65 Kernel/VHM: Use the bit_op to remove the volatile definition in ioreq_client
57d2674a Revert "drm/i915/gvt: hard code Pipe B plane owner to UOS"
f4ae0c0 drm/i915/gvt: remove tag from vGPU context ID before check
fad792b drm/i915/gvt: fix gvtbuffer ioctl tile format issue
28b346f VBS: export vbs symbols
a52cad1 vhm: remove "reserve memory for trusty"
cb2e039 HVLog: Fix typo and refine sbuf_hvlog_index
0018157 vhm: support polling mode of ioreq completion
a4c6f83 vhm: mark ioreq completed in acrn_ioreq_complete_request
b05dc73 vhm: Add ioctl IC_CLEAR_VM_IOREQ to cleanup VM ioreqs
19990a2 SOS: Guest x2APIC support for SOS
2bb1c0d Fixing doc build caused by linux/vbs/vbs.h
89cc5e4 kernel: Revert "x86:acrn: add write_msi pv ops to intercept pci msi write with pv method"
16614c1 Merge "sdhci: fix the timeout check window for clock and reset" into base
f1d6d19 tc: Add support for configuring the taprio scheduler
f06a40b ASoC: Intel: Skylake: Virt: Add virtualization layer to skl driver
e14cdd4 ASoC: Intel: Skylake: Workarounds for virtualization
2665897 ASoC: Intel: Skylake: Notify BE about stream update
c34730a ASoC: Intel: Skylake: Register virtualization BE service
0f753aa ASoC: Intel: Skylake: Add support for Virtio SST
c65cd19 ASoC: Intel: Skylake: Add Kconfig options for virtualization
d1fc8d7 ASoC: Intel: Skylake: Modify skl_platform_register
e948793 ASoC: Intel: Skylake: Export skylake functions for virtio.

Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
2019-01-19 11:23:42 +08:00
classes rmc: remove 2018-07-16 16:53:00 +08:00
conf conf/machine: set preferred kernel to 4.19 2018-12-17 15:33:12 +08:00
custom-licenses custom-licenses: remove BSD_LMS 2018-12-06 07:36:13 +08:00
documentation/secureboot rmc: remove 2018-07-16 16:53:00 +08:00
lib/oeqa/selftest/cases Add secureboot selftests 2017-08-30 14:25:25 -07:00
recipes-bsp thermald: 1.7.2 -> 1.8 2018-09-27 10:29:14 +08:00
recipes-core microcode: upgrade 20180703 -> 20180807 2018-08-13 09:29:46 +08:00
recipes-graphics metrics-discovery: Initial recipe for Metrics Discovery API 2019-01-13 14:22:07 +08:00
recipes-kernel linux-intel/4.19: update SRCREV for 4.19.8 2019-01-19 11:23:42 +08:00
recipes-multimedia intel-vaapi-driver: 2.2.0 -> 2.3.0 2018-12-17 15:33:16 +08:00
recipes-rt/images core-image-rt-sdk: make sure that we append to DEPENDS 2018-06-21 07:30:06 +08:00
recipes-selftest/images meta-intel: Reorganize the layout to remove common 2017-11-20 15:33:02 -08:00
recipes-support/sbsigntool meta-intel: Reorganize the layout to remove common 2017-11-20 15:33:02 -08:00
wic wic: add wks for enabling grub-efi bootloader 2018-06-04 16:00:42 +08:00
.gitignore add .gitignore 2017-10-09 11:59:31 -07:00
CHANGELOG CHANGELOG: Add major rocko changes 2017-10-17 12:42:45 -07:00
COPYING.MIT COPYING.MIT: Add COPYING file 2017-03-23 10:32:56 -07:00
LICENSE LICENSE: Add file 2017-03-23 10:33:42 -07:00
MAINTAINERS MAINTAINERS: update to current maintainers 2018-11-28 11:29:39 +08:00
README README: point to correct branch for master 2018-11-28 11:29:39 +08:00
README.sources README: update for sumo release requirements 2018-05-17 15:04:55 +08:00

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: master

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


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.