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
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.