mirror of
git://git.yoctoproject.org/meta-intel
synced 2026-01-01 13:58:05 +00:00
The microcode data file released by Intel has microcode for many Intel processors, which by default all get installed onto the target image. In some situations it may desirable to choose microcode for only a selected processor or processors. This change provides an easier way to filter and select only the microcode of interest for BSPs from recipe space. A new variable, UCODE_FILTER_PARAMETERS, is introduced, which can be defined to contain parameters to the iucode_tool which will filter the microcode of interest for the BSP under consideration. More information on the iucode-tool parameters is available here: http://manned.org/iucode-tool. This filtering makes the generated microcode files very machine-specific, hence making the recipe machine-specific. BSPs using the common Intel kernel will not be using the filtered microcode, and will be able to share the intel-microcode packages with the common Intel package arch for the recipe. Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Acked-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com>
66 lines
2.3 KiB
BlitzBasic
66 lines
2.3 KiB
BlitzBasic
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"
|
|
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"
|
|
|
|
RDEPENDS_${PN} = "iucode-tool"
|
|
DEPENDS = "iucode-tool-native"
|
|
S = "${WORKDIR}"
|
|
|
|
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
inherit deploy
|
|
|
|
# Use any of the iucode_tool parameters to filter specific microcodes from the data file
|
|
# For further information, check the iucode-tool's manpage : http://manned.org/iucode-tool
|
|
UCODE_FILTER_PARAMETERS ?= ""
|
|
|
|
do_compile() {
|
|
mkdir -p ${WORKDIR}/ucode/kernel/x86/microcode
|
|
${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \
|
|
${UCODE_FILTER_PARAMETERS} \
|
|
--overwrite \
|
|
--write-to=${WORKDIR}/microcode_${PV}.bin \
|
|
${WORKDIR}/microcode.dat
|
|
|
|
${STAGING_DIR_NATIVE}${sbindir_native}/iucode_tool \
|
|
${UCODE_FILTER_PARAMETERS} \
|
|
--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}"
|