Giter VIP home page Giter VIP logo

cpumicrocodes's Introduction

CPUMicrocodes

Intel, AMD & VIA CPU Microcode Repositories

CPU Microcode Repositories News Feed

CPU Microcode Repositories Discussion Topic

MC Extractor

MC Extractor Discussion Topic

This is a collection of every Latest Production Intel, AMD and VIA CPU microcode we have found. You can use MC Extractor to check instantly whether a microcode is already at the repository.

Collecting CPU microcodes is important for upgrading purposes, for creating universal tools that can help people understand what microcode they use, for research on how the general technology works, for developers with no vendor representative who want to work on a given platform etc.

Disclaimer: All the microcodes below come only from official BIOS/UEFI updates, Intel/AMD Linux Microcode Updates, Linux Distributions, Windows Updates etc which were provided and made public by various manufacturers! It is always advised to request and/or wait for your OEM/OS to release newer fixes. The microcodes are gathered and provided with the sole purpose of helping people who are out of other viable solutions. Thus, they can be extremely helpful to those who have major problems with their systems for which their manufacturer refuses to assist due to indifference and/or system age.

All microcodes at the repositories have some common attributes and are categorized based on them as follows:

  • Every microcode targets a specific CPUID which encodes info such as Family, Generation, Model, Stepping etc. For example, Intel 0x000906EB or AMD 0x00810F10 or VIA 0x00010690.
  • Every microcode has an Update Revision which is increased when fixes are applied. For example, 0x00000A0B < 0x00000A0E. Only the latest microcodes of each CPUID are included in the repositories.
  • Every microcode has a Date which relates to its public release, in ISO8601 YYYY-MM-DD format. For example, 2018-01-02 or 2016-12-09.
  • Every microcode includes a Checksum to check its validity during deployment to manufacturers. For example 0x1B3E0B0E. All AMD microcodes with CPUID >= 0x00500F00 lack an official Checksum so MC Extractor generates its own.
  • Intel microcodes have a Platform ID field which encodes the supported CPU sockets/platform types, in binary form. For example, 0xC0 = 6,7 or 0x03 = 0,1 or 0x76 = 1,2,4,5,6.
  • Intel microcode Release/Type state is distinguished between Production (PRD) and Pre-Production (PRE). Only Production (PRD) microcodes are included in the repositories.
  • VIA microcodes have a Signature which shows the CPUID and Update Revision, in human readable form. For example, BJ_6FE_0205 or 06FA003BB.

There is a certain mentality which is followed in order to structure the microcode repositories properly:

  • Every firmware filename follows the structure cpuCPUID_platPlatformID(Intel)_verUpdateRevision_Date_Release(Intel)_Checksum and has a .bin extension. For example: Intel cpu906EB_plat02_ver0000007C_2017-12-03_PRD_5046D998, AMD cpu00800F11_ver08001129_2017-07-14_4F426450 or VIA cpu10690_ver00000001_sig[BJ_10690.020]_2017-01-09_A8B24DC2.
  • All microcodes are checked by MC Extractor to verify their health, size etc. Please check MCE's description to learn more of its features and capabilities.
  • Due to the fact that there are too many CPU microcodes, everything is placed in one vendor-specific folder and the user is responsible for finding the proper CPUID and Platform ID they require.
  • The update status of all CPU microcodes (Last Yes/No) relies on their CPUID, Update Revision and Date.
  • The update status of Intel microcodes additionally relies on their Release/Type, which is either Production (PRD) or Pre-Production (PRE). For example, a hypothetical microcode cpu206A6_plat12_ver00000028_2010-09-15_PRD is "Last Yes" compared to the "Last No" cpu206A6_plat12_ver00000022_2010-07-07_PRD but so is cpu206A6_plat12_ver00000028_2010-09-15_PRE. That's because, compared to the other two, it is Pre-Production and not Production. Please note that MC Extractor can detect that as well and will show both as being "Last Yes" due to their difference in Release/Type, even if everything else is the same or in favor of one or the other.
  • The Platform ID field of Intel microcodes can contain up to 8 supported sockets (LGA775, LGA1366 etc) or platform types (Desktop, Mobile etc), depending on the CPU generation, in encoded binary form (bitmask). The user needs to determine if their chosen microcode update has the same or more Platform IDs compared to the currently loaded CPU microcode from the BIOS or OS. You can use MC Extractor to check each Intel microcode's supported Platform IDs. For example, if your current microcode has CPUID 0x00000F4A and Platform ID 0x5C (2,3,4,6) you can update to a newer microcode which has the same CPUID of 0x00000F4A but Platform ID 0x5D (0,2,3,4,6) since it additionally includes platform "0". On the other hand, you cannot update to a newer microcode with the same CPUID of 0x00000F4A but Platform ID 0x58 (3,4,6) as it doesn't include the original "2" and your socket/platform type might not be supported. Please note that MC Extractor can detect that as well, so if you cannot find the exact CPUID & Platform ID combo at the repository, as the one you currently have, it might be because there is another microcode with the same CPUID but with more supported Platform IDs. For example, in 2017, microcodes with CPUID 0x000906E9 & Platform ID 0x22 (1,5) were succeeded by CPUID 0x000906E9 & Platform ID 0x2A (1,3,5) in order to add LGA2066 socket/HEDT platform type support at KBL(-X) CPUID.

cpumicrocodes's People

Contributors

platomav avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.