Dear EDK2 community members, Recently, I have gained interest in the Intel FSP and have been reading the Intel documents regarding its design and integration with EDK2. In the white paper 'A Tour Beyond BIOS Using the Intel(r) Firmware Support Package with the EFI Developer Kit II', the chapter 'FSP Wrapper Boot Flow' mentions different ways of how SecCore and following can interact with FSP. This, in my opinion, implies that SecCore is present in source-form (likely IntelFspWrapperPkg/FspWrapperSecCore), while the actual silicon initialization is of course within the FSP binary. This is how I understood it and thought it made sense. However, when I opened a few of the FSP Firmware Volume files, I discovered that it did not only have the FSP header and initialization PEIMs/drivers, but also SecCore, PeiCore and FspDxeIpl embedded. For what reason are these generic modules embedded? Until discovering them within the image, I had assumed these would be provided by the consumer package. To better understand the creation and consumption of Intel FSP, I have looked at Quark and Braswell Reference Codes provided within the edk2-platforms tree. BraswellPlatformPkg, which consumes BSWFSP.fd that has SecCore embedded, also consumes FspWrapperSecCore (seen here: https://github.com/tianocore/edk2-platforms/blob/pentium-celeron-n-udk2015/BraswellPlatformPkg/PlatformPkg.fdf#L387) from the source tree. If I am not mistaken, building it would end up having SecCore duplicated - once as part of the FSP volume (binary) and once within the FVRECOVERY volume (source). As SecCore includes the Reset Vector, wouldn't one of the two be obsolete as it would never be invoked? The same applies to PeiCore and a few other generic modules which are part oft he chain.
Furthermore, a couple of modules that have 'Dxe' in their name are declared as PEI module in their FFS header, for example 'PchInitDxeFsp'. I have observed this in all FSP version I have looked at, including Braswell, Broadwell and Ivy Bridge. Is there any special reason for that? Is it because the FSP initialization code is what has them loaded and called, so it doesn't matter? Please forgive me for my ignorance and thank you in advance for your time! Best regards, Marvin. _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel