[coreboot] Microcode problem with Braswell CPU
Zoran Stojsavljevic
zoran.stojsavljevic at gmail.com
Thu Apr 28 13:50:58 CEST 2016
Hello Alex,
Googled a bit. Here is what I found:
https://chromium.googlesource.com/chromiumos/third_party/coreboot/+/broadwell_fsp/src/cpu/intel/microcode/microcode.c
Revied a bit code... Would advise to print (just before instruction: wrmsr(
0x79, msr); the following in hex format with printk: msr.lo, msr.hi, and:
printk("microcode: updated to revision 0x%x date=%04x-%02x-%02x\n",
read_microcode_rev(), m->date & 0xffff, (m->date >> 24) & 0xff,(m->date >>
16) & 0xff);
And see if these values are correct/expected.
Please, let us know.
Best Regards,
Zoran
On Thu, Apr 28, 2016 at 10:38 AM, Alexander Böcken <
Alexander.Boecken at junger-audio.com> wrote:
> Hi community,
>
> I'm trying to get coreboot running on a Braswell CPU but it hangs when
> updating the microcode. I'm stuck in bootblock before CAR and could pin
> down the problem to the intel_microcode_load_unlocked function in
> src/cpu/intel/microcode.c where coreboot writes the microcode base address
> to the IA32_BIOS_UPDT_TRIG register (0x79).
>
> outb(0xF7, 0x80);
>
> msr.lo = (unsigned long)m + sizeof(struct microcode);
> msr.hi = 0;
> wrmsr(0x79, msr);
>
> outb(0xF8, 0x80);
>
> The outb calls have been added by me, and F7 is just the last post code I
> see, a few seconds before the CPU reboots. It never reaches F8. So I
> checked the microcode that I've received from Intel and everything seems
> fine. The microcode signature matches the CPUID, the platform flags match,
> the checksum correctly yields to zero, and the base address is aligned on a
> 16-byte boundary. Some checks are also done by coreboot at runtime. I just
> can't figure out what the problem is here.
>
> Some more Info:
>
> $ build/cbfstool build/coreboot.rom print
> Performing operation on 'COREBOOT' region...
> Name Offset Type Size
> cbfs master header 0x0 cbfs header 32
> fallback/romstage 0x80 stage 30660
> fallback/ramstage 0x78c0 stage 63482
> fallback/payload 0x17100 payload 61118
> config 0x26000 raw 439
> revision 0x26200 raw 575
> cmos_layout.bin 0x26480 cmos_layout 1128
> fallback/dsdt.aml 0x26940 raw 17603
> payload_config 0x2ae80 raw 1563
> payload_revision 0x2b500 raw 233
> (empty) 0x2b640 null 248856
> cpu_microcode_blob.bin 0x68280 microcode 68608
> (empty) 0x78f00 null 683928
> fsp.bin 0x11fec0 fsp 296960
> (empty) 0x168700 null 489368
> mrc.cache 0x1dfec0 mrc_cache 65536
> (empty) 0x1eff00 null 63960
> bootblock 0x1ff900 bootblock 1424
>
> $ cat ".config" | grep "MICROCODE"
> # CONFIG_USES_MICROCODE_HEADER_FILES is not set
> CONFIG_CPU_MICROCODE_CBFS_GENERATE=y
> # CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set
> # CONFIG_CPU_MICROCODE_CBFS_NONE is not set
> # CONFIG_CPU_MICROCODE_MULTIPLE_FILES is not set
> CONFIG_CPU_MICROCODE_CBFS_LEN=0x10C00
> CONFIG_CPU_MICROCODE_CBFS_LOC=0xFFE68400
> # CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set
>
> I really appreciate any hints.
>
> Alex
>
> --
> coreboot mailing list: coreboot at coreboot.org
> https://www.coreboot.org/mailman/listinfo/coreboot
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20160428/d6e76845/attachment.html>
More information about the coreboot
mailing list