[meta-intel] [Patch v4 3/6] intel-microcode: a recipe for Intel microcode datafile

Kamble, Nitin A nitin.a.kamble at intel.com
Fri Jul 25 09:49:09 PDT 2014


This recipe is in current state marked as click-through license, needing a special license specified in LICENSE_FLAGS_WHITELIST var. In this state the recipe can not be enabled by default.

Also worth noting here is that,
  * This recipe is similar to linux-firmware recipe, which does not use the whitelist flags for license.
  * Linux distributions like redhat are enabling microcode loading without any special license agreement requirements
  * AMD is shipping microcode in the linux-firmware package
  * Intel microcode is also planned to be distributed through the linux-firmware repo. (https://fedorahosted.org/microcode_ctl/) I will ping internally who is responsible for it, as this is not happening as of now.

Maybe we can wait for the intel microcode to go intoe linux-firmware, then this recipe will not be needed at all. But for that to happen intel-microcode needs to show up in the linux-firmware repo, and I will push on that instead of pushing this recipe.

Thanks,
Nitin

> -----Original Message-----
> From: Kamble, Nitin A
> Sent: Friday, July 18, 2014 5:18 PM
> To: Zanussi, Tom; Hart, Darren; richard.purdie at linuxfoundation.org; Burton,
> Ross
> Cc: meta-intel at yoctoproject.org; Kamble, Nitin A
> Subject: [Patch v4 3/6] intel-microcode: a recipe for Intel microcode datafile
> 
> From: Nitin A Kamble <nitin.a.kamble at intel.com>
> 
> This recipe provides the microcode datafile for Intel Processors.
> 
> The recipe provides:
>  1. microcode.dat file for microcode updating from user space with the
>     iucode-tool utility.
>  2. the microcode cpio file which gets bundled with the initrd to support
>     microcode loading at early boot time.
> 
> Note that this recipe has LICENSE_FLAGS so will need to be whitelisted
> before it's usable.
> 
> [ YOCTO #5114 ]
> 
> Signed-off-by: Ross Burton <ross.burton at intel.com>
> Signed-off-by: Nitin A Kamble <nitin.a.kamble at intel.com>
> ---
>  common/custom-licenses/Intel-Microcode-License     | 123
> +++++++++++++++++++++
>  .../microcode/intel-microcode_20140624.bb          |  53 +++++++++
>  2 files changed, 176 insertions(+)
>  create mode 100644 common/custom-licenses/Intel-Microcode-License
>  create mode 100644 common/recipes-core/microcode/intel-
> microcode_20140624.bb
> 
> diff --git a/common/custom-licenses/Intel-Microcode-License
> b/common/custom-licenses/Intel-Microcode-License
> new file mode 100644
> index 0000000..af5b41c
> --- /dev/null
> +++ b/common/custom-licenses/Intel-Microcode-License
> @@ -0,0 +1,123 @@
> +INTEL SOFTWARE LICENSE AGREEMENT
> +
> +IMPORTANT - READ BEFORE COPYING, INSTALLING OR USING.
> +Do not use or load this software and any associated materials
> +(collectively, the "Software") until you have carefully read the
> +following terms and conditions. By loading or using the Software, you
> +agree to the terms of this Agreement. If you do not wish to so agree, do not
> install or use the Software.
> +
> +LICENSES: Please Note:
> +- If you are a network administrator, the "Site License" below shall
> +apply to you.
> +- If you are an end user, the "Single User License" shall apply to you.
> +- If you are an original equipment manufacturer (OEM), the "OEM License"
> +shall apply to you.
> +
> +SITE LICENSE. You may copy the Software onto your organization's
> +computers for your organization's use, and you may make a reasonable
> +number of back-up copies of the Software, subject to these conditions:
> +
> +1. This Software is licensed for use only in conjunction with Intel
> +component products. Use of the Software in conjunction with non-Intel
> +component products is not licensed hereunder.
> +2. You may not copy, modify, rent, sell, distribute or transfer any
> +part of the Software except as provided in this Agreement, and you
> +agree to prevent unauthorized copying of the Software.
> +3. You may not reverse engineer, decompile, or disassemble the Software.
> +4. You may not sublicense or permit simultaneous use of the Software by
> +more than one user.
> +5. The Software may include portions offered on terms in addition to
> +those set out here, as set out in a license accompanying those portions.
> +
> +SINGLE USER LICENSE. You may copy the Software onto a single computer
> +for your personal, noncommercial use, and you may make one back-up
> copy
> +of the Software, subject to these conditions:
> +
> +1. This Software is licensed for use only in conjunction with Intel
> +component products. Use of the Software in conjunction with non-Intel
> +component products is not licensed hereunder.
> +2. You may not copy, modify, rent, sell, distribute or transfer any
> +part of the Software except as provided in this Agreement, and you
> +agree to prevent unauthorized copying of the Software.
> +3. You may not reverse engineer, decompile, or disassemble the Software.
> +4. You may not sublicense or permit simultaneous use of the Software by
> +more than one user.
> +5. The Software may include portions offered on terms in addition to
> +those set out here, as set out in a license accompanying those portions.
> +
> +OEM LICENSE: You may reproduce and distribute the Software only as an
> +integral part of or incorporated in Your product or as a standalone
> +Software maintenance update for existing end users of Your products,
> +excluding any other standalone products, subject to these conditions:
> +
> +1. This Software is licensed for use only in conjunction with Intel
> +component products. Use of the Software in conjunction with non-Intel
> +component products is not licensed hereunder.
> +2. You may not copy, modify, rent, sell, distribute or transfer any
> +part of the Software except as provided in this Agreement, and you
> +agree to prevent unauthorized copying of the Software.
> +3. You may not reverse engineer, decompile, or disassemble the Software.
> +4. You may only distribute the Software to your customers pursuant to a
> +written license agreement. Such license agreement may be a "break-the-
> +seal" license agreement. At a minimum such license shall safeguard
> +Intel's ownership rights to the Software.
> +5. The Software may include portions offered on terms in addition to
> +those set out here, as set out in a license accompanying those portions.
> +
> +NO OTHER RIGHTS. No rights or licenses are granted by Intel to You,
> +expressly or by implication, with respect to any proprietary
> +information or patent, copyright, mask work, trademark, trade secret,
> +or other intellectual property right owned or controlled by Intel,
> +except as expressly provided in this Agreement.
> +
> +OWNERSHIP OF SOFTWARE AND COPYRIGHTS. Title to all copies of the
> +Software remains with Intel or its suppliers. The Software is
> +copyrighted and protected by the laws of the United States and other
> +countries, and international treaty provisions. You may not remove any
> +copyright notices from the Software. Intel may make changes to the
> +Software, or to items referenced therein, at any time without notice,
> +but is not obligated to support or update the Software. Except as
> +otherwise expressly provided, Intel grants no express or implied right
> +under Intel patents, copyrights, trademarks, or other intellectual
> +property rights. You may transfer the Software only if the recipient
> +agrees to be fully bound by these terms and if you retain no copies of the
> Software.
> +
> +LIMITED MEDIA WARRANTY. If the Software has been delivered by Intel on
> +physical media, Intel warrants the media to be free from material
> +physical defects for a period of ninety days after delivery by Intel.
> +If such a defect is found, return the media to Intel for replacement or
> +alternate delivery of the Software as Intel may select.
> +
> +EXCLUSION OF OTHER WARRANTIES. EXCEPT AS PROVIDED ABOVE, THE
> SOFTWARE
> +IS PROVIDED "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY OF
> ANY KIND
> +INCLUDING WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, OR
> FITNESS
> +FOR A PARTICULAR PURPOSE. Intel does not warrant or assume
> +responsibility for the accuracy or completeness of any information,
> +text, graphics, links or other items contained within the Software.
> +
> +LIMITATION OF LIABILITY. IN NO EVENT SHALL INTEL OR ITS SUPPLIERS BE
> +LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
> LIMITATION, LOST
> +PROFITS, BUSINESS INTERRUPTION, OR LOST INFORMATION) ARISING OUT
> OF THE
> +USE OF OR INABILITY TO USE THE SOFTWARE, EVEN IF INTEL HAS BEEN
> ADVISED
> +OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS PROHIBIT
> +EXCLUSION OR LIMITATION OF LIABILITY FOR IMPLIED WARRANTIES OR
> +CONSEQUENTIAL OR INCIDENTAL DAMAGES, SO THE ABOVE LIMITATION
> MAY NOT
> +APPLY TO YOU. YOU MAY ALSO HAVE OTHER LEGAL RIGHTS THAT VARY
> FROM JURISDICTION TO JURISDICTION.
> +
> +TERMINATION OF THIS AGREEMENT. Intel may terminate this Agreement at
> +any time if you violate its terms. Upon termination, you will
> +immediately destroy the Software or return all copies of the Software to
> Intel.
> +
> +APPLICABLE LAWS. Claims arising under this Agreement shall be governed
> +by the laws of California, excluding its principles of conflict of laws
> +and the United Nations Convention on Contracts for the Sale of Goods.
> +You may not export the Software in violation of applicable export laws and
> regulations.
> +Intel is not obligated under any other agreements unless they are in
> +writing and signed by an authorized representative of Intel.
> +
> +GOVERNMENT RESTRICTED RIGHTS. The Software is provided with
> "RESTRICTED
> +RIGHTS." Use, duplication, or disclosure by the Government is subject
> +to restrictions as set forth in FAR52.227-14 and DFAR252.227-7013 et
> +seq. or its successor. Use of the Software by the Government
> +constitutes acknowledgment of Intel's proprietary rights therein.
> +Contractor or Manufacturer is Intel
> +2200 Mission College Blvd., Santa Clara, CA 95052.
> diff --git a/common/recipes-core/microcode/intel-microcode_20140624.bb
> b/common/recipes-core/microcode/intel-microcode_20140624.bb
> new file mode 100644
> index 0000000..1355ba1
> --- /dev/null
> +++ b/common/recipes-core/microcode/intel-microcode_20140624.bb
> @@ -0,0 +1,53 @@
> +SUMMARY = "Intel Processor Microcode Datafile for Linux"
> +HOMEPAGE = "http://www.intel.com/"
> +DESCRIPTION = "The microcode data file contains the latest microcode\
> +definitions for all Intel processors. Intel releases microcode updates\
> +to correct processor behavior as documented in the respective
> +processor\  specification updates. While the regular approach to
> +getting this microcode\  update is via a BIOS upgrade, Intel realizes
> +that this can be an\  administrative hassle. The Linux operating system
> +and VMware ESX\  products have a mechanism to update the microcode
> +after booting.\  For example, this file will be used by the operating
> +system mechanism\  if the file is placed in the /etc/firmware directory of
> the Linux system."
> +
> +LICENSE = "Intel-Microcode-License"
> +LICENSE_FLAGS = "license_${PN}_${PV}"
> +LIC_FILES_CHKSUM =
> "file://microcode.dat;md5=3c3b208607a00a3d70aad3af5629f7c7"
> +
> +SRC_URI = "http://downloadmirror.intel.com/23984/eng/microcode-
> 20140624.tgz"
> +SRC_URI[md5sum] = "eec20032e6bef99dc4282c0ca317e100"
> +SRC_URI[sha256sum] =
> "b4662ac780438a7b2d87e6d26a7066feb807f37c6e5b6fa147089f4edb02ea37"
> +
> +DEPENDS = "iucode-tool-native"
> +S = "${WORKDIR}"
> +
> +inherit allarch
> +inherit deploy
> +
> +do_compile() {
> +	mkdir -p ${WORKDIR}/ucode/kernel/x86/microcode
> +	${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool --overwrite
> +--write-to=${WORKDIR}/microcode_${PV}.bin ${WORKDIR}/microcode.dat
> +
> +	${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool --overwrite
> +--write-earlyfw=${WORKDIR}/microcode_${PV}.cpio
> +${WORKDIR}/microcode.dat }
> +
> +do_install() {
> +	install -d ${D}${base_libdir}/firmware/intel-ucode/
> +	install ${WORKDIR}/microcode_${PV}.bin
> ${D}${base_libdir}/firmware/intel-ucode/
> +	cd ${D}${base_libdir}/firmware/intel-ucode/
> +	ln -sf microcode_${PV}.bin microcode.bin }
> +
> +do_deploy() {
> +	install -d ${DEPLOYDIR}
> +	install ${S}/microcode_${PV}.cpio ${DEPLOYDIR}/
> +	cd ${DEPLOYDIR}
> +	rm -f microcode.cpio
> +	ln -sf microcode_${PV}.cpio microcode.cpio }
> +
> +addtask deploy before do_build after do_compile
> +
> +PACKAGES = "${PN}"
> +
> +FILES_${PN} = "${base_libdir}"
> --
> 1.8.1.4



More information about the meta-intel mailing list