![]() Also has cache changes aimed towards -tiny improvements. From linux-yocto-4.4: eb391bc Merge branch 'standard/base' into standard/intel/base ad8b1d6 Merge tag 'v4.4.41' into standard/base 44ce068 Merge branch 'standard/base' into standard/intel/base 1241944 Merge tag 'v4.4.40' into standard/base b787096 Merge branch 'standard/base' into standard/intel/base 9f87e1e Merge tag 'v4.4.39' into standard/base d9d2617 Merge branch 'standard/base' into standard/intel/base 1a83b80 Merge tag 'v4.4.38' into standard/base 65816c1 Merge branch 'standard/base' into standard/intel/base 55c936a Merge tag 'v4.4.37' into standard/base cdd86b9 Linux 4.4.41 9f11a0a net: mvpp2: fix dma unmapping of TX buffers for fragments d857273 sg_write()/bsg_write() is not fit to be called under KERNEL_DS 7fb5a93 kconfig/nconf: Fix hang when editing symbol with a long prompt e321f38 target/user: Fix use-after-free of tcmu_cmds if they are expired e5de1c7 powerpc: Convert cmp to cmpd in idle enter sequence cadaba8 powerpc/ps3: Fix system hang with GCC 5 builds 8a2bcaa nfs_write_end(): fix handling of short copies b66e312 libceph: verify authorize reply on connect edfe6a7 PCI: Check for PME in targeted sleep state 8db0075 Input: drv260x - fix input device's parent assignment 44685f0 media: solo6x10: fix lockup by avoiding delayed register write 952a9f5 IB/cma: Fix a race condition in iboe_addr_get_sgid() b7f73ad IB/multicast: Check ib_find_pkey() return value 7b13692 IPoIB: Avoid reading an uninitialized member variable 0de381c IB/mad: Fix an array index check e945df4 fgraph: Handle a case where a tracer ignores set_graph_notrace 88e4144 platform/x86: asus-nb-wmi.c: Add X45U quirk 2ef502e ftrace/x86_32: Set ftrace_stub to weak to prevent gcc from using short jumps to it 19aa9c1 kvm: nVMX: Allow L1 to intercept software exceptions (#BP and #OF) 129e432 KVM: PPC: Book3S HV: Don't lose hardware R/C bit updates in H_PROTECT ddf5718 KVM: PPC: Book3S HV: Save/restore XER in checkpointed register state 1c8841c9 md/raid5: limit request size according to implementation limits d78006d sc16is7xx: Drop bogus use of IRQF_ONESHOT b988320 s390/vmlogrdr: fix IUCV buffer allocation 656c9ab firmware: fix usermode helper fallback loading 429a533 ARC: mm: arc700: Don't assume 2 colours for aliasing VIPT dcache dbb67e1 scsi: avoid a permanent stop of the scsi device's request queue 565ae61 scsi: zfcp: fix rport unblock race with LUN recovery 3b3739d scsi: zfcp: do not trace pure benign residual HBA responses at default level 1cc0f94 scsi: zfcp: fix use-after-"free" in FC ingress path after TMF bccd7874 scsi: megaraid_sas: Do not set MPI2_TYPE_CUDA for JBOD FP path for FW which does not support JBOD sequence map 49ea065 scsi: megaraid_sas: For SRIOV enabled firmware, ensure VF driver waits for 30secs before reset edf1169 vt: fix Scroll Lock LED trigger name f4f02a8 block: protect iterate_bdevs() against concurrent close abb7881 mei: request async autosuspend at the end of enumeration 1f9c91a drivers/gpu/drm/ast: Fix infinite loop if read fails 970dc8c drm/gma500: Add compat ioctl 0e0b70f drm/radeon: add additional pci revision to dpm workaround 62a2724 drm/radeon: Hide the HW cursor while it's out of bounds deac395 drm/radeon: Also call cursor_move_locked when the cursor size changes cb8d63d drm/nouveau/i2c/gk110b,gm10x: use the correct implementation adea4a7 drm/nouveau/fifo/gf100-: protect channel preempt with subdev mutex d32d4b3 drm/nouveau/ltc: protect clearing of comptags with mutex 3a2990e drm/nouveau/bios: require checksum to match for fast acpi shadow method a163451 drm/nouveau/kms: lvds panel strap moved again on maxwell 69e236e ACPI / video: Add force_native quirk for HP Pavilion dv6 2c2375e ACPI / video: Add force_native quirk for Dell XPS 17 L702X 01b6089 staging: comedi: ni_mio_common: fix E series ni_ai_insn_read() data 5283a7b staging: comedi: ni_mio_common: fix M Series ni_ai_insn_read() data mask e692ede thermal: hwmon: Properly report critical temperature in sysfs 9d9541d clk: bcm2835: Avoid overwriting the div info when disabling a pll_div clk e01b04b timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion 96ea1b9 regulator: stw481x-vmmc: fix ages old enable error 842ec27 mmc: sdhci: Fix recovery from tuning timeout dae7cb4 ath9k: Really fix LED polarity for some Mini PCI AR9220 MB92 cards. b63929e cfg80211/mac80211: fix BSS leaks when abandoning assoc attempts 05f4183 rtlwifi: Fix enter/exit power_save f5d90f43 ssb: Fix error routine when fallback SPROM fails a3edc7b Linux 4.4.40 7a2b4ee ppp: defer netns reference release for ppp channel 37de955 driver core: fix race between creating/querying glue dir and its cleanup f85a337 xfs: set AGI buffer type in xlog_recover_clear_agi_bucket fdb17dd arm/xen: Use alloc_percpu rather than __alloc_percpu 9397e79 xen/gntdev: Use VM_MIXEDMAP instead of VM_IO to avoid NUMA balancing 00a0de0 tpm xen: Remove bogus tpm_chip_unregister f93777c kernel/debug/debug_core.c: more properly delay for secondary CPUs f2b8b34 kernel/watchdog: use nmi registers snapshot in hardlockup handler 597f9c0 CIFS: Fix a possible memory corruption in push locks a9c69e1 CIFS: Fix missing nls unload in smb2_reconnect() f0b7154 CIFS: Fix a possible memory corruption during reconnect 6dcb01e ASoC: intel: Fix crash at suspend/resume without card registration 701ec6e dm space map metadata: fix 'struct sm_metadata' leak on failed create 85290a1 dm crypt: mark key as invalid until properly loaded 9188611 dm flakey: return -EINVAL on interval bounds error in flakey_ctr() f0898dc blk-mq: Do not invoke .queue_rq() for a stopped queue c53af76 usb: gadget: composite: always set ep->mult to a sensible value b35f34f exec: Ensure mm->user_ns contains the execed files 0812936 fs: exec: apply CLOEXEC before changing dumpable task flags 14d8e5c mm/vmscan.c: set correct defer count for shrinker ffef163 loop: return proper error from loop_queue_rq() 011ded9 f2fs: set ->owner for debugfs status file's file_operations 3460edf ext4: do not perform data journaling when data is encrypted 36af7cd ext4: return -ENOMEM instead of success 519a301 ext4: reject inodes with negative size f655b35 ext4: add sanity checking to count_overhead() 3995881 ext4: fix in-superblock mount options processing 3865880 ext4: use more strict checks for inodes_per_block on mount 7b74c35 ext4: fix stack memory corruption with 64k block size 26492d8 ext4: fix mballoc breakage with 64k block size 4b60509 crypto: caam - fix AEAD givenc descriptors 1c1f15f ptrace: Capture the ptracer's creds not PT_PTRACE_CAP 03eed7a mm: Add a user_ns owner to mm_struct and fix ptrace permission checks d80411d block_dev: don't test bdev->bd_contains when it is not stable 85cfbd9 btrfs: make file clone aware of fatal signals 323ffc0 Btrfs: don't BUG() during drop snapshot 1078000 Btrfs: fix memory leak in do_walk_down 5a9b659 Btrfs: don't leak reloc root nodes on error 8ca6845 Btrfs: return gracefully from balance if fs tree is corrupted 78a587c Btrfs: bail out if block group has different mixed flag 25ee81e Btrfs: fix memory leak in reading btree blocks 5902022 clk: ti: omap36xx: Work around sprz319 advisory 2.1 119b665 ALSA: hda: when comparing pin configurations, ignore assoc in addition to seq f0ea0ad ALSA: hda - Gate the mic jack on HP Z1 Gen3 AiO fa695bd ALSA: hda - fix headset-mic problem on a Dell laptop faff777f ALSA: hda - ignore the assoc and seq when comparing pin configurations 518fca8 ALSA: hda/ca0132 - Add quirk for Alienware 15 R2 2016 2934806 ALSA: hiface: Fix M2Tech hiFace driver sampling rate change d0ba0f6 ALSA: usb-audio: Add QuickCam Communicate Deluxe/S7500 to volume_control_quirks cbb2a25 USB: UHCI: report non-PME wakeup signalling for Intel hardware 8ede2d7 usb: gadget: composite: correctly initialize ep->maxpacket c67c2ed usb: gadget: f_uac2: fix error handling at afunc_bind 747b31526 usb: hub: Fix auto-remount of safely removed or ejected USB-3 devices acca3cf USB: cdc-acm: add device id for GW Instek AFG-125 5d6a392 USB: serial: kl5kusb105: fix open error path 6a6e113 USB: serial: option: add dlink dwm-158 17907f2 USB: serial: option: add support for Telit LE922A PIDs 0x1040, 0x1041 1f5adad Btrfs: fix qgroup rescan worker initialization b5e715e btrfs: store and load values of stripes_min/stripes_max in balance status item 919b74b Btrfs: fix tree search logic when replaying directory entry deletes 0d619cf btrfs: limit async_work allocation and worker func duration a34f0e8 Linux 4.4.39 5d488de crypto: rsa - Add Makefile dependencies to fix parallel builds 1c0f4e0 hotplug: Make register and unregister notifier API symmetric 537e42d batman-adv: Check for alloc errors when preparing TT local data f03531d m68k: Fix ndelay() macro 55e15b2 arm64: futex.h: Add missing PAN toggling e29949e can: peak: fix bad memory access and free sequence 083021b can: raw: raw_setsockopt: limit number of can_filter that can be set 9a3baed crypto: mcryptd - Check mcryptd algorithm compatibility c4db8a7 perf/x86: Fix full width counter, counter overflow c6a5bf4 locking/rtmutex: Use READ_ONCE() in rt_mutex_owner() b27d914 locking/rtmutex: Prevent dequeue vs. unlock race e286b6c zram: restrict add/remove attributes to root only a0bd6aa parisc: Fix TLB related boot crash on SMP machines 605f315 parisc: Remove unnecessary TLB purges from flush_dcache_page_asm and flush_icache_page_asm db95986 parisc: Purge TLB before setting PTE 4bcea47 powerpc/eeh: Fix deadlock when PE frozen state can't be cleared c95b7f1 Linux 4.4.38 52783ad esp6: Fix integrity verification when ESN are used 3bf28ce esp4: Fix integrity verification when ESN are used 2176ec1 ipv4: Set skb->protocol properly for local output 25d8b7c ipv6: Set skb->protocol properly for local output d41fb2f Don't feed anything but regular iovec's to blk_rq_map_user_iov fd1aa12 constify iov_iter_count() and iter_is_iovec() 899b605 sparc64: fix compile warning section mismatch in find_node() ed7b60d sparc64: Fix find_node warning if numa node cannot be found 438e91d sparc32: Fix inverted invalid_frame_pointer checks on sigreturns 06cdad2 net: ping: check minimum size on ICMP header length 7712581 net: avoid signed overflows for SO_{SND|RCV}BUFFORCE 6e682c5 geneve: avoid use-after-free of skb->data a89e2ff sh_eth: remove unchecked interrupts for RZ/A1 c36a2a1 net: bcmgenet: Utilize correct struct device for all DMA operations 5a01eaf packet: fix race condition in packet_set_ring 1a15519 net/dccp: fix use-after-free in dccp_invalid_packet baaf0c6 netlink: Do not schedule work from sk_destruct d1ed9c1 netlink: Call cb->done from a worker thread 6c42bd6 net/sched: pedit: make sure that offset is valid cfa7c16 net, sched: respect rcu grace period on cls destruction 94de6f2 net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link change 56366fa l2tp: fix racy SOCK_ZAPPED flag check in l2tp_ip{,6}_bind() aece024 rtnetlink: fix FDB size computation 6ef59b9 af_unix: conditionally use freezable blocking calls in read acf9504 net: sky2: Fix shutdown crash 49695d1 ip6_tunnel: disable caching when the traffic class is inherited 2b54505c net: check dead netns for peernet2id_alloc() 790fd11 virtio-net: add a missing synchronize_net() e5f84c1 Linux 4.4.37 71710cd arm64: suspend: Reconfigure PSTATE after resume from idle d24207a arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call da643dc arm64: cpufeature: Schedule enable() calls instead of calling them via IPI 4fd108f pwm: Fix device reference leak d7a2c25 mwifiex: printk() overflow with 32-byte SSIDs ac6e42d PCI: Set Read Completion Boundary to 128 iff Root Port supports it (_HPX) 140ff0a PCI: Export pcie_find_root_port dfb704f rcu: Fix soft lockup for rcu_nocb_kthread 58cebd1 ALSA: pcm : Call kill_fasync() in stream lock 5a5f703 x86/traps: Ignore high word of regs->cs in early_fixup_exception() 9957616 kasan: update kasan_global for gcc 7 61ab624 zram: fix unbalanced idr management at hot removal 5b2ed6e ARC: Don't use "+l" inline asm constraint From yocto-kernel-cache: 78a2618 kver: bump to v4.4.41 4c31a11 netfilter: iptables: enable NAT tables 7da5624 intel-quark: Remove support for serial-all e40d731 features/usb/serial: Add new usb serial feature c52e3dd soc/x1000: Remove 'default policy' features 25f79db soc/x1000: Remove unnecessary features 515c6c8 soc/x1000: Remove bsp/common-pc/* 7bcdf22 meta/intel-common: Have intel-quark-tiny use common-drivers-32-essential 61c6254 meta/intel-common: Add intel-common-drivers-32-essential feature 2f5a9b0 meta: Add lto-debug feature eb30623 meta: Add lto-disable feature 59d3c20 meta: Add lto (Link-Time Optimization) enablement feature Signed-off-by: California Sullivan <california.l.sullivan@intel.com> |
||
---|---|---|
classes | ||
common | ||
conf | ||
documentation/rmc | ||
meta-tlk | ||
scripts/lib/wic/canned-wks | ||
MAINTAINERS | ||
README | ||
README.sources |
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
URI: git://git.yoctoproject.org/meta-intel layers: intel branch: master
Table of Contents
I. Overview II. Building and booting meta-intel BSP layers a. Building the intel-common and quark BSP layers b. Booting the intel-common BSP images c. Booting the intel-quark BSP image on a Galileo board III. Technical Miscellany 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 and intel-quark BSPs, 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 and quark BSPs, 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 and quark 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 and quark 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-core2-32 Intel® Common Core BSP (Intel-quark)
- 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--, 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.
-
intel-quark
This BSP is optimized for Quark-based systems.
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 a live 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 downloaded the BSP tarball, you will find bootable images in the /binary directory. 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.
The BSP /binary directory or build contains bootable live images, which can be used to directly boot Yocto off of a USB flash drive.
Under Linux, insert a USB flash drive. Assuming the USB flash drive takes device /dev/sdf, use dd to copy the live image to it. For example:
dd if=core-image-sato-intel-corei7-64.hddimg of=/dev/sdf
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
c. Booting the intel-quark BSP image on a Galileo board
If you downloaded the BSP tarball, you will find bootable images in the /binary directory. 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.
The Galileo board can boot off of either an SD card or USB storage media that has a special disk layout. The 'wic' tool can be used to create directly bootable images for either of the two formats via the following steps.
If you haven't already, you need to build parted-native. (You will get an error message when running the wic script if you haven't.)
$ bitbake parted-native
Use the wic script to create an SD card image:
$ wic list images
galileodisk-sd Create an Galileo Gen 1/2 disk image (SD card)
galileodisk-usb Create an Galileo Gen 1/2 disk image (USB Storage)
mkgummidisk Create an EFI disk image
Assuming you want to boot the 'core-image-minimal' image for SD card media:
$ wic create galileodisk-sd -e core-image-minimal
If successful, the wic script generates the image and prints its location:
Info: The new image(s) can be found here:
/var/tmp/wic/build/galileodisk-sd-201604211444-mmcblk0.direct
...
Write the output image to an SD Card
$ sudo dd if=/path/to/image/galileodisk-sd-*-mmcblk0.direct of=/dev/your_sd_dev
Insert the SD Card into the reference platform and power on.
To create a direct-boot image for USB storage media, simply specify galileodisk-usb instead of galileodisk-sd in the "wic create ..." command, then write the output image to USB storage media and boot it.
Actually, Galileo board can boot off with an image in hddimg format from USB drives too. But only live-boot, no installation, is supported at this point. An image in hddimg format is generated when you build quark BSP. You can follow the procedure in II.b to use dd command to prepare your USB drive, then press F7 key as what board prompts when it boots. Galileo should show a boot option menu for you to choose the UEFI USB boot option for the drive to boot the system. If the board already passes this stage and show a grub boot menu, you can press 'c' key and then type "quit" in grub shell. The board should come back to the UEFI boot menu.
III. Technical Miscellany
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:
- include a configuration line such as the below in bblayers.conf BBLAYERS += "/meta-intel"
- 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
Of the BSPs currently included in meta-intel, the following have passed initial testing with the intel-common BSPs:
intel-corei7-64:
crystalforest-server
crystalforest-gladden
haswell-wc
nuc (Ivy Bridge and Haswell, manual audio config required)
sugarbay
intel-core2-32:
<currently under test>
If you are interested in a BSP not listed here, chances are we are currently working on resolving some configuration issues with it. Please check the bugzilla and check in with us on the meta-intel mailing list.
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 '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.
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.