• 1 Post
  • 4 Comments
Joined 8 months ago
cake
Cake day: March 25th, 2024

help-circle


  • I try to use FOSS as much as possible, but I am not willing to give up video games, so I do have steam installed. I also need discord for communication with friends I am playing with. I only use these two on my desktop computer. On my laptop I don’t have any proprietary software running in userspace, but of course it still has proprietary firmware blobs and proprietary UEFI firmware. I also have an old Thinkpad X220 running coreboot and with ME disabled (HAP bit set, ME technically still runs, but halts after hardware initialization) and unnecessary ME components stripped using me_cleaner. And my home server also runs coreboot with ME “disabled” and stripped but it has a BMC with proprietary supermicro firmware and an LSI HBA that also requires firmware.


  • It’s just the easiest way to do this. Memory training is a very early step in the boot process. Firmware only has the CPU cache available as memory and most hardware in the system isn’t initialized yet. Most of this isn’t even done by the UEFI firmware itself, but by calling a binary blob provided by the CPU manufacturer, for intel it is called FSP and AMD i believe it is AGESA. I’d have to check, but I believe at the point memory training is running the PCIe bus has not even been brought up and scanned, so video output in this phase would require extensive reengineering of the early boot process from both the CPU manufacturer, firmware vendors and the board manufacturer. PCIe has DMA so making that work without memory might be a challenge. There are three easy to implement solutions though: post codes if your mainboard has a display for them, serial output if the board has a serial port (though this needs another device to read the messages) and the cheapest solution could be a flashing LED on the board labeled memory training in progress.