Table of contents

AMD Microcode (K7 to Zen)

There is (almost) nothing at the moment.

If you have any knowledge, public documentation, or research related to AMD microcode, please get in touch. I would also be interested in hearing from anyone with experience in IC delayering and optical or electron microscopy capable of extracting microcode ROM contents from AMD CPUs. The K7 family was manufactured on a 180 nm process, while K8 processors were produced on processes ranging from 130 nm down to 90 nm.

CPU and motherboard donations are also greatly appreciated. Reverse engineering often requires access to a wide variety of systems, and it can be difficult to obtain processors with specific microcode revisions, steppings, or hardware features needed for research.

For those interested in experimenting, a base64-encoded microcode patches are available for CPUs matching the intended target CPUID or closely related steppings with compatible microcode ROM layouts. The patch modifies CPUID leaf 1 so that EAX returns 0xDEADBEEF. A successful load also updates MSR 0x8B to 0xDEADBEEF. Note, however, that this only confirms that the patch was accepted; it does not prove that the intended location in the microcode ROM was actually patched, as microcode addresses must match the expected CPUID/stepping family for the modification to take effect correctly.

On multi-core systems, only the core receiving the update will be patched. Also note that Linux caches CPUID information for /proc/cpuinfo, so verification should be performed by executing the CPUID instruction directly rather than relying on kernel-reported values.

Use at your own risk. If you try it, I'd be interested to hear whether it worked on your system.

CPUID 00631 AMD K7 Duron

This is likely the world first public microcode patch for AMD K7 processors. To the best of my knowledge, AMD has not released any microcode updates for the K7 family - for explanation see errata 22 Processor Does Not Support Reliable Microcode Patch Mechanism application-notes.digchip.com/019/19-45009.pdf↗ ;

JiAGEe++rd4CACAAyvckJQAAAAAAAAAAAwAAAACqqqomAAAA////////////////////////////
/////////63eAIAAAAAwvvsCAAAAJsAIAQAAAAAAoD8ACP9AABNAAAAAUAEBAAABAABABAQAAAUA
AAD////PICAAAAAMAACAgAAAADAAAAACAgAAwAAA5//w/wAQEAAAAAYAAEBAAAAAGAAAAAEBAABg
AP/zf/gAAAgIAAAAAwAAICAAAAAMAACAgAAAADD8//k/BAAABAEAAIAQAAAQBgAAAEAAAEAYAAAA
H/7//AICAADAAAAACAgAAAADAAAgIAAAAAwAAP4P/38AAQEAAGAAAAAEBAAAgAEAABAQAAAABgA/
/4f/AICAAAAAMAAAAAICAADAAAAACAgAAAAD/5//wwAAQEAAAAAYAQAAAQAAAGAEAAAEAQAAgOH/
z/8gAAAgDAAAAIAAAIAwAAAAAgIAAMAAAAD/8P/nEBAAAAAGAABAQAAAABgAAAABAQAAYAAA83/4
/wAICAAAAAMAACAgAAAADAAAgIAAAAAwAP/5P/wAAAQEAACAAQAAEBAAAAAGAABAQAAAABj+//wf
AgAAAgAAAMAIAAAIAwAAACAAACAMAAAAD/9//gEBAABgAAAABAQAAIABAAAQEAAAAAYAAP+H/z+A
gAAAADAAAAACAgAAwAAAAAgIAAAAAwCf/8P/AEBAAAAAGAAAAAEBAABgAAAABAQAAIAB/8//4QAA
ICAAAAAMAACAgAAAADACAAACAAAAwPD/5/8QAAAQBgAAAEAAAEAYAAAAAQEAAGAAAAB/+P/zCAgA
AAADAAAgIAAAAAwAAICAAAAAMAAA+T/8/wAEBAAAgAEAABAQAAAABgAAQEAAAAAYAP/8H/4AAAIC
AADAAAAACAgAAAADAAAgIAAAAAz/f/4PAQAAAQAAAGAEAAAEAQAAgBAAABAGAAAAh/8//4AAAIAw
AAAAAgIAAMAAAAAICAAAAAMAAP/D/59AQAAAABgAAAABAQAAYAAAAAQEAACAAQDP/+H/ACAgAAAA
DAAAgIAAAAAwAAAAAgIAAMAA/+f/8AAAEBAAAAAGAABAQAAAABgBAAABAAAAYPj/838IAAAIAwAA
ACAAACAMAAAAgAAAgDAAAAA//P/5BAQAAIABAAAQEAAAAAYAAEBAAAAAGAAA/B/+/wACAgAAwAAA
AAgIAAAAAwAAICAAAAAMAH/+D/8AAAEBAABgAAAABAQAAIABAAAQEAAAAAb/P/+H

CPUID 00671 AMD K7 Athlon

Morgan, 180nm, 2001

