microcode-data: add USE=initramfs #528712
authorMike Frysinger <vapier@gentoo.org>
Tue, 11 Aug 2015 06:06:23 +0000 (02:06 -0400)
committerMike Frysinger <vapier@gentoo.org>
Tue, 11 Aug 2015 06:18:13 +0000 (02:18 -0400)
This flag quickly generates a small initramfs that the kernel needs to
load the microcode at boot time.  This way people don't have to figure
out the right incantations themselves.

sys-apps/microcode-data/metadata.xml
sys-apps/microcode-data/microcode-data-20150121-r1.ebuild

index 09a573a327e1abf6803c8dc2fe7e41138c72fca0..4cf02687d1a89e8687f09e6e5bdde40bf8766af3 100644 (file)
@@ -3,6 +3,7 @@
 <pkgmetadata>
 <herd>base-system</herd>
 <use>
+       <flag name='initramfs'>install a small initramfs for use with CONFIG_MICROCODE_EARLY</flag>
        <flag name='monolithic'>install the large text microcode.dat (used by older kernels via microcode_ctl)</flag>
        <flag name='split-ucode'>install the split binary ucode files (used by the kernel directly)</flag>
 </use>
index ca78889a28848c590caa417a7e454ca6b72228ce..70a89d75b947fa14e643e0db1098584e2e0f045b 100644 (file)
@@ -17,8 +17,8 @@ SRC_URI="http://downloadmirror.intel.com/${NUM}/eng/microcode-${PV}.tgz"
 LICENSE="intel-ucode"
 SLOT="0"
 KEYWORDS="-* ~amd64 ~x86"
-IUSE="monolithic +split-ucode"
-REQUIRED_USE="|| ( monolithic split-ucode )"
+IUSE="initramfs monolithic +split-ucode"
+REQUIRED_USE="|| ( initramfs monolithic split-ucode )"
 
 RDEPEND="!<sys-apps/microcode-ctl-1.17-r2" #268586
 
@@ -30,6 +30,10 @@ src_unpack() {
 }
 
 src_compile() {
+       if use initramfs ; then
+               iucode_tool --write-earlyfw=microcode.cpio microcode.dat || die
+       fi
+
        if use split-ucode ; then
                tc-env_build emake intel-microcode2ucode
                ./intel-microcode2ucode microcode.dat || die
@@ -38,6 +42,7 @@ src_compile() {
 
 src_install() {
        insinto /lib/firmware
+       use initramfs && doins microcode.cpio
        use monolithic && doins microcode.dat
        use split-ucode && doins -r intel-ucode
 }