
Hi Simon,
On Sat, Dec 19, 2015 at 10:52 AM, Simon Glass sjg@chromium.org wrote:
Hi Bin,
On 11 December 2015 at 03:55, Bin Meng bmeng.cn@gmail.com wrote:
Intel IvyBridge FSP seems to be buggy that it does not report memory used by FSP itself as reserved in the resource descriptor HOB. The FSP specification does not describe how resource descriptor HOBs are generated by the FSP to describe what memory regions. It looks newer FSPs like Queensbay and BayTrail do not have such issue. This causes U-Boot relocation overwrites the important boot service data which is used by FSP, and the subsequent call to fsp_notify() will fail.
To resolve this, we find out the lowest memory base address allocated by FSP for the boot service data when walking through the HOB list in fsp_get_usable_lowmem_top(). Check whether the memory top address is below the FSP HOB list, and if not, use the lowest memory base address allocated by FSP as the memory top address.
Signed-off-by: Bin Meng bmeng.cn@gmail.com
arch/x86/lib/fsp/fsp_support.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+)
Acked-by: Simon Glass sjg@chromium.org Tested on link (ivybridge non-FSP) Tested-by: Simon Glass sjg@chromium.org
But if this is a bug I'd prefer to have it behind an #iffdef, or with a large comment in the code. Otherwise we might think it is an important feature for all platforms.
Yep, will change to use #ifdef in v2.
Regards, Bin