Microcode

This is the approved revision of this page, as well as being the most recent.

What is this "microcode?"

Wikipedia defines microcode as:

A layer of hardware-level instructions or data structures involved in the implementation of higher level machine code instructions in central processing units, and in the implementation of the internal logic of manychannel controllers, disk controllers, network interface controllers, network processors, graphics processing units, and other hardware. It resides in special high-speed memory and translates machine instructions into sequences of detailed circuit-level operations. It helps separate the machine instructions from the underlying electronics so that instructions can be designed and altered more freely. It also makes it feasible to build complex multi-step instructions while still reducing the complexity of the electronic circuitry compared to other methods.

AMD microcode support

Note

Supported CPU families: 10h (Barcelona), 11h (Turion x2 Ultra), 12h (Llano), 14h (Bobcat), 15h (Bulldozer)

Emerging the required package

For microcode to work with AMD, first emerge sys-kernel/linux-firmware (package not on wiki - please add):

# emerge linux-firmware

Kernel configuration

Processor type and features --->
   <*> CPU microcode loading support
   [ ] Intel microcode loading support
   [*] AMD microcode loading support
Device Drivers --->
   Generic Driver Options --->
      (amd-ucode/microcode_amd.bin amd-ucode/microcode_amd_fam15h.bin) External firmware blobs to build into the kernel binary

Now, run:

# reboot

The new microcode will be loaded after the next reboot.