I have installed coreboot on my CompuLab Intense PC (Ivy Bridge). Intel ME blob was extracted from firmware image dump. This ME version (8.1.20.1336) contains multiple security vulnerabilites, so I have downloaded latest firmware update from vendor website extracted the ME (8.1.72.3002) and used that to build coreboot. However, after flashing updated rom, the SATA disk is no longer detected.
The coreboot configuration is identical for both roms, only difference is the ME version. The SATA controller is detected in both cases by coreboot and Linux:
SATA: Initializing... SATA: Controller in AHCI mode.
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
With newer ME, there are no errors, it's just like the SATA disk is not plugged in.
I have compared output of cbmem, line by line in cronological order, from system booted by USB disk with working and non working SATA, cut out blocks with differences and marked them with a *. I don't know if this is a good way, please let me know if I should have done otherwise.
SATA disk working: ============================= Update PCI-E configuration space: PCI(0, 0, 0)[a0] = 0 PCI(0, 0, 0)[a4] = 2 * PCI(0, 0, 0)[bc] = 82a00000 PCI(0, 0, 0)[a8] = 7b600000 PCI(0, 0, 0)[ac] = 2 * PCI(0, 0, 0)[b8] = 80000000 PCI(0, 0, 0)[b0] = 80a00000 PCI(0, 0, 0)[b4] = 80800000 PCI(0, 0, 0)[7c] = 7f PCI(0, 0, 0)[70] = fe000000 PCI(0, 0, 0)[74] = 1 * PCI(0, 0, 0)[78] = fe000c00 ============================= SATA disk NOT working: ============================= Update PCI-E configuration space: PCI(0, 0, 0)[a0] = 0 PCI(0, 0, 0)[a4] = 4 * PCI(0, 0, 0)[bc] = 82a00000 PCI(0, 0, 0)[a8] = 7b600000 PCI(0, 0, 0)[ac] = 4 * PCI(0, 0, 0)[b8] = 80000000 PCI(0, 0, 0)[b0] = 80a00000 PCI(0, 0, 0)[b4] = 80800000 PCI(0, 0, 0)[7c] = 7f PCI(0, 0, 0)[70] = fe000000 PCI(0, 0, 0)[74] = 3 * PCI(0, 0, 0)[78] = fe000c00 =============================
SATA disk working: ============================= ME: FWS2: 0x161f012a * ME: Bist in progress: 0x0 ME: ICC Status : 0x1 * ME: Invoke MEBx : 0x1 ME: CPU replaced : 0x0 ============================= SATA disk NOT working: ============================= ME: FWS2: 0x161f012e * ME: Bist in progress: 0x0 ME: ICC Status : 0x3 * ME: Invoke MEBx : 0x1 ME: CPU replaced : 0x0 =============================
SATA disk working: ============================= PASSED! Tell ME that DRAM is ready ME: FWS2: 0x1650012e * ME: Bist in progress: 0x0 ME: ICC Status : 0x3 * ME: Invoke MEBx : 0x1 ME: CPU replaced : 0x0 ============================= SATA disk NOT working: ============================= PASSED! Tell ME that DRAM is ready ME: FWS2: 0x1650012a * ME: Bist in progress: 0x0 ME: ICC Status : 0x1 * ME: Invoke MEBx : 0x1 ME: CPU replaced : 0x0 =============================
SATA disk working: ============================= memcfg channel assignment: A: 1, B 0, C 2 * memcfg channel[0] config (00000000): * ECC inactive enhanced interleave mode off * rank interleave off * DIMMA 0 MB width x8 single rank, selected * DIMMB 0 MB width x8 single rank ============================= SATA disk NOT working: ============================= memcfg channel assignment: A: 0, B 1, C 2 * memcfg channel[0] config (00620020): * ECC inactive enhanced interleave mode on * rank interleave on * DIMMA 8192 MB width x8 dual rank, selected * DIMMB 0 MB width x8 single rank =============================
SATA disk working: ============================= PCH: Remap PCIe function 4 to 3 PCI: 00:1c.4 [8086/1e18] enabled PCI: 00:1c.5: Disabling device PCI: 00:1c.6: Disabling device PCI: 00:1c.6 [8086/1e1c] disabled * PCI: 00:1c.7: Disabling device ============================= SATA disk NOT working: ============================= PCH: Remap PCIe function 4 to 3 PCI: 00:1c.4 [8086/1e18] enabled PCI: 00:1c.5: Disabling device PCI: 00:1c.6: Disabling device * PCI: 00:1c.7: Disabling device =============================
SATA disk working: ============================= PCI: Leftover static devices: PCI: 00:16.1 PCI: 00:16.2 PCI: 00:16.3 PCI: 00:1c.4 PCI: 00:1c.5 * PCI: 00:1c.7 PCI: Check your devicetree.cb. ============================= SATA disk NOT working: ============================= PCI: Leftover static devices: PCI: 00:16.1 PCI: 00:16.2 PCI: 00:16.3 PCI: 00:1c.4 PCI: 00:1c.5 PCI: 00:1c.6 * PCI: 00:1c.7 PCI: Check your devicetree.cb. =============================
SATA disk working: ============================= Available memory below 4GB: 2048M Available memory above 4GB: 6070M * ============================= SATA disk NOT working: ============================= Available memory below 4GB: 2048M Available memory above 4GB: 14262M * =============================
SATA disk working: ============================= CPU physical address size: 36 bits MTRR: default type WB/UC MTRR counts: 4/4. * MTRR: UC selected as default type. * ============================= SATA disk NOT working: ============================= CPU physical address size: 36 bits MTRR: default type WB/UC MTRR counts: 4/5. * MTRR: WB selected as default type. * =============================
SATA disk working: ============================= Create SMBIOS type 17 SMBIOS tables: 682 bytes. * ============================= SATA disk NOT working: ============================= Create SMBIOS type 17 SMBIOS tables: 782 bytes. * =============================
SATA disk working: ============================= Found 1 serial ports Searching bootorder for: /pci@i0cf8/*@1f,2/drive@0/disk@0 * AHCI/0: Set transfer mode to UDMA-6 * Searching bios-geometry for: /pci@i0cf8/*@1f,2/drive@0/disk@0 * AHCI/0: registering: "AHCI/0: Samsung SSD 840 PRO Series ATA-9 Hard-Disk (238 GiBytes)" * PS2 keyboard initialized ============================= SATA disk NOT working: ============================= Found 1 serial ports * * * * PS2 keyboard initialized =============================
Vendor firmware has working SATA with same ME, what could change that makes coreboot not detect the SATA disk anymore?
The final goal is to disable ME with me_cleaner, but that also breaks SATA as documented here:
https://github.com/corna/me_cleaner/issues/119
But I think if we can get coreboot to detect SATA disk with new ME version, it can also be disabled completely.
I'm very interested in getting this to work, but I'm not sure where I should start with the debugging. Can anyone point me in the right direction? I would appreciate any ideas!!
Thanks in advance.
Regards, Mogense Jensen