Closed ArthurHeymans closed 5 years ago
@ArthurHeymans take a look at note in 6.5.4: https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/fsp-architecture-spec-v1-1.pdf
I guess it should be mentioned in Integration Guide as well to avoid confusion.
@ArthurHeymans, this is one of the key improvements between FSP v1.1 and v2.0. Please note the FSP spec v1.1 section 6.5 page 17 states the following:
6.5 TempRamInit API
This API should be called only once after the system comes out the reset, and it must be called before any other FSP API. Otherwise, unexpected results may occur.
In the FSP spec v2.0 section 8.5 page 28, we changed this to read:
Calling this API may be optional. Refer to the Integration Guide for any prerequisites before directly calling FspMemoryInit() API.
The behavior you note is expected and documented. There are no plans to upgrade Braswell any of the newer FSP specs. Accordingly I am closing this issue.
The Braswell FSP1.1 TempRaminit sets up a larger CAR region than advertised. It advertised 0x4000 but in reality sets up a CAR region 0x20000 size. It also places some information (for instance strings like "MCUD" and "PER0") at the top of that CAR region. If somehow that information is not present FSP_MEMORY_INIT will not succeed.
This dependency on FSP-T of FSP_MEMORY_INIT and not touching that CAR region is undocumented and should be fixed. It is not present or was removed on the skylake FSP1.1.