vendorcode/amd: unify amdlib for binary pi
Instead of having three copies of amdlib, the glue code for Agesa, let's share the code between all implementations (and come up with a versioned API if needed at some point in the future) Change-Id: I38edffd1bbb04785765d20ca30908a1101c0dda0 Signed-off-by: Stefan Reinauer <stefan.reinauer@coreboot.org> Reviewed-on: http://review.coreboot.org/10507 Tested-by: build bot (Jenkins) Reviewed-by: Marc Jones <marc.jones@se-eng.com>
This commit is contained in:
parent
385f0104e7
commit
55feadd21b
|
@ -1,55 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
# its contributors may be used to endorse or promote products derived
|
|
||||||
# from this software without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
|
|
||||||
if CPU_AMD_PI_00630F01
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_DEFAULTS # dummy
|
|
||||||
def_bool y
|
|
||||||
select AGESA_BINARY_PI_LOCATION_DEFAULT_SELECTED
|
|
||||||
select AGESA_BINARY_PI_PATH_DEFAULT_SELECTED
|
|
||||||
select AGESA_BINARY_PI_FILE_DEFAULT_SELECTED
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_PATH_DEFAULT
|
|
||||||
string
|
|
||||||
default "3rdparty/blobs/pi/amd/00630F01"
|
|
||||||
help
|
|
||||||
The default binary file name to use for AMD platform initialization.
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_FILE_DEFAULT
|
|
||||||
string
|
|
||||||
default "FP3/AGESA.bin"
|
|
||||||
help
|
|
||||||
The default binary file name to use for AMD platform initialization.
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_LOCATION_DEFAULT
|
|
||||||
hex
|
|
||||||
default 0xFFE00000
|
|
||||||
help
|
|
||||||
The default ROM address at which to store the binary Platform
|
|
||||||
Initialization code.
|
|
||||||
|
|
||||||
endif
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,393 +0,0 @@
|
||||||
/* $NoKeywords:$ */
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* AMD Library
|
|
||||||
*
|
|
||||||
* Contains interface to the AMD AGESA library
|
|
||||||
*
|
|
||||||
* @xrefitem bom "File Content Label" "Release Content"
|
|
||||||
* @e project: AGESA
|
|
||||||
* @e sub-project: Lib
|
|
||||||
* @e \$Revision: 85030 $ @e \$Date: 2012-12-26 00:20:10 -0600 (Wed, 26 Dec 2012) $
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
******************************************************************************
|
|
||||||
*
|
|
||||||
* Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
|
|
||||||
* 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
* its contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
******************************************************************************
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef _AMD_LIB_H_
|
|
||||||
#define _AMD_LIB_H_
|
|
||||||
|
|
||||||
#define IOCF8 0xCF8
|
|
||||||
#define IOCFC 0xCFC
|
|
||||||
|
|
||||||
// Reg Values for ReadCpuReg and WriteCpuReg
|
|
||||||
#define CR4_REG 0x04
|
|
||||||
#define DR0_REG 0x10
|
|
||||||
#define DR1_REG 0x11
|
|
||||||
#define DR2_REG 0x12
|
|
||||||
#define DR3_REG 0x13
|
|
||||||
#define DR7_REG 0x17
|
|
||||||
|
|
||||||
// PROTOTYPES FOR amdlib32.asm
|
|
||||||
UINT8
|
|
||||||
ReadIo8 (
|
|
||||||
IN UINT16 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT16
|
|
||||||
ReadIo16 (
|
|
||||||
IN UINT16 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
ReadIo32 (
|
|
||||||
IN UINT16 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
WriteIo8 (
|
|
||||||
IN UINT16 Address,
|
|
||||||
IN UINT8 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
WriteIo16 (
|
|
||||||
IN UINT16 Address,
|
|
||||||
IN UINT16 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
WriteIo32 (
|
|
||||||
IN UINT16 Address,
|
|
||||||
IN UINT32 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT8
|
|
||||||
Read64Mem8 (
|
|
||||||
IN UINT64 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT16
|
|
||||||
Read64Mem16 (
|
|
||||||
IN UINT64 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
Read64Mem32 (
|
|
||||||
IN UINT64 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
Write64Mem8 (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT8 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
Write64Mem16 (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT16 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
Write64Mem32 (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT32 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT64
|
|
||||||
ReadTSC (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
// MSR
|
|
||||||
VOID
|
|
||||||
LibAmdMsrRead (
|
|
||||||
IN UINT32 MsrAddress,
|
|
||||||
OUT UINT64 *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMsrWrite (
|
|
||||||
IN UINT32 MsrAddress,
|
|
||||||
IN UINT64 *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// IO
|
|
||||||
VOID
|
|
||||||
LibAmdIoRead (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
OUT VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdIoWrite (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
IN CONST VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdIoRMW (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdIoPoll (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN UINT64 Delay,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// Memory or MMIO
|
|
||||||
VOID
|
|
||||||
LibAmdMemRead (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
OUT VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemWrite (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
IN CONST VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemRMW (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemPoll (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN UINT64 Delay,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// PCI
|
|
||||||
VOID
|
|
||||||
LibAmdPciRead (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
OUT VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciWrite (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
IN CONST VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciRMW (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciPoll (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN UINT64 Delay,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciReadBits (
|
|
||||||
IN PCI_ADDR Address,
|
|
||||||
IN UINT8 Highbit,
|
|
||||||
IN UINT8 Lowbit,
|
|
||||||
OUT UINT32 *Value,
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciWriteBits (
|
|
||||||
IN PCI_ADDR Address,
|
|
||||||
IN UINT8 Highbit,
|
|
||||||
IN UINT8 Lowbit,
|
|
||||||
IN CONST UINT32 *Value,
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciFindNextCap (
|
|
||||||
IN OUT PCI_ADDR *Address,
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// CPUID
|
|
||||||
VOID
|
|
||||||
LibAmdCpuidRead (
|
|
||||||
IN UINT32 CpuidFcnAddress,
|
|
||||||
OUT CPUID_DATA *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// Utility Functions
|
|
||||||
VOID
|
|
||||||
LibAmdMemFill (
|
|
||||||
IN VOID *Destination,
|
|
||||||
IN UINT8 Value,
|
|
||||||
IN UINTN FillLength,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemCopy (
|
|
||||||
IN VOID *Destination,
|
|
||||||
IN CONST VOID *Source,
|
|
||||||
IN UINTN CopyLength,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
CONST VOID *
|
|
||||||
LibAmdLocateImage (
|
|
||||||
IN CONST VOID *StartAddress,
|
|
||||||
IN CONST VOID *EndAddress,
|
|
||||||
IN UINT32 Alignment,
|
|
||||||
IN CONST CHAR8 ModuleSignature[8]
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
LibAmdGetPackageType (
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
BOOLEAN
|
|
||||||
LibAmdVerifyImageChecksum (
|
|
||||||
IN CONST VOID *ImagePtr
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT8
|
|
||||||
LibAmdBitScanReverse (
|
|
||||||
IN UINT32 value
|
|
||||||
);
|
|
||||||
UINT8
|
|
||||||
LibAmdBitScanForward (
|
|
||||||
IN UINT32 value
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdReadCpuReg (
|
|
||||||
IN UINT8 RegNum,
|
|
||||||
OUT UINT32 *Value
|
|
||||||
);
|
|
||||||
VOID
|
|
||||||
LibAmdWriteCpuReg (
|
|
||||||
IN UINT8 RegNum,
|
|
||||||
IN UINT32 Value
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdWriteBackInvalidateCache (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdSimNowEnterDebugger (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdHDTBreakPoint (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT8
|
|
||||||
LibAmdAccessWidth (
|
|
||||||
IN ACCESS_WIDTH AccessWidth
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdCLFlush (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT8 Count
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
StopHere (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdFinit (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdFnclex (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdReadMxcsr (
|
|
||||||
OUT UINT32 *Value
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdWriteMxcsr (
|
|
||||||
IN UINT32 *Value
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif // _AMD_LIB_H_
|
|
|
@ -1,123 +0,0 @@
|
||||||
#*****************************************************************************
|
|
||||||
#
|
|
||||||
# Copyright (c) 2012, Advanced Micro Devices, Inc.
|
|
||||||
# 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
# its contributors may be used to endorse or promote products derived
|
|
||||||
# from this software without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
#*****************************************************************************
|
|
||||||
|
|
||||||
# AGESA V5 Files
|
|
||||||
AGESA_ROOT = $(call strip_quotes,$(src)/../$(CONFIG_AGESA_BINARY_PI_PATH))
|
|
||||||
|
|
||||||
AGESA_INC = -I$(obj)
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/mainboard/$(MAINBOARDDIR)
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/binaryPI
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Include
|
|
||||||
AGESA_INC += -I$(src)/vendorcode/amd/pi/00630F01
|
|
||||||
AGESA_INC += -I$(src)/vendorcode/amd/pi/00630F01/Lib
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Feature
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/IDS
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/northbridge/amd/pi
|
|
||||||
AGESA_INC += -I$(src)/southbridge/amd/pi/hudson
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/arch/x86/include
|
|
||||||
AGESA_INC += -I$(src)/include
|
|
||||||
|
|
||||||
AGESA_CFLAGS += -march=amdfam10 -mno-3dnow -fno-zero-initialized-in-bss -fno-strict-aliasing
|
|
||||||
CFLAGS_x86_32 += $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
export AGESA_ROOT := $(AGESA_ROOT)
|
|
||||||
export AGESA_INC := $(AGESA_INC)
|
|
||||||
export AGESA_CFLAGS := $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
CC_bootblock := $(CC_bootblock) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_romstage := $(CC_romstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_ramstage := $(CC_ramstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_x86_32 := $(CC_x86_32) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
|
|
||||||
define create_agesa_cp_template
|
|
||||||
|
|
||||||
# $1 AGESA source file
|
|
||||||
# $2 AGESA copy-to location
|
|
||||||
$(agesa_src_path)/$(notdir $2): $2 $(agesa_src_path)
|
|
||||||
@printf " AGESA Copying $$(notdir $2) => $$(@D)\n"
|
|
||||||
if [ ! -r $(agesa_src_path)/$(notdir $2) ]; then \
|
|
||||||
cp -uf $2 $$(@D); \
|
|
||||||
fi
|
|
||||||
|
|
||||||
$(agesa_obj_path)/$1.libagesa.o: $(agesa_src_path)/$(notdir $2) $(obj)/config.h $(src)/include/kconfig.h $(agesa_obj_path)
|
|
||||||
@printf " CC $(subst $(agesa_obj_path)/,,$$(@))\n"
|
|
||||||
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
|
||||||
$(AGESA_INC) \
|
|
||||||
-include $(obj)/config.h -include $(src)/include/kconfig.h \
|
|
||||||
-o $$@ \
|
|
||||||
$(agesa_src_path)/$(notdir $2)
|
|
||||||
|
|
||||||
endef
|
|
||||||
|
|
||||||
agesa_raw_files += $(wildcard $(src)/vendorcode/amd/pi/00630F01/Lib/*.[cS])
|
|
||||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/binaryPI/*.[cS])
|
|
||||||
|
|
||||||
classes-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += libagesa
|
|
||||||
$(eval $(call create_class_compiler,libagesa,x86_32))
|
|
||||||
|
|
||||||
agesa_src_files := $(strip $(sort $(foreach file,$(strip $(agesa_raw_files)),$(call strip_quotes,$(file)))))
|
|
||||||
agesa_obj_path := $(strip $(obj)/vendorcode/amd)
|
|
||||||
agesa_src_path := $(strip $(obj)/agesa)
|
|
||||||
agesa_src_copies := $(strip $(foreach file,$(agesa_src_files),$(agesa_obj_path)/$(notdir $(file))))
|
|
||||||
agesa_obj_copies := $(strip $(agesa_src_copies:.c=.libagesa.o))
|
|
||||||
|
|
||||||
$(agesa_src_path):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
$(agesa_obj_path):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
$(foreach file,$(strip $(agesa_src_files)),$(eval $(call create_agesa_cp_template,$(basename $(notdir $(file))),$(file))))
|
|
||||||
|
|
||||||
$(obj)/agesa/libagesa.00630F01.a: $(agesa_obj_copies)
|
|
||||||
@printf " AGESA $(subst $(agesa_obj_path)/,,$(@))\n"
|
|
||||||
ar rcs $@ $+
|
|
||||||
|
|
||||||
romstage-libs += $(obj)/agesa/libagesa.00630F01.a
|
|
||||||
ramstage-libs += $(obj)/agesa/libagesa.00630F01.a
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
|
|
||||||
cbfs-files-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += AGESA
|
|
||||||
AGESA-file := $(CONFIG_AGESA_BINARY_PI_PATH)/$(CONFIG_AGESA_BINARY_PI_FILE)
|
|
||||||
AGESA-type := raw
|
|
||||||
AGESA-position := $(CONFIG_AGESA_BINARY_PI_LOCATION)
|
|
|
@ -1,58 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
# its contributors may be used to endorse or promote products derived
|
|
||||||
# from this software without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
|
|
||||||
if CPU_AMD_PI_00660F01
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_DEFAULTS # dummy
|
|
||||||
def_bool y
|
|
||||||
select AGESA_BINARY_PI_LOCATION_DEFAULT_SELECTED
|
|
||||||
select AGESA_BINARY_PI_PATH_DEFAULT_SELECTED
|
|
||||||
select AGESA_BINARY_PI_FILE_DEFAULT_SELECTED
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_PATH_DEFAULT
|
|
||||||
string
|
|
||||||
depends on CPU_AMD_PI_00660F01
|
|
||||||
default "3rdparty/blobs/pi/amd/00660F01"
|
|
||||||
help
|
|
||||||
The default binary file name to use for AMD platform initialization.
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_FILE_DEFAULT
|
|
||||||
string
|
|
||||||
depends on CPU_AMD_PI_00660F01
|
|
||||||
default "FP4/AGESA.bin"
|
|
||||||
help
|
|
||||||
The default binary file name to use for AMD platform initialization.
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_LOCATION_DEFAULT
|
|
||||||
hex
|
|
||||||
depends on CPU_AMD_PI_00660F01
|
|
||||||
default 0xFFE00000
|
|
||||||
help
|
|
||||||
The default ROM address at which to store the binary Platform
|
|
||||||
Initialization code.
|
|
||||||
|
|
||||||
endif
|
|
|
@ -1,127 +0,0 @@
|
||||||
#*****************************************************************************
|
|
||||||
#
|
|
||||||
# Copyright (c) 2012, Advanced Micro Devices, Inc.
|
|
||||||
# 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
# its contributors may be used to endorse or promote products derived
|
|
||||||
# from this software without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
#*****************************************************************************
|
|
||||||
|
|
||||||
# AGESA V5 Files
|
|
||||||
AGESA_ROOT = $(call strip_quotes,$(src)/../$(CONFIG_AGESA_BINARY_PI_PATH))
|
|
||||||
|
|
||||||
AGESA_INC = -I$(obj)
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/mainboard/$(MAINBOARDDIR)
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/binaryPI
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Include
|
|
||||||
AGESA_INC += -I$(src)/vendorcode/amd/pi/00660F01
|
|
||||||
AGESA_INC += -I$(src)/vendorcode/amd/pi/00660F01/Lib
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Feature
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Kern
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Psp/PspBaseLib
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/northbridge/amd/pi
|
|
||||||
AGESA_INC += -I$(src)/southbridge/amd/pi/hudson
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/arch/x86/include
|
|
||||||
AGESA_INC += -I$(src)/include
|
|
||||||
|
|
||||||
AGESA_CFLAGS += -march=amdfam10 -mno-3dnow -fno-zero-initialized-in-bss -fno-strict-aliasing
|
|
||||||
CFLAGS_x86_32 += $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
export AGESA_ROOT := $(AGESA_ROOT)
|
|
||||||
export AGESA_INC := $(AGESA_INC)
|
|
||||||
export AGESA_CFLAGS := $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
CC_bootblock := $(CC_bootblock) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_romstage := $(CC_romstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_ramstage := $(CC_ramstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_x86_32 := $(CC_x86_32) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
|
|
||||||
define create_agesa_cp_template
|
|
||||||
|
|
||||||
# $1 AGESA source file
|
|
||||||
# $2 AGESA copy-to location
|
|
||||||
$(agesa_src_path)/$(notdir $2): $2 $(agesa_src_path)
|
|
||||||
@printf " AGESA Copying $$(notdir $2) => $$(@D)\n"
|
|
||||||
if [ ! -r $(agesa_src_path)/$(notdir $2) ]; then \
|
|
||||||
cp -uf $2 $$(@D); \
|
|
||||||
fi
|
|
||||||
|
|
||||||
$(agesa_obj_path)/$1.libagesa.o: $(agesa_src_path)/$(notdir $2) $(obj)/config.h $(src)/include/kconfig.h $(agesa_obj_path)
|
|
||||||
@printf " CC $(subst $(agesa_obj_path)/,,$$(@))\n"
|
|
||||||
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
|
||||||
$(AGESA_INC) \
|
|
||||||
-include $(obj)/config.h -include $(src)/include/kconfig.h \
|
|
||||||
-o $$@ \
|
|
||||||
$(agesa_src_path)/$(notdir $2)
|
|
||||||
|
|
||||||
endef
|
|
||||||
|
|
||||||
agesa_raw_files += $(wildcard $(src)/vendorcode/amd/pi/00660F01/Lib/*.[cS])
|
|
||||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/binaryPI/*.[cS])
|
|
||||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Kern/KernImc/*.[cS])
|
|
||||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Common/*.[cS])
|
|
||||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Psp/PspBaseLib/*.[cS])
|
|
||||||
|
|
||||||
classes-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += libagesa
|
|
||||||
$(eval $(call create_class_compiler,libagesa,x86_32))
|
|
||||||
|
|
||||||
agesa_src_files := $(strip $(sort $(foreach file,$(strip $(agesa_raw_files)),$(call strip_quotes,$(file)))))
|
|
||||||
agesa_obj_path := $(strip $(obj)/vendorcode/amd)
|
|
||||||
agesa_src_path := $(strip $(obj)/agesa)
|
|
||||||
agesa_src_copies := $(strip $(foreach file,$(agesa_src_files),$(agesa_obj_path)/$(notdir $(file))))
|
|
||||||
agesa_obj_copies := $(strip $(agesa_src_copies:.c=.libagesa.o))
|
|
||||||
|
|
||||||
$(agesa_src_path):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
$(agesa_obj_path):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
$(foreach file,$(strip $(agesa_src_files)),$(eval $(call create_agesa_cp_template,$(basename $(notdir $(file))),$(file))))
|
|
||||||
|
|
||||||
$(obj)/agesa/libagesa.00660F01.a: $(agesa_obj_copies)
|
|
||||||
@printf " AGESA $(subst $(agesa_obj_path)/,,$(@))\n"
|
|
||||||
ar rcs $@ $+
|
|
||||||
|
|
||||||
romstage-libs += $(obj)/agesa/libagesa.00660F01.a
|
|
||||||
ramstage-libs += $(obj)/agesa/libagesa.00660F01.a
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
|
|
||||||
cbfs-files-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += AGESA
|
|
||||||
AGESA-file := $(CONFIG_AGESA_BINARY_PI_PATH)/$(CONFIG_AGESA_BINARY_PI_FILE)
|
|
||||||
AGESA-type := raw
|
|
||||||
AGESA-position := $(CONFIG_AGESA_BINARY_PI_LOCATION)
|
|
|
@ -1,55 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
# its contributors may be used to endorse or promote products derived
|
|
||||||
# from this software without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
|
|
||||||
if CPU_AMD_PI_00730F01
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_DEFAULTS # dummy
|
|
||||||
def_bool y
|
|
||||||
select AGESA_BINARY_PI_LOCATION_DEFAULT_SELECTED
|
|
||||||
select AGESA_BINARY_PI_PATH_DEFAULT_SELECTED
|
|
||||||
select AGESA_BINARY_PI_FILE_DEFAULT_SELECTED
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_PATH_DEFAULT
|
|
||||||
string
|
|
||||||
default "3rdparty/blobs/pi/amd/00730F01"
|
|
||||||
help
|
|
||||||
The default binary file name to use for AMD platform initialization.
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_FILE_DEFAULT
|
|
||||||
string
|
|
||||||
default "FT3b/AGESA.bin"
|
|
||||||
help
|
|
||||||
The default binary file name to use for AMD platform initialization.
|
|
||||||
|
|
||||||
config AGESA_BINARY_PI_LOCATION_DEFAULT
|
|
||||||
hex
|
|
||||||
default 0xFFE00000
|
|
||||||
help
|
|
||||||
The default ROM address at which to store the binary Platform
|
|
||||||
Initialization code.
|
|
||||||
|
|
||||||
endif
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,393 +0,0 @@
|
||||||
/* $NoKeywords:$ */
|
|
||||||
/**
|
|
||||||
* @file
|
|
||||||
*
|
|
||||||
* AMD Library
|
|
||||||
*
|
|
||||||
* Contains interface to the AMD AGESA library
|
|
||||||
*
|
|
||||||
* @xrefitem bom "File Content Label" "Release Content"
|
|
||||||
* @e project: AGESA
|
|
||||||
* @e sub-project: Lib
|
|
||||||
* @e \$Revision: 85030 $ @e \$Date: 2012-12-26 00:20:10 -0600 (Wed, 26 Dec 2012) $
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
******************************************************************************
|
|
||||||
*
|
|
||||||
* Copyright (c) 2008 - 2013, Advanced Micro Devices, Inc.
|
|
||||||
* 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* * Redistributions of source code must retain the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer.
|
|
||||||
* * Redistributions in binary form must reproduce the above copyright
|
|
||||||
* notice, this list of conditions and the following disclaimer in the
|
|
||||||
* documentation and/or other materials provided with the distribution.
|
|
||||||
* * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
* its contributors may be used to endorse or promote products derived
|
|
||||||
* from this software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
******************************************************************************
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef _AMD_LIB_H_
|
|
||||||
#define _AMD_LIB_H_
|
|
||||||
|
|
||||||
#define IOCF8 0xCF8
|
|
||||||
#define IOCFC 0xCFC
|
|
||||||
|
|
||||||
// Reg Values for ReadCpuReg and WriteCpuReg
|
|
||||||
#define CR4_REG 0x04
|
|
||||||
#define DR0_REG 0x10
|
|
||||||
#define DR1_REG 0x11
|
|
||||||
#define DR2_REG 0x12
|
|
||||||
#define DR3_REG 0x13
|
|
||||||
#define DR7_REG 0x17
|
|
||||||
|
|
||||||
// PROTOTYPES FOR amdlib32.asm
|
|
||||||
UINT8
|
|
||||||
ReadIo8 (
|
|
||||||
IN UINT16 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT16
|
|
||||||
ReadIo16 (
|
|
||||||
IN UINT16 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
ReadIo32 (
|
|
||||||
IN UINT16 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
WriteIo8 (
|
|
||||||
IN UINT16 Address,
|
|
||||||
IN UINT8 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
WriteIo16 (
|
|
||||||
IN UINT16 Address,
|
|
||||||
IN UINT16 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
WriteIo32 (
|
|
||||||
IN UINT16 Address,
|
|
||||||
IN UINT32 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT8
|
|
||||||
Read64Mem8 (
|
|
||||||
IN UINT64 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT16
|
|
||||||
Read64Mem16 (
|
|
||||||
IN UINT64 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
Read64Mem32 (
|
|
||||||
IN UINT64 Address
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
Write64Mem8 (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT8 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
Write64Mem16 (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT16 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
Write64Mem32 (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT32 Data
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT64
|
|
||||||
ReadTSC (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
// MSR
|
|
||||||
VOID
|
|
||||||
LibAmdMsrRead (
|
|
||||||
IN UINT32 MsrAddress,
|
|
||||||
OUT UINT64 *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMsrWrite (
|
|
||||||
IN UINT32 MsrAddress,
|
|
||||||
IN UINT64 *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// IO
|
|
||||||
VOID
|
|
||||||
LibAmdIoRead (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
OUT VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdIoWrite (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
IN CONST VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdIoRMW (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdIoPoll (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT16 IoAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN UINT64 Delay,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// Memory or MMIO
|
|
||||||
VOID
|
|
||||||
LibAmdMemRead (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
OUT VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemWrite (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
IN CONST VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemRMW (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemPoll (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN UINT64 MemAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN UINT64 Delay,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// PCI
|
|
||||||
VOID
|
|
||||||
LibAmdPciRead (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
OUT VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciWrite (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
IN CONST VOID *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciRMW (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciPoll (
|
|
||||||
IN ACCESS_WIDTH AccessWidth,
|
|
||||||
IN PCI_ADDR PciAddress,
|
|
||||||
IN CONST VOID *Data,
|
|
||||||
IN CONST VOID *DataMask,
|
|
||||||
IN UINT64 Delay,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciReadBits (
|
|
||||||
IN PCI_ADDR Address,
|
|
||||||
IN UINT8 Highbit,
|
|
||||||
IN UINT8 Lowbit,
|
|
||||||
OUT UINT32 *Value,
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciWriteBits (
|
|
||||||
IN PCI_ADDR Address,
|
|
||||||
IN UINT8 Highbit,
|
|
||||||
IN UINT8 Lowbit,
|
|
||||||
IN CONST UINT32 *Value,
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdPciFindNextCap (
|
|
||||||
IN OUT PCI_ADDR *Address,
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// CPUID
|
|
||||||
VOID
|
|
||||||
LibAmdCpuidRead (
|
|
||||||
IN UINT32 CpuidFcnAddress,
|
|
||||||
OUT CPUID_DATA *Value,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
// Utility Functions
|
|
||||||
VOID
|
|
||||||
LibAmdMemFill (
|
|
||||||
IN VOID *Destination,
|
|
||||||
IN UINT8 Value,
|
|
||||||
IN UINTN FillLength,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdMemCopy (
|
|
||||||
IN VOID *Destination,
|
|
||||||
IN CONST VOID *Source,
|
|
||||||
IN UINTN CopyLength,
|
|
||||||
IN OUT AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
CONST VOID *
|
|
||||||
LibAmdLocateImage (
|
|
||||||
IN CONST VOID *StartAddress,
|
|
||||||
IN CONST VOID *EndAddress,
|
|
||||||
IN UINT32 Alignment,
|
|
||||||
IN CONST CHAR8 ModuleSignature[8]
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
LibAmdGetPackageType (
|
|
||||||
IN AMD_CONFIG_PARAMS *StdHeader
|
|
||||||
);
|
|
||||||
|
|
||||||
BOOLEAN
|
|
||||||
LibAmdVerifyImageChecksum (
|
|
||||||
IN CONST VOID *ImagePtr
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT8
|
|
||||||
LibAmdBitScanReverse (
|
|
||||||
IN UINT32 value
|
|
||||||
);
|
|
||||||
UINT8
|
|
||||||
LibAmdBitScanForward (
|
|
||||||
IN UINT32 value
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdReadCpuReg (
|
|
||||||
IN UINT8 RegNum,
|
|
||||||
OUT UINT32 *Value
|
|
||||||
);
|
|
||||||
VOID
|
|
||||||
LibAmdWriteCpuReg (
|
|
||||||
IN UINT8 RegNum,
|
|
||||||
IN UINT32 Value
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdWriteBackInvalidateCache (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdSimNowEnterDebugger (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdHDTBreakPoint (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
UINT8
|
|
||||||
LibAmdAccessWidth (
|
|
||||||
IN ACCESS_WIDTH AccessWidth
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdCLFlush (
|
|
||||||
IN UINT64 Address,
|
|
||||||
IN UINT8 Count
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
StopHere (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdFinit (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdFnclex (
|
|
||||||
void
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdReadMxcsr (
|
|
||||||
OUT UINT32 *Value
|
|
||||||
);
|
|
||||||
|
|
||||||
VOID
|
|
||||||
LibAmdWriteMxcsr (
|
|
||||||
IN UINT32 *Value
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif // _AMD_LIB_H_
|
|
|
@ -1,122 +0,0 @@
|
||||||
#*****************************************************************************
|
|
||||||
#
|
|
||||||
# Copyright (c) 2012, Advanced Micro Devices, Inc.
|
|
||||||
# 2013 - 2014, Sage Electronic Engineering, LLC
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# Redistribution and use in source and binary forms, with or without
|
|
||||||
# modification, are permitted provided that the following conditions are met:
|
|
||||||
# * Redistributions of source code must retain the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer.
|
|
||||||
# * Redistributions in binary form must reproduce the above copyright
|
|
||||||
# notice, this list of conditions and the following disclaimer in the
|
|
||||||
# documentation and/or other materials provided with the distribution.
|
|
||||||
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
|
||||||
# its contributors may be used to endorse or promote products derived
|
|
||||||
# from this software without specific prior written permission.
|
|
||||||
#
|
|
||||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
|
||||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
#
|
|
||||||
#*****************************************************************************
|
|
||||||
|
|
||||||
# AGESA V5 Files
|
|
||||||
AGESA_ROOT = $(call strip_quotes,$(src)/../$(CONFIG_AGESA_BINARY_PI_PATH))
|
|
||||||
|
|
||||||
AGESA_INC = -I$(obj)
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/mainboard/$(MAINBOARDDIR)
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/binaryPI
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Include
|
|
||||||
AGESA_INC += -I$(src)/vendorcode/amd/pi/00730F01
|
|
||||||
AGESA_INC += -I$(src)/vendorcode/amd/pi/00730F01/Lib
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Feature
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch
|
|
||||||
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/northbridge/amd/pi
|
|
||||||
AGESA_INC += -I$(src)/southbridge/amd/pi/hudson
|
|
||||||
|
|
||||||
AGESA_INC += -I$(src)/arch/x86/include
|
|
||||||
AGESA_INC += -I$(src)/include
|
|
||||||
|
|
||||||
AGESA_CFLAGS += -march=amdfam10 -mno-3dnow -fno-zero-initialized-in-bss -fno-strict-aliasing
|
|
||||||
CFLAGS_x86_32 += $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
export AGESA_ROOT := $(AGESA_ROOT)
|
|
||||||
export AGESA_INC := $(AGESA_INC)
|
|
||||||
export AGESA_CFLAGS := $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
CC_bootblock := $(CC_bootblock) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_romstage := $(CC_romstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_ramstage := $(CC_ramstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
CC_x86_32 := $(CC_x86_32) $(AGESA_INC) $(AGESA_CFLAGS)
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
|
|
||||||
define create_agesa_cp_template
|
|
||||||
|
|
||||||
# $1 AGESA source file
|
|
||||||
# $2 AGESA copy-to location
|
|
||||||
$(agesa_src_path)/$(notdir $2): $2 $(agesa_src_path)
|
|
||||||
@printf " AGESA Copying $$(notdir $2) => $$(@D)\n"
|
|
||||||
if [ ! -r $(agesa_src_path)/$(notdir $2) ]; then \
|
|
||||||
cp -uf $2 $$(@D); \
|
|
||||||
fi
|
|
||||||
|
|
||||||
$(agesa_obj_path)/$1.libagesa.o: $(agesa_src_path)/$(notdir $2) $(obj)/config.h $(src)/include/kconfig.h $(agesa_obj_path)
|
|
||||||
@printf " CC $(subst $(agesa_obj_path)/,,$$(@))\n"
|
|
||||||
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
|
||||||
$(AGESA_INC) \
|
|
||||||
-include $(obj)/config.h -include $(src)/include/kconfig.h \
|
|
||||||
-o $$@ \
|
|
||||||
$(agesa_src_path)/$(notdir $2)
|
|
||||||
|
|
||||||
endef
|
|
||||||
|
|
||||||
agesa_raw_files += $(wildcard $(src)/vendorcode/amd/pi/00730F01/Lib/*.[cS])
|
|
||||||
agesa_raw_files += $(wildcard $(AGESA_ROOT)/binaryPI/*.[cS])
|
|
||||||
|
|
||||||
classes-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += libagesa
|
|
||||||
$(eval $(call create_class_compiler,libagesa,x86_32))
|
|
||||||
|
|
||||||
agesa_src_files := $(strip $(sort $(foreach file,$(strip $(agesa_raw_files)),$(call strip_quotes,$(file)))))
|
|
||||||
agesa_obj_path := $(strip $(obj)/vendorcode/amd)
|
|
||||||
agesa_src_path := $(strip $(obj)/agesa)
|
|
||||||
agesa_src_copies := $(strip $(foreach file,$(agesa_src_files),$(agesa_obj_path)/$(notdir $(file))))
|
|
||||||
agesa_obj_copies := $(strip $(agesa_src_copies:.c=.libagesa.o))
|
|
||||||
|
|
||||||
$(agesa_src_path):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
$(agesa_obj_path):
|
|
||||||
mkdir -p $@
|
|
||||||
|
|
||||||
$(foreach file,$(strip $(agesa_src_files)),$(eval $(call create_agesa_cp_template,$(basename $(notdir $(file))),$(file))))
|
|
||||||
|
|
||||||
$(obj)/agesa/libagesa.00730F01.a: $(agesa_obj_copies)
|
|
||||||
@printf " AGESA $(subst $(agesa_obj_path)/,,$(@))\n"
|
|
||||||
ar rcs $@ $+
|
|
||||||
|
|
||||||
romstage-libs += $(obj)/agesa/libagesa.00730F01.a
|
|
||||||
ramstage-libs += $(obj)/agesa/libagesa.00730F01.a
|
|
||||||
|
|
||||||
#######################################################################
|
|
||||||
|
|
||||||
cbfs-files-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += AGESA
|
|
||||||
AGESA-file := $(CONFIG_AGESA_BINARY_PI_PATH)/$(CONFIG_AGESA_BINARY_PI_FILE)
|
|
||||||
AGESA-type := raw
|
|
||||||
AGESA-position := $(CONFIG_AGESA_BINARY_PI_LOCATION)
|
|
|
@ -1 +1,61 @@
|
||||||
source "src/vendorcode/amd/pi/*/Kconfig"
|
#
|
||||||
|
# Copyright (c) 2013 - 2014, Sage Electronic Engineering, LLC
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
||||||
|
# its contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
|
||||||
|
if CPU_AMD_PI_00630F01 || CPU_AMD_PI_00730F01 || CPU_AMD_PI_00660F01
|
||||||
|
|
||||||
|
config AGESA_BINARY_PI_DEFAULTS # dummy
|
||||||
|
def_bool y
|
||||||
|
select AGESA_BINARY_PI_LOCATION_DEFAULT_SELECTED
|
||||||
|
select AGESA_BINARY_PI_PATH_DEFAULT_SELECTED
|
||||||
|
select AGESA_BINARY_PI_FILE_DEFAULT_SELECTED
|
||||||
|
|
||||||
|
config AGESA_BINARY_PI_PATH_DEFAULT
|
||||||
|
string
|
||||||
|
default "3rdparty/blobs/pi/amd/00630F01" if CPU_AMD_PI_00630F01
|
||||||
|
default "3rdparty/blobs/pi/amd/00730F01" if CPU_AMD_PI_00730F01
|
||||||
|
default "3rdparty/blobs/pi/amd/00660F01" if CPU_AMD_PI_00660F01
|
||||||
|
help
|
||||||
|
The default binary file name to use for AMD platform initialization.
|
||||||
|
|
||||||
|
config AGESA_BINARY_PI_FILE_DEFAULT
|
||||||
|
string
|
||||||
|
default "FP3/AGESA.bin" if CPU_AMD_PI_00630F01
|
||||||
|
default "FT3b/AGESA.bin" if CPU_AMD_PI_00730F01
|
||||||
|
default "FP4/AGESA.bin" if CPU_AMD_PI_00660F01
|
||||||
|
help
|
||||||
|
The default binary file name to use for AMD platform initialization.
|
||||||
|
|
||||||
|
config AGESA_BINARY_PI_LOCATION_DEFAULT
|
||||||
|
hex
|
||||||
|
default 0xFFE00000 if CPU_AMD_PI_00630F01
|
||||||
|
default 0xFFE00000 if CPU_AMD_PI_00730F01
|
||||||
|
default 0xFFE00000 if CPU_AMD_PI_00660F01
|
||||||
|
help
|
||||||
|
The default ROM address at which to store the binary Platform
|
||||||
|
Initialization code.
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
|
@ -1,3 +1,138 @@
|
||||||
subdirs-$(CONFIG_CPU_AMD_PI_00730F01) += 00730F01
|
#*****************************************************************************
|
||||||
subdirs-$(CONFIG_CPU_AMD_PI_00630F01) += 00630F01
|
#
|
||||||
subdirs-$(CONFIG_CPU_AMD_PI_00660F01) += 00660F01
|
# Copyright (c) 2012, Advanced Micro Devices, Inc.
|
||||||
|
# 2013 - 2014, Sage Electronic Engineering, LLC
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
# * Redistributions of source code must retain the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer.
|
||||||
|
# * Redistributions in binary form must reproduce the above copyright
|
||||||
|
# notice, this list of conditions and the following disclaimer in the
|
||||||
|
# documentation and/or other materials provided with the distribution.
|
||||||
|
# * Neither the name of Advanced Micro Devices, Inc. nor the names of
|
||||||
|
# its contributors may be used to endorse or promote products derived
|
||||||
|
# from this software without specific prior written permission.
|
||||||
|
#
|
||||||
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
# DISCLAIMED. IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. BE LIABLE FOR ANY
|
||||||
|
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
#
|
||||||
|
#*****************************************************************************
|
||||||
|
|
||||||
|
ifeq ($(CONFIG_CPU_AMD_PI_00630F01)$(CONFIG_CPU_AMD_PI_00730F01)$(CONFIG_CPU_AMD_PI_00660F01),y)
|
||||||
|
# AGESA V5 Files
|
||||||
|
AGESA_ROOT = $(call strip_quotes,$(src)/../$(CONFIG_AGESA_BINARY_PI_PATH))
|
||||||
|
|
||||||
|
AGESA_INC = -I$(obj)
|
||||||
|
|
||||||
|
AGESA_INC += -I$(src)/mainboard/$(MAINBOARDDIR)
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/binaryPI
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Include
|
||||||
|
AGESA_INC += -I$(src)/vendorcode/amd/pi
|
||||||
|
AGESA_INC += -I$(src)/vendorcode/amd/pi/Lib
|
||||||
|
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/Common
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Family
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/CPU/Feature
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Common
|
||||||
|
ifeq ($(CONFIG_CPU_AMD_PI_00660F01),y)
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/Fch/Kern
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/Psp/PspBaseLib
|
||||||
|
endif
|
||||||
|
ifeq ($(CONFIG_CPU_AMD_PI_00630F01),y)
|
||||||
|
AGESA_INC += -I$(AGESA_ROOT)/Proc/IDS
|
||||||
|
endif
|
||||||
|
|
||||||
|
AGESA_INC += -I$(src)/northbridge/amd/pi
|
||||||
|
AGESA_INC += -I$(src)/southbridge/amd/pi/hudson
|
||||||
|
|
||||||
|
AGESA_INC += -I$(src)/arch/x86/include
|
||||||
|
AGESA_INC += -I$(src)/include
|
||||||
|
|
||||||
|
AGESA_CFLAGS += -march=amdfam10 -mno-3dnow -fno-zero-initialized-in-bss -fno-strict-aliasing
|
||||||
|
CFLAGS_x86_32 += $(AGESA_CFLAGS)
|
||||||
|
|
||||||
|
export AGESA_ROOT := $(AGESA_ROOT)
|
||||||
|
export AGESA_INC := $(AGESA_INC)
|
||||||
|
export AGESA_CFLAGS := $(AGESA_CFLAGS)
|
||||||
|
|
||||||
|
CC_bootblock := $(CC_bootblock) $(AGESA_INC) $(AGESA_CFLAGS)
|
||||||
|
CC_romstage := $(CC_romstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
||||||
|
CC_ramstage := $(CC_ramstage) $(AGESA_INC) $(AGESA_CFLAGS)
|
||||||
|
CC_x86_32 := $(CC_x86_32) $(AGESA_INC) $(AGESA_CFLAGS)
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
define create_agesa_cp_template
|
||||||
|
|
||||||
|
# $1 AGESA source file
|
||||||
|
# $2 AGESA copy-to location
|
||||||
|
$(agesa_src_path)/$(notdir $2): $2 $(agesa_src_path)
|
||||||
|
@printf " AGESA Copying $$(notdir $2) => $$(@D)\n"
|
||||||
|
if [ ! -r $(agesa_src_path)/$(notdir $2) ]; then \
|
||||||
|
cp -uf $2 $$(@D); \
|
||||||
|
fi
|
||||||
|
|
||||||
|
$(agesa_obj_path)/$1.libagesa.o: $(agesa_src_path)/$(notdir $2) $(obj)/config.h $(src)/include/kconfig.h $(agesa_obj_path)
|
||||||
|
@printf " CC $(subst $(agesa_obj_path)/,,$$(@))\n"
|
||||||
|
$(CC_libagesa) -c -MMD $(CFLAGS_libagesa) $(AGESA_CFLAGS) \
|
||||||
|
$(AGESA_INC) \
|
||||||
|
-include $(obj)/config.h -include $(src)/include/kconfig.h \
|
||||||
|
-o $$@ \
|
||||||
|
$(agesa_src_path)/$(notdir $2)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
agesa_raw_files += $(wildcard $(src)/vendorcode/amd/pi/Lib/*.[cS])
|
||||||
|
agesa_raw_files += $(wildcard $(AGESA_ROOT)/binaryPI/*.[cS])
|
||||||
|
ifeq ($(CONFIG_CPU_AMD_PI_00660F01),y)
|
||||||
|
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Kern/KernImc/*.[cS])
|
||||||
|
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Fch/Common/*.[cS])
|
||||||
|
agesa_raw_files += $(wildcard $(AGESA_ROOT)/Proc/Psp/PspBaseLib/*.[cS])
|
||||||
|
endif
|
||||||
|
|
||||||
|
classes-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += libagesa
|
||||||
|
$(eval $(call create_class_compiler,libagesa,x86_32))
|
||||||
|
|
||||||
|
agesa_src_files := $(strip $(sort $(foreach file,$(strip $(agesa_raw_files)),$(call strip_quotes,$(file)))))
|
||||||
|
agesa_obj_path := $(strip $(obj)/vendorcode/amd)
|
||||||
|
agesa_src_path := $(strip $(obj)/agesa)
|
||||||
|
agesa_src_copies := $(strip $(foreach file,$(agesa_src_files),$(agesa_obj_path)/$(notdir $(file))))
|
||||||
|
agesa_obj_copies := $(strip $(agesa_src_copies:.c=.libagesa.o))
|
||||||
|
|
||||||
|
$(agesa_src_path):
|
||||||
|
mkdir -p $@
|
||||||
|
|
||||||
|
$(agesa_obj_path):
|
||||||
|
mkdir -p $@
|
||||||
|
|
||||||
|
$(foreach file,$(strip $(agesa_src_files)),$(eval $(call create_agesa_cp_template,$(basename $(notdir $(file))),$(file))))
|
||||||
|
|
||||||
|
$(obj)/agesa/libagesa.a: $(agesa_obj_copies)
|
||||||
|
@printf " AGESA $(subst $(agesa_obj_path)/,,$(@))\n"
|
||||||
|
ar rcs $@ $+
|
||||||
|
|
||||||
|
romstage-libs += $(obj)/agesa/libagesa.a
|
||||||
|
ramstage-libs += $(obj)/agesa/libagesa.a
|
||||||
|
|
||||||
|
#######################################################################
|
||||||
|
|
||||||
|
cbfs-files-$(CONFIG_CPU_AMD_AGESA_BINARY_PI) += AGESA
|
||||||
|
AGESA-file := $(CONFIG_AGESA_BINARY_PI_PATH)/$(CONFIG_AGESA_BINARY_PI_FILE)
|
||||||
|
AGESA-type := raw
|
||||||
|
AGESA-position := $(CONFIG_AGESA_BINARY_PI_LOCATION)
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
Loading…
Reference in New Issue