[arch-releng] [RFC] [PATCH] [configs/releng] Make and use amd_ucode.bin for initrd.
Requested at FS#59694 --- configs/releng/build.sh | 14 ++++++++++++++ .../efiboot/loader/entries/archiso-x86_64-cd.conf | 1 + .../efiboot/loader/entries/archiso-x86_64-usb.conf | 1 + configs/releng/syslinux/archiso_pxe.cfg | 6 +++--- configs/releng/syslinux/archiso_sys.cfg | 2 +- 5 files changed, 20 insertions(+), 4 deletions(-) diff --git a/configs/releng/build.sh b/configs/releng/build.sh index f5524e8..3272cd8 100755 --- a/configs/releng/build.sh +++ b/configs/releng/build.sh @@ -107,6 +107,16 @@ make_customize_airootfs() { rm ${work_dir}/x86_64/airootfs/root/customize_airootfs.sh } +# Prepare amd_ucode +make_amd_ucode_img() { + mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode + cat ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin > ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin + pushd ${work_dir}/amd-ucode > /dev/null + echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > amd-ucode.img + popd > /dev/null + cp ${work_dir}/amd-ucode/amd-ucode.img ${work_dir}/x86_64/airootfs/boot/amd-ucode.img +} + # Prepare kernel/initramfs ${install_dir}/boot/ make_boot() { mkdir -p ${work_dir}/iso/${install_dir}/boot/x86_64 @@ -120,6 +130,8 @@ make_boot_extra() { cp ${work_dir}/x86_64/airootfs/usr/share/licenses/common/GPL2/license.txt ${work_dir}/iso/${install_dir}/boot/memtest.COPYING cp ${work_dir}/x86_64/airootfs/boot/intel-ucode.img ${work_dir}/iso/${install_dir}/boot/intel_ucode.img cp ${work_dir}/x86_64/airootfs/usr/share/licenses/intel-ucode/LICENSE ${work_dir}/iso/${install_dir}/boot/intel_ucode.LICENSE + cp ${work_dir}/x86_64/airootfs/boot/amd-ucode.img ${work_dir}/iso/${install_dir}/boot/amd_ucode.img + cp ${work_dir}/x86_64/airootfs/usr/share/licenses/linux-firmware/LICENSE.amd-ucode ${work_dir}/iso/${install_dir}/boot/amd_ucode.LICENSE } # Prepare /${install_dir}/boot/syslinux @@ -185,6 +197,7 @@ make_efiboot() { cp ${work_dir}/iso/${install_dir}/boot/x86_64/archiso.img ${work_dir}/efiboot/EFI/archiso/archiso.img cp ${work_dir}/iso/${install_dir}/boot/intel_ucode.img ${work_dir}/efiboot/EFI/archiso/intel_ucode.img + cp ${work_dir}/iso/${install_dir}/boot/amd_ucode.img ${work_dir}/efiboot/EFI/archiso/amd_ucode.img mkdir -p ${work_dir}/efiboot/EFI/boot cp ${work_dir}/x86_64/airootfs/usr/share/efitools/efi/PreLoader.efi ${work_dir}/efiboot/EFI/boot/bootx64.efi @@ -253,6 +266,7 @@ run_once make_basefs run_once make_packages run_once make_setup_mkinitcpio run_once make_customize_airootfs +run_once make_amd_ucode_img run_once make_boot run_once make_boot_extra run_once make_syslinux diff --git a/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf b/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf index d503f11..b77ed98 100644 --- a/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf +++ b/configs/releng/efiboot/loader/entries/archiso-x86_64-cd.conf @@ -1,5 +1,6 @@ title Arch Linux archiso x86_64 UEFI CD linux /EFI/archiso/vmlinuz.efi initrd /EFI/archiso/intel_ucode.img +initrd /EFI/archiso/amd_ucode.img initrd /EFI/archiso/archiso.img options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf b/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf index 14f3d02..09adca4 100644 --- a/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf +++ b/configs/releng/efiboot/loader/entries/archiso-x86_64-usb.conf @@ -1,5 +1,6 @@ title Arch Linux archiso x86_64 UEFI USB linux /%INSTALL_DIR%/boot/x86_64/vmlinuz initrd /%INSTALL_DIR%/boot/intel_ucode.img +initrd /%INSTALL_DIR%/boot/amd_ucode.img initrd /%INSTALL_DIR%/boot/x86_64/archiso.img options archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% diff --git a/configs/releng/syslinux/archiso_pxe.cfg b/configs/releng/syslinux/archiso_pxe.cfg index 481371a..92af749 100644 --- a/configs/releng/syslinux/archiso_pxe.cfg +++ b/configs/releng/syslinux/archiso_pxe.cfg @@ -7,7 +7,7 @@ It allows you to install Arch Linux or perform system maintenance. ENDTEXT MENU LABEL Boot Arch Linux (x86_64) (NBD) LINUX boot/x86_64/vmlinuz -INITRD boot/intel_ucode.img,boot/x86_64/archiso.img +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% archiso_nbd_srv=${pxeserver} SYSAPPEND 3 @@ -18,7 +18,7 @@ It allows you to install Arch Linux or perform system maintenance. ENDTEXT MENU LABEL Boot Arch Linux (x86_64) (NFS) LINUX boot/x86_64/vmlinuz -INITRD boot/intel_ucode.img,boot/x86_64/archiso.img +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img APPEND archisobasedir=%INSTALL_DIR% archiso_nfs_srv=${pxeserver}:/run/archiso/bootmnt SYSAPPEND 3 @@ -29,7 +29,7 @@ It allows you to install Arch Linux or perform system maintenance. ENDTEXT MENU LABEL Boot Arch Linux (x86_64) (HTTP) LINUX boot/x86_64/vmlinuz -INITRD boot/intel_ucode.img,boot/x86_64/archiso.img +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img APPEND archisobasedir=%INSTALL_DIR% archiso_http_srv=http://${pxeserver}/ SYSAPPEND 3 diff --git a/configs/releng/syslinux/archiso_sys.cfg b/configs/releng/syslinux/archiso_sys.cfg index 0c82573..a35a1ea 100644 --- a/configs/releng/syslinux/archiso_sys.cfg +++ b/configs/releng/syslinux/archiso_sys.cfg @@ -7,7 +7,7 @@ It allows you to install Arch Linux or perform system maintenance. ENDTEXT MENU LABEL Boot Arch Linux (x86_64) LINUX boot/x86_64/vmlinuz -INITRD boot/intel_ucode.img,boot/x86_64/archiso.img +INITRD boot/intel_ucode.img,boot/amd_ucode.img,boot/x86_64/archiso.img APPEND archisobasedir=%INSTALL_DIR% archisolabel=%ARCHISO_LABEL% INCLUDE boot/syslinux/archiso_tail.cfg -- 2.18.0
Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Sat,
2018/08/18 23:29:
> +# Prepare amd_ucode
> +make_amd_ucode_img() {
> + mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode
> + cat
> ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin >
> ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin
> + pushd ${work_dir}/amd-ucode > /dev/null
> + echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0
> > amd-ucode.img
> + popd > /dev/null
> + cp ${work_dir}/amd-ucode/amd-ucode.img
> ${work_dir}/x86_64/airootfs/boot/amd-ucode.img +}
Wondering if we should put this into a package... Could be a split package of
linux-firmware. Any opinion on this?
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];)
putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
El 22/08/18 a las 06:24, Christian Hesse escribió:
> Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Sat,
> 2018/08/18 23:29:
>> +# Prepare amd_ucode
>> +make_amd_ucode_img() {
>> + mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode
>> + cat
>> ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin >
>> ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin
>> + pushd ${work_dir}/amd-ucode > /dev/null
>> + echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0
>>> amd-ucode.img
>> + popd > /dev/null
>> + cp ${work_dir}/amd-ucode/amd-ucode.img
>> ${work_dir}/x86_64/airootfs/boot/amd-ucode.img +}
>
> Wondering if we should put this into a package... Could be a split package of
> linux-firmware. Any opinion on this?
>
Yes, split package from linux-firmware should be the best way.
On 8/22/18 5:24 AM, Christian Hesse wrote:
> Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Sat,
> 2018/08/18 23:29:
>> +# Prepare amd_ucode
>> +make_amd_ucode_img() {
>> + mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode
>> + cat
>> ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin >
>> ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin
>> + pushd ${work_dir}/amd-ucode > /dev/null
>> + echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0
>>> amd-ucode.img
>> + popd > /dev/null
>> + cp ${work_dir}/amd-ucode/amd-ucode.img
>> ${work_dir}/x86_64/airootfs/boot/amd-ucode.img +}
>
> Wondering if we should put this into a package... Could be a split package of
> linux-firmware. Any opinion on this?
We have an AUR package already for it, seemingly:
https://aur.archlinux.org/packages/amd-ucode-early/
Looks like there are definitely people who want it.
--
Eli Schwartz
Bug Wrangler and Trusted User
Christian Hesse <list@eworm.de> on Wed, 2018/08/22 11:24:
> Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Sat,
> 2018/08/18 23:29:
> > +# Prepare amd_ucode
> > +make_amd_ucode_img() {
> > + mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode
> > + cat
> > ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin >
> > ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin
> > + pushd ${work_dir}/amd-ucode > /dev/null
> > + echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R
> > 0:0
> > > amd-ucode.img
> > + popd > /dev/null
> > + cp ${work_dir}/amd-ucode/amd-ucode.img
> > ${work_dir}/x86_64/airootfs/boot/amd-ucode.img +}
>
> Wondering if we should put this into a package... Could be a split package
> of linux-firmware. Any opinion on this?
[ Added Laurent to CC as he maintains the linux-firmware package. ]
I've attached a proposal patch to add a split package amd-ucode-early to
linux-firmware. Any objections? Is the name ok or do we prefer just
'amd-ucode'?
And another note... Did anybody test if microcode is updated properly if both,
intel-ucode.img and amd-ucode, are loaded?
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];)
putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
Christian Hesse <list@eworm.de> on Thu, 2018/08/23 11:20:
> Christian Hesse <list@eworm.de> on Wed, 2018/08/22 11:24:
> > Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Sat,
> > 2018/08/18 23:29:
> > > +# Prepare amd_ucode
> > > +make_amd_ucode_img() {
> > > + mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode
> > > + cat
> > > ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin >
> > > ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin
> > > + pushd ${work_dir}/amd-ucode > /dev/null
> > > + echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R
> > > 0:0
> > > > amd-ucode.img
> > > + popd > /dev/null
> > > + cp ${work_dir}/amd-ucode/amd-ucode.img
> > > ${work_dir}/x86_64/airootfs/boot/amd-ucode.img +}
> >
> > Wondering if we should put this into a package... Could be a split package
> > of linux-firmware. Any opinion on this?
>
> [ Added Laurent to CC as he maintains the linux-firmware package. ]
>
> I've attached a proposal patch to add a split package amd-ucode-early to
> linux-firmware. Any objections? Is the name ok or do we prefer just
> 'amd-ucode'?
>
> And another note... Did anybody test if microcode is updated properly if
> both, intel-ucode.img and amd-ucode, are loaded?
Oh, attachments are stripped, so adding inline...
Index: PKGBUILD
===================================================================
--- PKGBUILD (revision 332849)
+++ PKGBUILD (working copy)
@@ -1,40 +1,16 @@
# $Id$
# Maintainer: Thomas Bächler <thomas@archlinux.org>
-pkgname=linux-firmware
+pkgbase=linux-firmware
+pkgname=(linux-firmware amd-ucode-early)
_commit=f1b95fe5a51830bb8c1712082de4279a042376b6 # master
pkgver=20180815.f1b95fe
-pkgrel=1
+pkgrel=2
pkgdesc="Firmware files for Linux"
makedepends=('git')
arch=('any')
url="http://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git;a=summary"
license=('GPL2' 'GPL3' 'custom')
-conflicts=('linux-firmware-git'
- 'kernel26-firmware'
- 'ar9170-fw'
- 'iwlwifi-1000-ucode'
- 'iwlwifi-3945-ucode'
- 'iwlwifi-4965-ucode'
- 'iwlwifi-5000-ucode'
- 'iwlwifi-5150-ucode'
- 'iwlwifi-6000-ucode'
- 'rt2870usb-fw'
- 'rt2x00-rt61-fw'
- 'rt2x00-rt71w-fw'
- 'amd-ucode')
-replaces=('kernel26-firmware'
- 'ar9170-fw'
- 'iwlwifi-1000-ucode'
- 'iwlwifi-3945-ucode'
- 'iwlwifi-4965-ucode'
- 'iwlwifi-5000-ucode'
- 'iwlwifi-5150-ucode'
- 'iwlwifi-6000-ucode'
- 'rt2870usb-fw'
- 'rt2x00-rt61-fw'
- 'rt2x00-rt71w-fw'
- 'amd-ucode')
options=(!strip)
source=("git+https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git#commit=${_commit}")
md5sums=('SKIP')
@@ -50,7 +26,39 @@
echo $(TZ=UTC git show -s --pretty=%cd --date=format-local:%Y%m%d HEAD).$(git rev-parse --short HEAD)
}
-package() {
+build() {
+ mkdir -p kernel/x86/microcode
+ cat ${pkgbase}/amd-ucode/microcode_amd*.bin > kernel/x86/microcode/AuthenticAMD.bin
+ echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R 0:0 > amd-ucode.img
+}
+
+package_linux-firmware() {
+ conflicts=('linux-firmware-git'
+ 'kernel26-firmware'
+ 'ar9170-fw'
+ 'iwlwifi-1000-ucode'
+ 'iwlwifi-3945-ucode'
+ 'iwlwifi-4965-ucode'
+ 'iwlwifi-5000-ucode'
+ 'iwlwifi-5150-ucode'
+ 'iwlwifi-6000-ucode'
+ 'rt2870usb-fw'
+ 'rt2x00-rt61-fw'
+ 'rt2x00-rt71w-fw'
+ 'amd-ucode')
+ replaces=('kernel26-firmware'
+ 'ar9170-fw'
+ 'iwlwifi-1000-ucode'
+ 'iwlwifi-3945-ucode'
+ 'iwlwifi-4965-ucode'
+ 'iwlwifi-5000-ucode'
+ 'iwlwifi-5150-ucode'
+ 'iwlwifi-6000-ucode'
+ 'rt2870usb-fw'
+ 'rt2x00-rt61-fw'
+ 'rt2x00-rt71w-fw'
+ 'amd-ucode')
+
cd "${srcdir}/${pkgname}"
make DESTDIR="${pkgdir}" FIRMWAREDIR=/usr/lib/firmware install
@@ -64,4 +72,11 @@
echo 'w /sys/devices/system/cpu/microcode/reload - - - - 1' \
>"${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
}
+
+package_amd-ucode-early() {
+ description='Early microcode update files for AMD CPUs'
+
+ install -D -m0644 amd-ucode.img "${pkgdir}"/boot/amd-ucode.img
+}
+
# vim:set ts=2 sw=2 et:
--
main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH"
"CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];)
putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
El 23/08/18 a las 06:20, Christian Hesse escribió:
> Christian Hesse <list@eworm.de> on Wed, 2018/08/22 11:24:
>> Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Sat,
>> 2018/08/18 23:29:
>>> +# Prepare amd_ucode
>>> +make_amd_ucode_img() {
>>> + mkdir -p ${work_dir}/amd-ucode/kernel/x86/microcode
>>> + cat
>>> ${work_dir}/x86_64/airootfs/lib/firmware/amd-ucode/microcode_amd*.bin >
>>> ${work_dir}/amd-ucode/kernel/x86/microcode/AuthenticAMD.bin
>>> + pushd ${work_dir}/amd-ucode > /dev/null
>>> + echo kernel/x86/microcode/AuthenticAMD.bin | bsdcpio -o -H newc -R
>>> 0:0
>>>> amd-ucode.img
>>> + popd > /dev/null
>>> + cp ${work_dir}/amd-ucode/amd-ucode.img
>>> ${work_dir}/x86_64/airootfs/boot/amd-ucode.img +}
>>
>> Wondering if we should put this into a package... Could be a split package
>> of linux-firmware. Any opinion on this?
>
> [ Added Laurent to CC as he maintains the linux-firmware package. ]
>
> I've attached a proposal patch to add a split package amd-ucode-early to
> linux-firmware. Any objections? Is the name ok or do we prefer just
> 'amd-ucode'?
amd-ucode is right (like intel-ucode)
missing LICENSE file [#1]
>
> And another note... Did anybody test if microcode is updated properly if both,
> intel-ucode.img and amd-ucode, are loaded?
>
At least one feedback from intel user [#2], fw is loaded fine.
Thanks.
[#1] https://bugs.archlinux.org/task/59796
[#2] https://bugs.archlinux.org/task/59694#comment172278
Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Fri, 2018/08/24 17:34:
And another note... Did anybody test if microcode is updated properly if both, intel-ucode.img and amd-ucode, are loaded?
At least one feedback from intel user [#2], fw is loaded fine.
Well, intel ucode is loaded first, so that result is kind of expected. Feedback from an amd user would be welcome. -- main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH" "CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];) putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
I'd like to think I could do some verification since I'm on AMD... I'm new here, so help me along if there's something I've missed. I enabled the [testing] repo and installed: pacman -S testing/linux testing/amd-ucode testing/linux-firmware pacman -Q linux linux-firmware amd-ucode linux 4.18.5.arch1-1 linux-firmware 20180821.1d17c18-2 amd-ucode 20180821.1d17c18-2 I did a mkinitcpio -p linux just in case, then rebooted. output of `dmesg | grep -ie code -ie amd` (with obvious fluff removed): [ 0.000000] AMD AuthenticAMD [ 0.000000] random: get_random_u32 called from bsp_init_amd+0x1f9/0x290 with crng_init=0 [ 0.000000] ACPI: SSDT 0x00000000BFDDFB10 001714 (v01 AMD POWERNOW 00000001 AMD 00000001) [ 0.000000] ACPI: IVRS 0x00000000BFDE12A0 0000E8 (v01 AMD RD890S 00202031 AMD 00000000) [ 0.025991] Spectre V2 : Mitigation: Full AMD retpoline [ 0.036666] smpboot: CPU0: AMD FX(tm)-8120 Eight-Core Processor (family: 0x15, model: 0x1, stepping: 0x2) [ 0.053345] Performance Events: Fam15h core perfctr, AMD PMU driver. [ 1.950177] amd_uncore: AMD NB counters detected [ 1.950462] perf: AMD IBS detected (0x000000ff) [ 2.018364] microcode: CPU0: patch_level=0x0600063d [ 2.018371] microcode: CPU1: patch_level=0x0600063d [ 2.018379] microcode: CPU2: patch_level=0x0600063d [ 2.018388] microcode: CPU3: patch_level=0x0600063d [ 2.018396] microcode: CPU4: patch_level=0x0600063d [ 2.018403] microcode: CPU5: patch_level=0x0600063d [ 2.018410] microcode: CPU6: patch_level=0x0600063d [ 2.018418] microcode: CPU7: patch_level=0x0600063d [ 2.018457] microcode: Microcode Update Driver: v2.2. [ 2.375803] QUIRK: Enable AMD PLL fix [ 2.375865] ehci-pci 0000:00:12.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [ 2.391345] ehci-pci 0000:00:13.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [ 2.404862] ehci-pci 0000:00:16.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [ 5.980964] microcode: CPU1: new patch_level=0x0600063e [ 5.992588] microcode: CPU4: new patch_level=0x0600063e [ 6.013367] microcode: CPU2: new patch_level=0x0600063e [ 6.034148] microcode: CPU6: new patch_level=0x0600063e [ 6.034221] x86/CPU: CPU features have changed after loading microcode, but might not take effect. Those microcode: lines at the end total 4, while I have an 8-core AMD FX-8120 - and the CPU numbers are usually different at each boot. Is there anything else I can do to assist? On Fri, Aug 24, 2018 at 5:10 PM Christian Hesse <list@eworm.de> wrote:
Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Fri, 2018/08/24 17:34:
And another note... Did anybody test if microcode is updated properly if both, intel-ucode.img and amd-ucode, are loaded?
At least one feedback from intel user [#2], fw is loaded fine.
Well, intel ucode is loaded first, so that result is kind of expected. Feedback from an amd user would be welcome. -- main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH" "CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];) putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
Well, fudge. I see now that I needed to update GRUB so that it would put the microcode in the kernel boot config: grub-mkconfig -o /boot/grub/grub.cfg To now see: initrd /intel-ucode.img /amd-ucode.img /initramfs-linux.img in the grub.cfg Without this manual step, simply installing the amd-ucode doesn't take effect. Duh. Interesting part of dmesg output is now: [ 2.055382] microcode: microcode updated early to new patch_level=0x0600063e [ 2.055412] microcode: CPU0: patch_level=0x0600063e [ 2.055420] microcode: CPU1: patch_level=0x0600063e [ 2.055428] microcode: CPU2: patch_level=0x0600063e [ 2.055435] microcode: CPU3: patch_level=0x0600063e [ 2.055443] microcode: CPU4: patch_level=0x0600063e [ 2.055451] microcode: CPU5: patch_level=0x0600063e [ 2.055456] microcode: CPU6: patch_level=0x0600063e [ 2.055462] microcode: CPU7: patch_level=0x0600063e [ 2.055503] microcode: Microcode Update Driver: v2.2. [ 2.422079] QUIRK: Enable AMD PLL fix So, I guess that answers the question sought after. On Fri, Aug 24, 2018 at 10:13 PM Bryan L. Gay <archlinux@bryangay.com> wrote:
I'd like to think I could do some verification since I'm on AMD... I'm new here, so help me along if there's something I've missed.
I enabled the [testing] repo and installed: pacman -S testing/linux testing/amd-ucode testing/linux-firmware
pacman -Q linux linux-firmware amd-ucode linux 4.18.5.arch1-1 linux-firmware 20180821.1d17c18-2 amd-ucode 20180821.1d17c18-2
I did a mkinitcpio -p linux just in case, then rebooted.
output of `dmesg | grep -ie code -ie amd` (with obvious fluff removed):
[ 0.000000] AMD AuthenticAMD [ 0.000000] random: get_random_u32 called from bsp_init_amd+0x1f9/0x290 with crng_init=0 [ 0.000000] ACPI: SSDT 0x00000000BFDDFB10 001714 (v01 AMD POWERNOW 00000001 AMD 00000001) [ 0.000000] ACPI: IVRS 0x00000000BFDE12A0 0000E8 (v01 AMD RD890S 00202031 AMD 00000000) [ 0.025991] Spectre V2 : Mitigation: Full AMD retpoline [ 0.036666] smpboot: CPU0: AMD FX(tm)-8120 Eight-Core Processor (family: 0x15, model: 0x1, stepping: 0x2) [ 0.053345] Performance Events: Fam15h core perfctr, AMD PMU driver. [ 1.950177] amd_uncore: AMD NB counters detected [ 1.950462] perf: AMD IBS detected (0x000000ff) [ 2.018364] microcode: CPU0: patch_level=0x0600063d [ 2.018371] microcode: CPU1: patch_level=0x0600063d [ 2.018379] microcode: CPU2: patch_level=0x0600063d [ 2.018388] microcode: CPU3: patch_level=0x0600063d [ 2.018396] microcode: CPU4: patch_level=0x0600063d [ 2.018403] microcode: CPU5: patch_level=0x0600063d [ 2.018410] microcode: CPU6: patch_level=0x0600063d [ 2.018418] microcode: CPU7: patch_level=0x0600063d [ 2.018457] microcode: Microcode Update Driver: v2.2. [ 2.375803] QUIRK: Enable AMD PLL fix [ 2.375865] ehci-pci 0000:00:12.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [ 2.391345] ehci-pci 0000:00:13.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [ 2.404862] ehci-pci 0000:00:16.2: applying AMD SB700/SB800/Hudson-2/3 EHCI dummy qh workaround [ 5.980964] microcode: CPU1: new patch_level=0x0600063e [ 5.992588] microcode: CPU4: new patch_level=0x0600063e [ 6.013367] microcode: CPU2: new patch_level=0x0600063e [ 6.034148] microcode: CPU6: new patch_level=0x0600063e [ 6.034221] x86/CPU: CPU features have changed after loading microcode, but might not take effect.
Those microcode: lines at the end total 4, while I have an 8-core AMD FX-8120 - and the CPU numbers are usually different at each boot.
Is there anything else I can do to assist?
On Fri, Aug 24, 2018 at 5:10 PM Christian Hesse <list@eworm.de> wrote:
Gerardo Exequiel Pozzi via arch-releng <arch-releng@archlinux.org> on Fri, 2018/08/24 17:34:
And another note... Did anybody test if microcode is updated properly if both, intel-ucode.img and amd-ucode, are loaded?
At least one feedback from intel user [#2], fw is loaded fine.
Well, intel ucode is loaded first, so that result is kind of expected. Feedback from an amd user would be welcome. -- main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH" "CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];) putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
"Bryan L. Gay" <archlinux@bryangay.com> on Fri, 2018/08/24 22:24:
Well, fudge.
I see now that I needed to update GRUB so that it would put the microcode in the kernel boot config:
grub-mkconfig -o /boot/grub/grub.cfg
To now see: initrd /intel-ucode.img /amd-ucode.img /initramfs-linux.img
in the grub.cfg
Without this manual step, simply installing the amd-ucode doesn't take effect. Duh.
Interesting part of dmesg output is now:
[ 2.055382] microcode: microcode updated early to new patch_level=0x0600063e [ 2.055412] microcode: CPU0: patch_level=0x0600063e [ 2.055420] microcode: CPU1: patch_level=0x0600063e [ 2.055428] microcode: CPU2: patch_level=0x0600063e [ 2.055435] microcode: CPU3: patch_level=0x0600063e [ 2.055443] microcode: CPU4: patch_level=0x0600063e [ 2.055451] microcode: CPU5: patch_level=0x0600063e [ 2.055456] microcode: CPU6: patch_level=0x0600063e [ 2.055462] microcode: CPU7: patch_level=0x0600063e [ 2.055503] microcode: Microcode Update Driver: v2.2. [ 2.422079] QUIRK: Enable AMD PLL fix
So, I guess that answers the question sought after.
That looks good. Thanks a lot for testing! -- main(a){char*c=/* Schoene Gruesse */"B?IJj;MEH" "CX:;",b;for(a/* Best regards my address: */=0;b=c[a++];) putchar(b-1/(/* Chris cc -ox -xc - && ./x */b/42*2-3)*42);}
participants (4)
-
Bryan L. Gay
-
Christian Hesse
-
Eli Schwartz
-
Gerardo Exequiel Pozzi