Project

General

Profile

Actions

Feature #461

open

Replacing Haswell mrc.bin blob with free software

Added by akjuxr3 akjuxr3 almost 2 years ago. Updated 7 months ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
chipset configuration
Target version:
Start date:
04/01/2020
Due date:
% Done:

30%

Estimated time:
Affected versions:
Needs backport to:
Affected hardware:
All Haswell mainboards
Affected OS:

Description

Currently in case of the ability to run as less amount of closed source software as possible and still have Microcode updates the reduced Intel ME with disabled bit in IFD and the lga1155 or the mobile versions of those cpus are the only option for x86_64 out there.
The next cpu generation (Haswell) inside for example T440p and W541 require the binary blob mrc.bin

Are there any plans of replacing the Haswell mrc.bin with free software? Or have the x86_64 platform be given up when the goal is to run just free software and the people should move to aarch64 or risc-v?

Actions #1

Updated by Nicholas Chin almost 2 years ago

akjuxr3 akjuxr3 wrote:

Currently in case of the ability to run as less amount of closed source software as possible and still have Microcode updates the reduced Intel ME with disabled bit in IFD and the lga1155 or the mobile versions of those cpus are the only option for x86_64 out there.
The next cpu generation (Haswell) inside for example T440p and W541 require the binary blob mrc.bin

Are there any plans of replacing the Haswell mrc.bin with free software? Or have the x86_64 platform be given up when the goal is to run just free software and the people should move to aarch64 or risc-v?

Already being worked on, refer to https://review.coreboot.org/q/topic:haswell-nri

Actions #2

Updated by akjuxr3 akjuxr3 almost 2 years ago

Already being worked on, refer to https://review.coreboot.org/q/topic:haswell-nri

Great! Have missed this before. When the pending patches (currently most of them are currently from 07.2022) get merged, this feature-request can be closed.

Actions #3

Updated by akjuxr3 akjuxr3 7 months ago

  • Category set to board support
  • Assignee set to Angel Pons
  • Affected hardware set to T440p and other

Already being worked on, refer to https://review.coreboot.org/q/topic:haswell-nri

Great to see active work on this. Lets hope it get merged soon. There are many great features planed like for example:
"One of my future plans (automatic RAM overclocking) would try the highest possible frequency and, if training cannot succeed, slow down the MPLL to the next available frequency."

Actions #4

Updated by Angel Pons 7 months ago

  • Category changed from board support to chipset configuration
  • Status changed from New to In Progress
  • Start date changed from 02/16/2023 to 04/01/2020
  • % Done changed from 0 to 30
  • Related links updated (diff)
  • Affected hardware changed from T440p and other to All Haswell mainboards

Current state of the meme magic (Haswell NRI)

Done

Implemented internally in the giant bowl of spaghetti, but in need to clean up the code before publishing

  • 1D margin centering algorithms (used for various training steps)
  • Setting non-training command rate (to 1N or 2N, we currently remain at 3T) and LCT (Late Command Training)
  • 2D margin centering algorithms (used for various training steps)
  • Power training (optimisation meme magic to reduce power consumption)
  • TAT (Turnaround Training, a performance improvement)
  • The raminit console (a half-arsed thing that allows playing around with settings over UART/usbdebug)

Not implemented or not working yet

  • Broadwell support (I once got a Broadwell ULT system to boot without MRC, but I had to commit unspeakable horrors to the already messy codebase)
  • Properly programming some registers about DIMM energy (doesn't seem to be required, but the logic to program these is horribly convoluted and I haven't felt like figuring out how it works)
  • Automatic overclocking support (will require redesigning how the MPLL handling works, because it currently stinks)

TL;DR

  • With what's currently submitted, choosing Haswell NRI in menuconfig WILL NOT BOOT. It says "NOT WORKING" in the prompt.
  • Current top of tree (what you should use if you want to try Haswell NRI) is https://review.coreboot.org/81948
  • With the aforementioned changes from Gerrit, booting should work. S3 resume should also work, but please test in advance.
  • BACK UP YOUR STUFF! I will NOT be held responsible by any data losses arising from the use of the current state of Haswell NRI.
  • Because not all training steps are ready yet, performance and power consumption are not optimal. Fix is to finish upstreaming them.
  • Also, do NOT try to overclock the RAM under any circumstances. You will only make your system much more unstable for no reason.
Actions

Also available in: Atom PDF