
On 16 December 2014 at 09:31, Simon Glass sjg@chromium.org wrote:
Hi Bin,
On 16 December 2014 at 02:41, Bin Meng bmeng.cn@gmail.com wrote:
Hi Simon,
On Tue, Dec 16, 2014 at 1:02 PM, Simon Glass sjg@chromium.org wrote:
There are several problems in the code. The device tree decode is incorrect in ways that are masked due to a matching bug. Both are fixed. Also microcode_read_rev() should be inline and called before the microcode is written.
Note: microcode writing does not work correctly on ivybridge for me. Further work is needed to resolve this. But this patch tidies up the existing code so that will be easier.
Yep, I noticed that with the new microcode.dtsi generated from the microcode tool, the endianness is different from previous ivybridge one. I think the new one is correct due to dts is using big-endian while IA processor is little-endian. I just wonder why previous dtsi could work on ivybridge? And now since we are using little-endian so we should decode dts using little-endian too. Is this endianness issue that causes the microcode writing does not work on ivybridge?
I think what happened is that I originally tested an early version of the code (perhaps before device tree), but because the error handling was broken I did not notice when it started failing, perhaps due to something unrelated. I'll get back to looking at it again sometime but for now I'm a bit stuck.
Applied to u-boot-x86.