Until now, the buildOpts.c files were primarily made out of copy-pasted AGESA options, commented-out definitions and several useless comments; that is, the materialization of technical debt in GCC-parsable form... Until now. It is assumed that the boards in the tree still boot. So, by comparing their settings, we can extract saner defaults to place into AGESA. Many of the settings were common across all boards of the same family, so we promote those values to default settings. In some cases flipping a flag was required, so the macros to alter that option had to be adapted as well. Since those AGESA versions are expected to never receive updates, it should not be a problem to change their files to suit our needs. As a result, all but two buildOpts.c files now have less than 100 lines. AGESA f14 boards need less than 50 lines, and f15tn/f16kb just require about 60 or 70 lines in those files. Hopefully, this will make porting more mainboards using AGESA f14/f15tn/f16kb a substantially easier task. TEST=Use abuild --timeless to check that all AGESA f14/f15tn/f16kb mainboards result in identical coreboot binaries. Change-Id: Ife1ca5177d85441b9a7b24d64d7fcbabde6e0409 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/41667 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Mike Banon <mikebdp2@gmail.com>
62 lines
2.2 KiB
C
62 lines
2.2 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
|
|
#include <vendorcode/amd/agesa/f15tn/AGESA.h>
|
|
|
|
/* Include the files that instantiate the configuration definitions. */
|
|
#include <vendorcode/amd/agesa/f15tn/Include/AdvancedApi.h>
|
|
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/cpuFamilyTranslation.h>
|
|
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/Feature/cpuFeatures.h>
|
|
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/heapManager.h>
|
|
/* AGESA nonsense: the next two headers depend on heapManager.h */
|
|
#include <vendorcode/amd/agesa/f15tn/Proc/Common/CreateStruct.h>
|
|
#include <vendorcode/amd/agesa/f15tn/Proc/CPU/cpuEarlyInit.h>
|
|
/* These tables are optional and may be used to adjust memory timing settings */
|
|
#include <vendorcode/amd/agesa/f15tn/Proc/Mem/mm.h>
|
|
#include <vendorcode/amd/agesa/f15tn/Proc/Mem/mn.h>
|
|
|
|
/* Select the CPU family */
|
|
#define INSTALL_FAMILY_15_MODEL_1x_SUPPORT TRUE
|
|
|
|
/* Select the CPU socket type */
|
|
#define INSTALL_FM2_SOCKET_SUPPORT TRUE
|
|
|
|
//#define BLDOPT_REMOVE_UDIMMS_SUPPORT TRUE
|
|
#define BLDOPT_REMOVE_SODIMMS_SUPPORT TRUE
|
|
#define BLDOPT_REMOVE_RDIMMS_SUPPORT TRUE
|
|
#define BLDOPT_REMOVE_LRDIMMS_SUPPORT TRUE
|
|
#define BLDOPT_REMOVE_ECC_SUPPORT TRUE
|
|
#define BLDOPT_REMOVE_SRAT FALSE
|
|
#define BLDOPT_REMOVE_WHEA FALSE
|
|
#define BLDOPT_REMOVE_CRAT TRUE
|
|
|
|
/* Build configuration values here. */
|
|
#define BLDCFG_AMD_PLATFORM_TYPE AMD_PLATFORM_MOBILE
|
|
|
|
#define BLDCFG_MEMORY_RDIMM_CAPABLE FALSE
|
|
#define BLDCFG_MEMORY_UDIMM_CAPABLE TRUE
|
|
#define BLDCFG_MEMORY_SODIMM_CAPABLE FALSE
|
|
#define BLDCFG_MEMORY_CHANNEL_INTERLEAVING TRUE
|
|
#define BLDCFG_MEMORY_CLOCK_SELECT DDR1600_FREQUENCY
|
|
#define BLDCFG_ENABLE_ECC_FEATURE FALSE
|
|
#define BLDCFG_ECC_SYNC_FLOOD FALSE
|
|
|
|
#define BLDCFG_UMA_ALLOCATION_MODE UMA_SPECIFIED
|
|
#define BLDCFG_UMA_ALLOCATION_SIZE 0x2000 /* (0x2000 << 16) = 512M */
|
|
|
|
#define BLDCFG_IOMMU_SUPPORT TRUE
|
|
|
|
#define BLDCFG_CFG_GNB_HD_AUDIO TRUE
|
|
|
|
/* Customized OEM build configurations for FCH component */
|
|
#define BLDCFG_FCH_GPP_LINK_CONFIG PortA1B1C1D1
|
|
#define BLDCFG_FCH_GPP_PORT0_PRESENT TRUE
|
|
#define BLDCFG_FCH_GPP_PORT1_PRESENT TRUE
|
|
|
|
GPIO_CONTROL f2a85_m_gpio[] = {
|
|
{-1}
|
|
};
|
|
#define BLDCFG_FCH_GPIO_CONTROL_LIST (f2a85_m_gpio)
|
|
|
|
/* Moving this include up will break AGESA. */
|
|
#include <PlatformInstall.h>
|