diff options
author | Marc Jones <marc.jones@se-eng.com> | 2015-07-19 15:20:17 -0600 |
---|---|---|
committer | Marc Jones <marc.jones@se-eng.com> | 2015-08-07 17:59:48 +0200 |
commit | 0b11bd0d028089288e52f9f08cdcfafc9910511b (patch) | |
tree | e561ef6110713f774cc71f95e5ad0f26302de85c /src/vendorcode/amd/pi/00660F01/binaryPI/FieldAccessors.h | |
parent | 9b9400dc90906fddadc0303994422ec011a8f6e7 (diff) |
vendorcode: Move AMD sources from blobs to vendorcode
The AMD AGESA binaryPI sources were incorrectly committed to
3rdparty/blobs. Move them from blobs to vendorcode and fix
Kconfig and Makefile.inc to match.
Change-Id: I55a777553c1203464d7f7f4293b361fedcfa3283
Signed-off-by: Marc Jones <marc.jones@se-eng.com>
Reviewed-on: http://review.coreboot.org/10982
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/vendorcode/amd/pi/00660F01/binaryPI/FieldAccessors.h')
-rw-r--r-- | src/vendorcode/amd/pi/00660F01/binaryPI/FieldAccessors.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/vendorcode/amd/pi/00660F01/binaryPI/FieldAccessors.h b/src/vendorcode/amd/pi/00660F01/binaryPI/FieldAccessors.h new file mode 100644 index 0000000000..2d860c5005 --- /dev/null +++ b/src/vendorcode/amd/pi/00660F01/binaryPI/FieldAccessors.h @@ -0,0 +1,118 @@ +/***************************************************************************** + * + * 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. + * + ***************************************************************************/ +#ifndef _FIELDACCESSORS_H_ +#define _FIELDACCESSORS_H_ + +/// AGESA value name +typedef enum { + AMD_GLOBAL_USER_OPTIONS = 0x00020000, + AMD_GLOBAL_NUM_SOCKETS = 0x00020001, + AMD_GLOBAL_NUM_MODULES = 0x00020002, +} AGESA_FIELD_NAME; + +typedef AGESA_STATUS (*SETTER_ENTRY) ( + IN OUT VOID* value, + IN UINT32 size + ); + +typedef AGESA_STATUS (*GETTER_ENTRY) ( + IN OUT VOID** value, + IN UINT32 size + ); + +/// Accessor Interface. +typedef struct { + IN AMD_CONFIG_PARAMS StdHeader; ///< Standard configuration header + IN AGESA_FIELD_NAME FieldName; ///< The service to init + IN ALLOCATION_METHOD AllocationMethod; ///< For pointers, how to allocate space for copied data + IN OUT VOID *Struct; ///< The struct for the service. + IN OUT UINT32 FieldSize; ///< The size of the data value. + IN OUT VOID *FieldValue; ///< The value retrieved or set into the target structure. +} AMD_ACCESSOR_PARAMS; + +/********************************************************************** + * Interface call: AmdSetValue + **********************************************************************/ +AGESA_STATUS +AmdSetValueDispatch ( + IN OUT AMD_ACCESSOR_PARAMS *AccessorParams + ); + +AGESA_STATUS +AmdSetValue ( + IN CONST AGESA_FIELD_NAME name, + IN OUT VOID* value, + IN UINT32 size + ); + +/********************************************************************** + * Interface call: AmdGetValue + **********************************************************************/ +AGESA_STATUS +AmdGetValueDispatch ( + IN OUT AMD_ACCESSOR_PARAMS *AccessorParams + ); + +AGESA_STATUS +AmdGetValue ( + IN CONST AGESA_FIELD_NAME name, + IN OUT VOID** value, + IN UINT32 size + ); + +/** + * Dispatch Table. + * + * The push high dispatcher uses this table to find what entries are currently in the build image. + */ +typedef struct { + UINT32 FunctionId; + SETTER_ENTRY SetValueEntryPoint; + GETTER_ENTRY GetValueEntryPoint; +} ACCESSOR_DISPATCH_TABLE; + +AGESA_STATUS +GetUserOptions( + IN OUT VOID** value, + IN UINT32 size + ); + +AGESA_STATUS +GetNumSockets( + IN OUT VOID** value, + IN UINT32 size + ); + +AGESA_STATUS +GetNumModules( + IN OUT VOID** value, + IN UINT32 size + ); + +#endif /* _FIELDACCESSORS_H_ */ |