AMD Steppe Eagle: Add binary PI vendorcode files
Add all of the PI source that will remain part of coreboot to
build with a binary AGESA PI BLOB. This includes the gcc
makefiles, some Kconfig, and the AGESA standard library
functions.
Change vendorcode Makefile and Kconfig so that they can compile
AMD library files and use headers from outside the coreboot/src
tree.
The AGESA dispatcher is built using its own rules rather than
generic library generation rules in coreboot/Makefile and
coreboot/Makefile.inc. The AGESA source files are initially
copied from whereever they live into coreboot/build/agesa.
They are compiled from there. The binary PI directory has a
mandatory structure that places the AGESA BLOB into the same
directory as the support headers. These will nominally be
placed in the 3rdparty directory in coreboot.org.
The copy commands that were added to the the vendorcode
Makefile.inc ensure that only one thread will operate on each
source file by using a macro to generate the copy targets.
After the change, each copy target will operate on exactly one
source file.
Due to API issues, coreboot has no way to control the IMC to set up
fan control. Set a Kconfig flag that removes the ability to install
an IMC BLOB into CBFS.
Change-Id: I050b72a19086aaeba6cb65ce165297b10e3cfc45
Signed-off-by: Bruce Griffith <Bruce.Griffith@se-eng.com>
Reviewed-on: http://review.coreboot.org/6595
Tested-by: build bot (Jenkins)
Reviewed-by: WANG Siyuan <wangsiyuanbuaa@gmail.com>
Reviewed-by: Zheng Bao <zheng.bao@amd.com>
diff --git a/src/vendorcode/amd/Kconfig b/src/vendorcode/amd/Kconfig
new file mode 100644
index 0000000..6cc4b2c
--- /dev/null
+++ b/src/vendorcode/amd/Kconfig
@@ -0,0 +1,93 @@
+#
+# This file is part of the coreboot project.
+#
+# Copyright (C) 2013-2014 Sage Electronic Engineering, LLC
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+if CPU_AMD_AGESA_00730F01
+
+menu "AMD Platform Initialization"
+
+source src/vendorcode/amd/pi/Kconfig
+
+choice
+ prompt "AGESA source"
+ depends on CPU_AMD_AGESA
+ default CPU_AMD_AGESA_BINARY_PI if CPU_AMD_AGESA_00730F01
+ default CPU_AMD_AGESA_OPENSOURCE
+ help
+ Select the method for including the AMD Platform Initialization
+ code into coreboot. Platform Initialization code is required for
+ all AMD processors.
+
+config CPU_AMD_AGESA_BINARY_PI
+ bool "binary PI"
+ select HUDSON_DISABLE_IMC
+ help
+ Use a binary PI package. Generally, these will be stored in the
+ "3rdparty" directory. For some processors, these must be obtained
+ directly from AMD Embedded Processors Group
+ (http://www.amdcom/embedded).
+
+config CPU_AMD_AGESA_OPENSOURCE
+ bool "open-source AGESA"
+ help
+ Build the PI package ("AGESA") from source code in the "vendorcode"
+ directory.
+
+endchoice
+
+config AGESA_BINARY_PI_PATH_DEFAULT_SELECTED
+ bool
+ depends on CPU_AMD_AGESA_BINARY_PI
+ default n
+
+config AGESA_BINARY_PI_PATH
+ string "AGESA PI directory path"
+ depends on CPU_AMD_AGESA_BINARY_PI
+ default AGESA_BINARY_PI_PATH_DEFAULT if AGESA_BINARY_PI_PATH_DEFAULT_SELECTED
+ help
+ Specify where to find the AGESA headers and binary file
+ for AMD platform initialization.
+
+config AGESA_BINARY_PI_FILE_DEFAULT_SELECTED
+ bool
+ depends on CPU_AMD_AGESA_BINARY_PI
+ default n
+
+config AGESA_BINARY_PI_FILE
+ string "AGESA PI binary file name"
+ depends on CPU_AMD_AGESA_BINARY_PI
+ default AGESA_BINARY_PI_FILE_DEFAULT if AGESA_BINARY_PI_FILE_DEFAULT_SELECTED
+ help
+ Specify the binary file to use for AMD platform initialization.
+
+config AGESA_BINARY_PI_LOCATION_DEFAULT_SELECTED
+ bool
+ depends on CPU_AMD_AGESA_BINARY_PI
+ default n
+
+config AGESA_BINARY_PI_LOCATION
+ string "AGESA PI binary address in ROM"
+ depends on CPU_AMD_AGESA_BINARY_PI
+ default AGESA_BINARY_PI_LOCATION_DEFAULT if AGESA_BINARY_PI_FILE_DEFAULT_SELECTED
+ help
+ Specify the ROM address at which to store the binary Platform
+ Initialization code.
+
+endmenu
+
+endif