[coreboot-gerrit] Patch merged into coreboot/master: fsp1_1: provide binding to UEFI version

gerrit at coreboot.org gerrit at coreboot.org
Thu Sep 10 17:52:32 CET 2015


the following patch was just integrated into master:
commit 789f2b6c435c7f31591e2c5e969ba96df21a191d
Author: Aaron Durbin <adurbin at chromium.org>
Date:   Wed Sep 9 17:05:06 2015 -0500

    fsp1_1: provide binding to UEFI version
    
    FSP has some unique attributes which makes integration
    cumbersome:
    
    1. FSP header files do not include the types they need. Like
       EDKII development it's expected types are provided by the
       build system. Therefore, one needs to include the proper
       files to avoid compilation issues.
    2. An implementation of FSP for a chipset may use different
       versions of the UEFI PI spec implementation. EDKII is a
       proxy for all of UEFI specifications. In order to provide
       flexibility one needs to binding a set of types and
       structures from an UEFI PI implementation.
    3. Each chipset FSP 1.1 implementation has a FspUpdVpd.h
       file which defines it's own types. Commonality between
       FSP chipset implementations are only named typedef
       structs. The fields within are not consistent. And
       because of FSP's insistence on typedefs it makes it
       near impossible to forward declare structs.
    
    The above 3 means one needs to include the correct UEFI
    type bindings when working with FSP. The current
    implementation had the SoC picking include paths in the
    edk2 directory and using a bare <uefi_types.h> include.
    Also, with the prior fsp_util.h implementation the SoC's
    FSP FspUpdVpd.h header file was required since for providing
    all the types at once (Generic FSP 1.1 and SoC types).
    
    The binding has been changed in the following manner:
    1. CONFIG_UEFI_2_4_BINDING option added which FSP 1.1
       selects. No other bindings are currently available,
       but this provides the policy.
    2. Based on CONFIG_UEFI_2_4_BINDING the proper include
       paths are added to the CPPFLAGS_common.
    3. SoC Makefile.inc does not bind UEFI types nor does
       it adjust CPPFLAGS_common in any way.
    4. Provide a include/fsp directory under fsp1_1 and
       expose src/drivers/intel/fsp1_1/include in the
       include path. This split can allow a version 2,
       for example, FSP to provide its own include files.
       Yes, that means there needs to be consistency in
       APIs, however that's not this patch.
    5. Provide a way for code to differentiate the FSP spec
       types (fsp/api.h) from the chipset FSP types
       (fsp/soc_binding.h). This allows for code re-use that
       doesn't need the chipset types to be defined such as
       the FSP relocation code.
    
    BUG=chrome-os-partner:44827
    BRANCH=None
    TEST=Built and booted on glados.
    
    Signed-off-by: Aaron Durbin <adubin at chromium.org>
    
    Change-Id: I894165942cfe36936e186af5221efa810be8bb29
    Reviewed-on: http://review.coreboot.org/11606
    Reviewed-by: Duncan Laurie <dlaurie at google.com>
    Tested-by: build bot (Jenkins)


See http://review.coreboot.org/11606 for details.

-gerrit



More information about the coreboot-gerrit mailing list