# AMD EDK2 Platform This is AMD folder that provides the edk2 modules to support AMD edk2 firmware solution for the server, client (e.g., Notebook) and S3 (Strategic Silicon Solutions) platforms. The board packages under this folder are the firmware reference code for booting certain AMD platforms. The definition of sub-folders is described in below sections. ## Term and Definitions * **AGESA** AMD Generic Encapsulated Software Architecture that are executed as part of a host platform BIOS. * **AMD Platform** (platform in short) AMD platform refers to a platform that supports the particular AMD SoC (processor), such as AMD EPYC Milan and Genoa processors. * **AMD Board** (board in short) AMD board is a generic terminology refers to a board that is designed based on a specific AMD SoC architecture (also referred as AMD platform). More than one boards are possibly designed to support an AMD platform with different configuration, such as 1-processor socket or 2-processor sockets board. * **AMD edk2 Platform Package** (platform package in short) The folder has the AMD edk2 platform common modules. * **AMD edk2 Board Package** (board package in short) The folder has the edk2 meta files to build the necessary edk2 firmware modules and generate the binary to run on a board. ## Package Definition * **AgesaModulePkg** This package contains all of the private interfaces and build configuration files for the AGESA support. * **AgesaPkg** This package contains all of the public interfaces and build configuration files for the AGESA support. * **AmdCbsPkg** AMD Configurable BIOS Setting. Provides the edk2 formset following the UEFI HII spec to configure BIOS settings. * **AmdCpmPkg** AMD Common Platform Module software is a BIOS procedure library designed to aid AMD customers to quickly implement AMD platform technology into their products. * **AmdPlatformPkg** AMD platform edk2 package under this folder provides the common edk2 modules that are leveraged by platforms. Usually those modules have no dependencies with particular platforms. Modules under this scope can provide a common implementation for all platforms, or may just provide a framework but the differences of implementation could be configured through the PCDs declared in AmdPlatformPkg.dec, or the board level library provided in the \Pkg. * **AmdMinBoardPkg** This package provides the common edk2 modules that can be leveraged across AMD boards using the MinPlatform framework. * **\Board** This is the folder named by SoC and accommodates one or multiple board packages that are designed based on the same SoC platform. Board folder may contain edk2 package meta files directly or the sub-folders named by \Pkg for a variety configurations of a platform. * **Pkg** This is the folder that contains edk2 package meta files for a board which is designed base on a platform. Besides the edk2 meta files, Pkg may also provides edk2 modules which are specifically to a board. ``` e.g. OverdriveBoard e.g. GenoaBoard |------Board1Pkg |------Board2Pkg ``` Below is the outline of folder structure under Platform/AMD ``` Platform/AMD |----AgesaModulePkg |----AgesaPkg |----AmdCbsPkg |----AmdCpmPkg |----AmdPlatformPkg |----AmdMinBoardPkg |----OverdriveBoard |----GenoaBoard | |------Common Modules for Genoa boards | |------Board1Pkg | | |-------Board specific modules | |------Board2Pkg | |----NextGenBoard |------Common Modules for the next generation platform boards |------Board1Pkg |------Board2Pkg |-------Board specific modules ``` ## Board Support Under progress