[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-users] ucode=-1: did anybody have success?

On Thu, May 08, 2014 at 09:03:42PM +0200, Atom2 wrote:
> Sorry for my delay - I was away for a couple of days ...
> Am 06.05.14 23:35, schrieb Sven Köhler:
> >Am 06.05.2014 21:39, schrieb Atom2:
> >>Am 06.05.14 15:27, schrieb Sven Köhler:
> >>>Or maybe the file is taken from /lib/firmware/intel-ucode/ and is copied
> >>>to the initrd when it is updates?
> >>The truth is that you can't use the microcode.dat file directly - this
> >>is a text file whereas the CPU expects a binary file.
> >
> >It's a pity the hypervisor doesn't understand the microcode.dat format.
> >
> >>You should be able
> >>to do 'cat /lib/firmware/intel_ucode/* > /boot/microcode.blob'
> >>and that should do it - although I have used another approach that
> >>results in a much smaller blob file: My file is now onyl 10,240 bytes as
> >>opposed to 576,512 bytes compared to cat /lib/firmware/... as described
> >>above) as it only contains the required binary files for my specific CPU:
> >
> >The "cat /lib/firmware/intel_ucode/* > /boot/microcode.blob"-approach
> >seems dangerous to me. Are you sure, that simply concatenating the files
> >leaves you with a valid database?
> I assume you have already read the answer straight from the horse's mouth:
> According to Konrad this is safe and I fully trust him on this (and many
> more things XEN).

I wouldn't call myself the horse (:-)) but there is a redundancy in there.

Each of those files has its own header which the microcode code can parse
to figure out for which family/model it applies to. Also the CPU does
its own checking to make sure that the binary blob is indeed for the
right CPU.

> >
> >I think it's safer to use the iucode-tool. The following command simply
> >converts microcode.dat to the binary format, right?
> >
> >   ./iucode_tool -w /boot/microcode.blob /lib/firmware/microcode.dat
> Right. The -w defines the name of the output file and failing any other
> option iucode_tool will merge all binary files described in microcode.dat
> into a binary blob file (named microcode.blob).

Yes you can do that too. I was just thinking in terms of the easiest path.

> >
> >Can you confirm that /lib/firmware/intel-ucode/06-25-02 (for example)
> >is the file that contains all microcode for a CPU of family 6, model
> >37=0x25, and stepping 2 (which according to /proc/cpuinfo is the CPU I
> >have in my laptop, for example). These files already exist and are very
> >small.
> To be honest, I don't know and I think it is much safer to let iucode_tool
> do the magic in selecting those files required for your specific CPU model
> by adding the -S option.
> The reason I did not investigate on this is that I was not sure whether
> there is a 1:1 relation between "family & model" / "stepping" and
> "signature" / "pf [processor flags] mask" which seems to be the relevant
> piece of information to select the relevant files from (see -s [that is:
> lowercase 's'] option of iucode_tool).
> But if you really want to get to the grounds of Intel's naming schema, you
> could always use the -S option (for the CPU you run iucode_tool on) and
> crosscheck its output with those files you came up with based on
> family/model and stepping.
> >
> >>I have used a tool called 'iucode-tool' to convert the Intel
> >>distribution files to the blob binary file (I decided to name it
> >>microcode.bin and that's what I use in the module line above). This tool
> >>has a number of options that allow to include only those parts of the
> >>microcode patches that are required for your specific CPU model (it is
> >>able to scan for your CPU or you can provide the model as a command line
> >>argument)
> >
> >To include only the microcode for my CPU, I have to use the -S option of
> >iucode-tool, right?
> Right - see above.
> >
> >>Your best bet is to check whether your distribution offers iucode-tool
> >>and install it. Failing this you can also download the source and
> >>compile it (I had to do this for gentoo) - that was pretty easy.
> >
> >I'm using Gentoo too. I will request an ebuild for iucode-tool. Maybe I
> >can also convince the microcode-data maintainer to install a binary BLOB
> >in addition to microcode.dat (depending on some use-flag).
> I have seen that - no answer up to now ...
> >
> >>Hope this helps,
> >
> >You helped a lot!
> >
> >
> >Thanks,
> >   Sven
> >

Xen-users mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.