JiAGE+++rd4CACAAQC778gAAAAAAAAAAAAAAAACqqqpWAAAA////////////////////////////
/////////1Ih/3/////PQQT9////2T/3/v//////X8D/9wC//+y/////r/7+///+//+/+/v///r/
//8AAAAw39///xfA//9/f///XwD////9/f9/Afz/GAAAAP/v7///C+D//7+///8vgP////7+/78A
/gAMAAD///f3//8F8P//39///xfA//9/f///XwAAAAYA+///+/j//wLv///v4P//C7///7+A//8v
AAAAA/39//8B/P9/9/f//wXw///f3///F8D//wEAAID//v7/vwD+///7+///Avj//+/v//8L4P/A
AAAA/39///9fAP////39/38B/P//9/f//wXwAGAAAP//v7///y+A/v///v7/vwD7///7+P//AgAA
MADf///fwP//F3///38A//9f/f3//wH8/38AAAAY7+///wvg//+/v///L4D////+/v+/AP7/DAAA
AP/39///BfD//9/f//8XwP//f3///18A/wAGAAD///v7//8C+P//7+///wvg//+/v///L4AAAAMA
/f///fz/fwH3///38P//Bd///9/A//8XAACAAf7+//8A/v+/+/v//wL4///v7///C+D//wAAAMB/
f///XwD////9/f9/Afz///f3//8F8P9gAAAA/7+///8vgP////7+/78A/v//+/v//wL4ADAAAP//
39///xfA//9/f///XwD9///9/P9/AQAAGADv///v4P//C7///7+A//8v/v7//wD+/78AAAAM9/f/
/wXw///f3///F8D//39///9fAP//BgAAAP/7+///Avj//+/v//8L4P//v7///y+A/wADAAD///39
/38B/P//9/f//wXw///f3///F8AAgAEA/v///v7/vwD7///7+P//Au///+/g//8LAADAAH///38A
//9f/f3//wH8/3/39///BfD//wAAAGC/v///L4D////+/v+/AP7///v7//8C+P8wAAAA/9/f//8X
wP//f3///18A/////f3/fwH8ABgAAP//7+///wvg//+/v///L4D+///+/v+/AAAADAD3///38P//
Bd///9/A//8Xf///fwD//18AAAAG+/v//wL4///v7///C+D//7+///8vgP//AwAAAP/9/f9/Afz/
//f3//8F8P//39///xfA/4ABAAD///7+/78A/v//+/v//wL4///v7///C+AAwAAA

CPUID 006A0 AMD K7 Athlon XP

Barton, 130 nm, AXDA2500DKV4D

JiAGE+++rd4CACAAQC778gAAAAAAAAAAAAAAAACqqqqeAAAA////////////////////////////
/////////1Ih/3/////PQQT9////2T/3/v//////X8D/9wC//+y/////r/7+///+//+/+/v///r/
//8AAAAw39///xfA//9/f///XwD////9/f9/Afz/GAAAAP/v7///C+D//7+///8vgP////7+/78A
/gAMAAD///f3//8F8P//39///xfA//9/f///XwAAAAYA+///+/j//wLv///v4P//C7///7+A//8v
AAAAA/39//8B/P9/9/f//wXw///f3///F8D//wEAAID//v7/vwD+///7+///Avj//+/v//8L4P/A
AAAA/39///9fAP////39/38B/P//9/f//wXwAGAAAP//v7///y+A/v///v7/vwD7///7+P//AgAA
MADf///fwP//F3///38A//9f/f3//wH8/38AAAAY7+///wvg//+/v///L4D////+/v+/AP7/DAAA
AP/39///BfD//9/f//8XwP//f3///18A/wAGAAD///v7//8C+P//7+///wvg//+/v///L4AAAAMA
/f///fz/fwH3///38P//Bd///9/A//8XAACAAf7+//8A/v+/+/v//wL4///v7///C+D//wAAAMB/
f///XwD////9/f9/Afz///f3//8F8P9gAAAA/7+///8vgP////7+/78A/v//+/v//wL4ADAAAP//
39///xfA//9/f///XwD9///9/P9/AQAAGADv///v4P//C7///7+A//8v/v7//wD+/78AAAAM9/f/
/wXw///f3///F8D//39///9fAP//BgAAAP/7+///Avj//+/v//8L4P//v7///y+A/wADAAD///39
/38B/P//9/f//wXw///f3///F8AAgAEA/v///v7/vwD7///7+P//Au///+/g//8LAADAAH///38A
//9f/f3//wH8/3/39///BfD//wAAAGC/v///L4D////+/v+/AP7///v7//8C+P8wAAAA/9/f//8X
wP//f3///18A/////f3/fwH8ABgAAP//7+///wvg//+/v///L4D+///+/v+/AAAADAD3///38P//
Bd///9/A//8Xf///fwD//18AAAAG+/v//wL4///v7///C+D//7+///8vgP//AwAAAP/9/f9/Afz/
//f3//8F8P//39///xfA/4ABAAD///7+/78A/v//+/v//wL4///v7///C+AAwAAA

CPUID 20FC2 AMD K8 Sempron

