On 12/10/14 18:13, Evangelos Foutras wrote:
On 12/10/14 15:28, Thomas Bächler wrote:
For AMD, a similar mechanism is available, but since I don't own an AMD CPU, I cannot implement this. This causes problems, since the microcode update is no longer triggered automatically on boot (since microcode is no longer a module). If you want to update the AMD ucode, you probably need to run echo > /sys/devices/system/cpu/microcode/reload on boot. I hope someone with an AMD CPU will look into this.
I generated amd-ucode.img with the following commands:
$ mkdir -p kernel/x86/microcode $ cat /usr/lib/firmware/amd-ucode/microcode_amd*.bin \ >kernel/x86/microcode/AuthenticAMD.bin $ find kernel | bsdcpio -o -H newc -R 0:0 >amd-ucode.img
In syslinux.cfg I specified (w/ separate /boot partition):
INITRD ../amd-ucode.img,../initramfs-linux.img
While the above works fine on my desktop and microcode is updated early like it's supposed to, my laptop with the exact same configuration just hangs at the message "Booting the kernel."
I did some further testing on my laptop regarding early microcode loading and it works fine when the kernel is built with either CONFIG_PREEMPT_NONE=y or CONFIG_PREEMPT_VOLUNTARY=y. Our default kernel uses CONFIG_PREEMPT=y, which apparently displeases my laptop greatly... I'm not sure how we should proceed.