# define intel date once for reuse %define debian_date 20180312 %define intel_date 20190918 Summary: Intel / AMD CPU Microcode Name: microcode Version: 0.%{intel_date} Release: %mkrel 1 Group: System/Kernel and hardware License: Distributable # use the debian way to get microcodes for older CPUs as Intel removes old firmwares from recent releases Source0: http://http.debian.net/debian/pool/non-free/i/intel-microcode/intel-microcode_3.%{debian_date}.1.tar.xz # from https://downloadcenter.intel.com/download/27431/Linux-Processor-Microcode-Data-File # that points to: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/ Source1: https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/archive/microcode-%{intel_date}.tar.gz # AMD now pushes their microcode to upstream linux-firmware git # so this is a tarball of: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/amd-ucode Source2: amd-ucode-latest.tar.xz # AMD SEV Firmware Source3: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd/amd_sev_fam17h_model0xh.sbin Buildarch: noarch BuildRequires: iucode-tool BuildRequires: microcode_ctl # (tmb) conflict lock elision enabled glibc as it will crash Conflicts: glibc < 6:2.20-11 %description Since PentiumPro, Intel CPU are made of a RISC chip and of a microcode whose purpose is to decompose "old" ia32 instruction into new risc ones. P6 familly is concerned: PPro, PII, Celeron, PIII, Celeron2. Recent kernels have the ability to update this microcode. The microcode update is volatile and needs to be uploaded on each system boot. I.e. it doesn't reflash your cpu permanently. Reboot and it reverts back to the old microcode. This package contains microcode for Intel and Amd CPUs. %prep %setup -q -T -c %build # build the microcode file from several old ones tar xvf %{SOURCE0} pushd intel-microcode-3.%{debian_date}.1 make mkdir intel-ucode /sbin/iucode_tool -Kintel-ucode intel-microcode.bin popd %install rm -rf %{buildroot} mkdir -p %{buildroot}/lib/firmware/intel-ucode pushd intel-microcode-3.%{debian_date}.1 install -m 644 intel-ucode/* %{buildroot}/lib/firmware/intel-ucode # Intel microcodes not in debian tar xf %{SOURCE1} -C %{buildroot}/lib/firmware --strip-components=1 # move the "caveat" firmware in place as we have all needed microcode # patches and are using early firmware loading mv %{buildroot}/lib/firmware/intel-ucode-with-caveats/06-4f-01 %{buildroot}/lib/firmware/intel-ucode/ # remove unwanted stuff rm -rf %{buildroot}/lib/firmware/intel-ucode-with-caveats/ rm -rf %{buildroot}/lib/firmware/linux-kernel-patches/ rm -f %{buildroot}/lib/firmware/microcode.dat rm -f %{buildroot}/lib/firmware/releasenote rm -f %{buildroot}/lib/firmware/license # Amd microcodes tar xf %{SOURCE2} -C %{buildroot}/lib/firmware # Amd SEV Firmware mkdir -p %{buildroot}/lib/firmware/amd install -m 644 %{SOURCE3} %{buildroot}/lib/firmware/amd # add compat symlink for older kernels pushd %{buildroot}/lib/firmware/amd ln -s amd_sev_fam17h_model0xh.sbin sev.fw popd %post if [ -z "$DURING_INSTALL" ] ; then /usr/bin/dracut -f fi %clean %files %defattr(-,root,root,-) /lib/firmware/amd/ /lib/firmware/amd-ucode/ /lib/firmware/intel-ucode/ %changelog * Thu Sep 19 2019 tmb <tmb> 0.20190918-1.mga6 + Revision: 1443885 - update Intel microcode to 20190918 - update Intel microcode to 20190618 - update Amd SEV Firmware to 0.17b22 (CVE-2019-9836) - Intel Microcode updates: - new platforms * VLV C0 6-37-8/02 00000838 Atom Z series * VLV C0 6-37-8/0C 00000838 Celeron N2xxx, Pentium N35xx * VLV D0 6-37-9/0F 0000090c Atom E38xx * CHV C0 6-4c-3/01 00000368 Atom X series * CHV D0 6-4c-4/01 00000411 Atom X series * CLX-SP B1 6-55-7/bf 05000021 Xeon Scalable Gen2 - updated platforms * SNB D2/G1/Q0 6-2a-7/12 0000002e->0000002f Core Gen2 * IVB E1/L1 6-3a-9/12 00000020->00000021 Core Gen3 * HSW C0 6-3c-3/32 00000025->00000027 Core Gen4 * BDW-U/Y E0/F0 6-3d-4/c0 0000002b->0000002d Core Gen5 * IVB-E/EP C1/M1/S1 6-3e-4/ed 0000042e->0000042f Core Gen3 X Series; Xeon E5 v2 * IVB-EX D1 6-3e-7/ed 00000714->00000715 Xeon E7 v2 * HSX-E/EP Cx/M1 6-3f-2/6f 00000041->00000043 Core Gen4 X series; Xeon E5 v3 * HSX-EX E0 6-3f-4/80 00000013->00000014 Xeon E7 v3 * HSW-U C0/D0 6-45-1/72 00000024->00000025 Core Gen4 * HSW-H C0 6-46-1/32 0000001a->0000001b Core Gen4 * BDW-H/E3 E0/G0 6-47-1/22 0000001e->00000020 Core Gen5 * SKL-U/Y D0/K1 6-4e-3/c0 000000c6->000000cc Core Gen6 * BDX-ML B0/M0/R0 6-4f-1/ef 0b00002e->00000036 Xeon E5/E7 v4; Core i7-69xx/68xx * SKX-SP H0/M0/U0 6-55-4/b7 0200005a->0000005e Xeon Scalable * SKX-D M1 6-55-4/b7 0200005a->0000005e Xeon D-21xx * BDX-DE V1 6-56-2/10 00000019->0000001a Xeon D-1520/40 * BDX-DE V2/3 6-56-3/10 07000016->07000017 Xeon D-1518/19/21/27/28/31/33/37/41/48, Pentium D1507/08/09/17/19 * BDX-DE Y0 6-56-4/10 0f000014->0f000015 Xeon D-1557/59/67/71/77/81/87 * BDX-NS A0 6-56-5/10 0e00000c->0e00000d Xeon D-1513N/23/33/43/53 * APL D0 6-5c-9/03 00000036->00000038 Pentium N/J4xxx, Celeron N/J3xxx, Atom x5/7-E39xx * SKL-H/S R0/N0 6-5e-3/36 000000c6->000000cc Core Gen6; Xeon E3 v5 * DNV B0 6-5f-1/01 00000024->0000002e Atom C Series * GLK B0 6-7a-1/01 0000002c->0000002e Pentium Silver N/J5xxx, Celeron N/J4xxx * AML-Y22 H0 6-8e-9/10 0000009e->000000b4 Core Gen8 Mobile * KBL-U/Y H0 6-8e-9/c0 0000009a->000000b4 Core Gen7 Mobile * CFL-U43e D0 6-8e-a/c0 0000009e->000000b4 Core Gen8 Mobile * WHL-U W0 6-8e-b/d0 000000a4->000000b8 Core Gen8 Mobile * WHL-U V0 6-8e-d/94 000000b2->000000b8 Core Gen8 Mobile * KBL-G/H/S/E3 B0 6-9e-9/2a 0000009a->000000b4 Core Gen7; Xeon E3 v6 * CFL-H/S/E3 U0 6-9e-a/22 000000aa->000000b4 Core Gen8 Desktop, Mobile, Xeon E * CFL-S B0 6-9e-b/02 000000aa->000000b4 Core Gen8 * CFL-H/S P0 6-9e-c/22 000000a2->000000ae Core Gen9 * CFL-H R0 6-9e-d/22 000000b0->000000b8 Core Gen9 Mobile - recreate initrd of running kernel to get the new microcode available for early loading - Intel Microcode update 20190312 release - new platforms * AML-Y22 H0 6-8e-9/10 0000009e Core Gen8 Mobile * WHL-U W0 6-8e-b/d0 000000a4 Core Gen8 Mobile * WHL-U V0 6-8e-d/94 000000b2 Core Gen8 Mobile * CFL-S P0 6-9e-c/22 000000a2 Core Gen9 Desktop * CFL-H R0 6-9e-d/22 000000b0 Core Gen9 Mobile - updated platforms * HSX-E/EP Cx/M1 6-3f-2/6f 0000003d->00000041 Core Gen4 X series; Xeon E5 v3 * HSX-EX E0 6-3f-4/80 00000012->00000013 Xeon E7 v3 * SKX-SP H0/M0/U0 6-55-4/b7 0200004d->0000005a Xeon Scalable * SKX-D M1 6-55-4/b7 0200004d->0000005a Xeon D-21xx * BDX-DE V1 6-56-2/10 00000017->00000019 Xeon D-1520/40 * BDX-DE V2/3 6-56-3/10 07000013->07000016 Xeon D-1518/19/21/27/28/31/33/37/41/48, Pentium D1507/08/09/17/19 * BDX-DE Y0 6-56-4/10 0f000012->0f000014 Xeon D-1557/59/67/71/77/81/87 * BDX-NS A0 6-56-5/10 0e00000a->0e00000c Xeon D-1513N/23/33/43/53 * APL D0 6-5c-9/03 00000032->00000036 Pentium N/J4xxx, Celeron N/J3xxx, Atom x5/7-E39xx * APL E0 6-5c-a/03 0000000c->00000010 Atom x5/7-E39xx * GLK B0 6-7a-1/01 00000028->0000002c Pentium Silver N/J5xxx, Celeron N/J4xxx * KBL-U/Y H0 6-8e-9/c0 0000008e->0000009a Core Gen7 Mobile * CFL-U43e D0 6-8e-a/c0 00000096->0000009e Core Gen8 Mobile * KBL-H/S/E3 B0 6-9e-9/2a 0000008e->0000009a Core Gen7; Xeon E3 v6 * CFL-H/S/E3 U0 6-9e-a/22 00000096->000000aa Core Gen8 Desktop, Mobile, Xeon E * CFL-S B0 6-9e-b/02 0000008e->000000aa Core Gen8 - update Intel microcode to 20180807 - update Intel microcode to 2018-07-03 - update Amd Fam15h microcode to 2018-05-24 - update Intel microcode to 20180425 - update Amd fam15 and fam17 microcode to 2018-05-15 - update to Intel microcode release 20180312 - update intel microcode to 20180108 - add Amd microcode for fam17h (Zen) - update Intel microcode to 20171215 * Sun Jun 25 2017 tmb <tmb> 0.20170511-1.mga6.nonfree + Revision: 1108463 - update Intel microcode to 2017-05-11 * Sun Feb 05 2017 zezinho <zezinho> 0.20161104-2.mga6.nonfree + Revision: 1084863 - use debian way to keep microcodes for old cpus that were removed by intel in recent dat files * Wed Feb 01 2017 zezinho <zezinho> 0.20161104-1.mga6.nonfree + Revision: 1084457 - new intel microcode from 4 Nov 2016 * Fri May 13 2016 tv <tv> 0.20160513-1.mga6.nonfree + Revision: 1014907 - update Intel microcode (& adjust spec file to current update-intel-microcode) - AMD microcode wasn't updated as the one downloaded by the script looks older than the one tmb uploaded last time (???) * Sat Apr 09 2016 tmb <tmb> 0.20160409-1.mga6.nonfree + Revision: 999898 - update AMD Family 15h Processors microcode to fix bugs in prior microcode * Thu Mar 03 2016 tmb <tmb> 0.20160303-1.mga6.nonfree + Revision: 984578 - update to 2016-03-03 snapshot * Wed Oct 15 2014 tmb <tmb> 0.20140913-4.mga5.nonfree + Revision: 751292 - enable haswell microcode again as glibc lock elision is now disabled + umeabot <umeabot> - Second Mageia 5 Mass Rebuild * Fri Oct 10 2014 tmb <tmb> 0.20140913-2.mga5.nonfree + Revision: 737966 - nuke intel haswell firmwares that break glibc-2.20 lock elision * Fri Oct 10 2014 tv <tv> 0.20140913-1.mga5.nonfree + Revision: 737841 - fix install - update to latest AMD microcode - update to latest Intel microcode * Tue Sep 16 2014 umeabot <umeabot> 0.20131009-4.mga5.nonfree + Revision: 682384 - Mageia 5 Mass Rebuild * Fri Dec 20 2013 tv <tv> 0.20131009-3.mga4.nonfree + Revision: 559054 - split intel ucode for microcode module (mga#11934) * Thu Oct 31 2013 tmb <tmb> 0.20131009-2.mga4.nonfree + Revision: 548433 - Mageia 4 rebuild * Wed Oct 09 2013 tv <tv> 0.20131009-1.mga4.nonfree + Revision: 493888 - new release * Sat Jan 12 2013 umeabot <umeabot> 0.20121025-3.mga3.nonfree + Revision: 360023 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Thu Oct 25 2012 tv <tv> 0.20121025-2.mga3.nonfree + Revision: 310084 - force latest microcode (mgarepo sync sucks) - fix path * Thu Oct 25 2012 tv <tv> 0.20121025-1.mga3.nonfree + Revision: 310078 - latest microcode - amd update command needs fakeroot - fix command name * Wed May 30 2012 zezinho <zezinho> 0.20120313-2.mga3.nonfree + Revision: 251615 - fix amducode path * Tue Mar 13 2012 tv <tv> 0.20120313-1.mga2.nonfree + Revision: 223288 - update microcode * Sat Jan 15 2011 tmb <tmb> 0.20110115-1.mga1 + Revision: 19854 - imported package microcode * Sat Jan 15 2011 Thomas Backlund <tmb@mageia.org> 0.20110115-1.mga1 - initial Mageia import - update intel microcode to 2010-09-29 - update amd microcode to 2011-01-11 - install intel microcode under /lib/firmware too - build as noarch * Thu Feb 04 2010 Frederic Crozat <fcrozat@mandriva.com> 0.20100204-1mdv2010.1 + Revision: 500860 - import microcode