AiAxEO++rd4AgCAAsZFqzwAAAAAAAAAAAwAAAACqqqr2CgAA////////////////////////////
/////////1Ih/3/////PQQT9////2T/3/v//////X8D/9wC//+y/////r/7+///+//+/+/v///r/
//8AAAAw39///x/A//9/AP+BgH/DP/4B/AcA/g3/GAAAAP/v7///D+D/wD+A/x/Av+ED/wD+fwD/
hgAMAAD///f3//8H8Pv+PwDwzkf+2Qf+BMMfg64AAAYA+///+/j//wPg//8ff/jGogL8/3/W4ZfB
AAAAA/39//8B/P//z3L7/9U/HHP/CgCA8PPwDwEAAID//v7//wD+//AnaGwYZB3+/x/A3eaifzjA
AAAA/39///9/AP9n/7X8/1r/D9CNAzD4AwI8AGAAAP//v7///z+A/gP/Voc/qyz5D/xTHP6osiD9
awDf///fwP//Hy7/13/1wT9Xu/D///cP31wAAAAY7+///w/g//8/gP/AwL/hH/8A/gMA/4Z/HgD4
///39///B/D/gz8Bvctg6/CBfwD/P4B/wwAGAAAP/AP4von4H7D/n+X4B/h5/288gMEfG+D+vwcA
AAj8uw//AD9y/v/vH/xzXcH6gT/r8MtgAACAAV7+v//Fh3+/a/n/1nwe+rkP4D/w8G/4BwGA/+9/
f///fwD///3/QQT7P///9P9H/+///P9gAAAA/7+///8/gP///wH2by77hw/8e/l+vaoc/3sA4P//
39///x/Af///AMM/gP/8//+uD/8APwAAGADlv7vPevCX9gCAv3//4R/AWwYAfvuHf64A+P8eDwDw
9/g//ANvC8DOdf/wz38A/4GAf8M/DwD8f/sH+P8B/B/+5xdg/taifzgHf4IAl4HW4b8HAP4f/7f8
/1z3DyDwzwL8A/w8+f8/y/CPdX3/3wMAPrN1AAd/bIDB//9nH/6xruX/+J9/+Me6gP/vAQD/23/9
wzEWExA4+LoOfwzfwv//3T/8ewDAutf/Fv7/6/rhX/9W/rer6od//vv9v/1+Dv47AOD//38L/+91
//D+/yv/P8DPwwf+Afz/AP4N7hUAsP//v4X417p+/+2/leHfqvr/r/9+g3+//vj/HgDwH/gHP3wT
8YHCgz/r8MtgLKf9///DP9cAWGMNY/n/xgEe/Lnv5f/7W3z49zyA/6/L56BfBwD+v/4B/AcA/g3/
+AfwHwP4N/zgH8B/D+Df8IABAAD///7+//8A/g/8A/j+AfwbP/AP4PgH8G8AwAAA

CPUID 60FB2 AMD K8 Athlon 64 X2

This patch is shorter because this microarchitecture has only 16 patch RAM triads.

JiAGBu++rd4AgBAA3LtqVAAAAAAAAAAAgAYAAACqqqqrBgAA////////////////////////////
/////////1Ih/3/////PQQT9////2T/3/v//////X8D/9wC//+y/////r/7+///+//+/+/v///r/
//8AAAAwH8B/4ODf8A9/AP+BgH/DP/4B/AcA/g3/GAAAAPAP4D8H8G/4wD+A/x/Av+ED/wD+fwD/
hv8eAPgf+AfwfBPxP4+CP0Hwy2Dr/4F/AMM/gH+0lAwA+A/8Axv+AfzgP/APb/gH8ID/wD+/4R/A
AP6/BwH8B/78D99ET/Cj4Ng6/DIfwH/g4N/wDwMALSXxAP7/bYAHf///Of/9+h/+/7/n/wf4efiV
AYBcgX8A/zcR/8MA+BMEvwy2Dv7/DwB8+yk+RskAQP/AP4DhH8C//gP/AIZ/AP/4D/wDG/4B/OD/
ewDAf+Af3/AP4AD/gX9/wz+AAfwH/v4N/wAA8P89D+A/8PBv+Ac/gP/AwL/hH/8A/gMA/4Z/HgD4
//gH8B8D+Df84B/Afw/g3/CBfwD/P4B/w38PAPwP/AP4/gH8Gz/wD+D4B/Bv/8A/gOEfwL/+vwcA
/Af+AQ3/AP7wH/gHN/wD+MB/4B/f8A/gAHZUAwD+A///hn8A8A/gPwH8G/4P4D/w8G/4BwGAOqp/
AP+B4N/wDw==

AMD K8/K10 microcode is considerably more vertical than Intel P6 microcode (see martin.hinner.info/p6microcode/↗ ) and more closely resembles a conventional RISC design, which is not surprising given its lineage from NexGen's RISC86 architecture.

This project is an independent, unofficial work based on publicly available information and reverse-engineering research, and is not affiliated with, endorsed by, sponsored by, or associated with Advanced Micro Devices, Inc. (AMD) or its affiliates. It is provided "as is", without warranty of any kind. The author assumes no responsibility or liability for any use, misuse, damage, data loss, hardware failure, or other consequences arising from its use. AMD and related trademarks are the property of their respective owners and are used solely for identification and informational purposes.