binaryPI: Remove FieldAccessors.[ch]

SAGE brought these in outside AGESA specifications and they
had some ill semantics. They were already removed from StoneyRidge.

Change-Id: I59d0c450583b2ff58031c127aae881d1f3799338
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37174
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-by: Marshall Dawson <marshalldawson3rd@gmail.com>
This commit is contained in:
Kyösti Mälkki 2017-07-18 16:27:38 +03:00
parent 2c3d91c9c8
commit a9b1a72a8f
9 changed files with 6 additions and 568 deletions

View File

@ -159,8 +159,8 @@ typedef enum {
FCH_INIT_LATE = 0x00043000,
FCH_INIT_S3_EARLY_RESTORE = 0x00044000,
FCH_INIT_S3_LATE_RESTORE = 0x00045000,
AMD_SET_VALUE = 0x00081000,
AMD_GET_VALUE = 0x00082000,
AMD_SET_VALUE_invalid = 0x00081000,
AMD_GET_VALUE_invalid = 0x00082000,
} AGESA_STRUCT_NAME;
/* ResetType constant values */

View File

@ -48,7 +48,6 @@
#include <FchCommonCfg.h>
#include <Fch.h>
#include <FchDef.h>
#include <FieldAccessors.h>
CONST UINT32 ImageSignature = IMAGE_SIGNATURE;
CONST UINT32 ModuleSignature = MODULE_SIGNATURE;
@ -511,78 +510,3 @@ ImcIdle (
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**********************************************************************
* Interface call: AmdSetValue
**********************************************************************/
AGESA_STATUS
AmdSetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID* value,
IN UINT32 size
)
{
AGESA_STATUS status = AGESA_UNSUPPORTED;
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AMD_ACCESSOR_PARAMS AccessorParams = {};
if (!module) return status;
Dispatcher = module->ModuleDispatcher;
AccessorParams.StdHeader.AltImageBasePtr = 0;
AccessorParams.StdHeader.CalloutPtr = NULL;
AccessorParams.StdHeader.Func = AMD_SET_VALUE;
AccessorParams.StdHeader.ImageBasePtr = 0;
AccessorParams.AllocationMethod = ByHost;
AccessorParams.FieldName = name;
AccessorParams.FieldValue = value;
AccessorParams.FieldSize = size;
status = Dispatcher(&AccessorParams);
return status;
}
/**********************************************************************
* Interface call: AmdGetValue
**********************************************************************/
AGESA_STATUS
AmdGetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID** value,
IN UINT32 size
)
{
AGESA_STATUS status = AGESA_UNSUPPORTED;
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AMD_ACCESSOR_PARAMS AccessorParams = {};
ASSERT(module);
if (!module) return status;
Dispatcher = module->ModuleDispatcher;
ASSERT(Dispatcher);
AccessorParams.StdHeader.AltImageBasePtr = 0;
AccessorParams.StdHeader.CalloutPtr = NULL;
AccessorParams.StdHeader.Func = AMD_GET_VALUE;
AccessorParams.StdHeader.ImageBasePtr = 0;
AccessorParams.AllocationMethod = ByHost;
AccessorParams.FieldName = name;
AccessorParams.FieldValue = *value;
AccessorParams.FieldSize = size;
status = Dispatcher(&AccessorParams);
ASSERT(AGESA_SUCCESS == status);
*value = AccessorParams.FieldValue;
size = AccessorParams.FieldSize;
return status;
}

View File

@ -1,111 +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.
*
***************************************************************************/
#ifndef _FIELDACCESSORS_H_
#define _FIELDACCESSORS_H_
#include "AGESA.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
AmdGetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID** value,
IN UINT32 size
);
/**********************************************************************
* Interface call: AmdSetValue
**********************************************************************/
AGESA_STATUS
AmdSetValue (
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_ */

View File

@ -168,8 +168,8 @@ typedef enum {
FCH_INIT_LATE = 0x00043000,
FCH_INIT_S3_EARLY_RESTORE = 0x00044000,
FCH_INIT_S3_LATE_RESTORE = 0x00045000,
AMD_SET_VALUE = 0x00081000,
AMD_GET_VALUE = 0x00082000
AMD_SET_VALUE_invalid = 0x00081000,
AMD_GET_VALUE_invalid = 0x00082000
} AGESA_STRUCT_NAME;
/* ResetType constant values */

View File

@ -42,7 +42,6 @@
// TODO This list needs to be pruned of anything that is not API
#include "AGESA.h"
#include "agesawrapper.h"
#include "FieldAccessors.h"
#include "AcpiLib.h"
#include "FchCommonCfg.h"
#include "Fch.h"
@ -401,75 +400,3 @@ FchInitS3LateRestore (
Dispatcher = module->ModuleDispatcher;
Dispatcher(FchDataPtr);
}
/**********************************************************************
* Interface call: AmdSetValue
**********************************************************************/
AGESA_STATUS
AmdSetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID* value,
IN UINT32 size
)
{
AGESA_STATUS status = AGESA_UNSUPPORTED;
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AMD_ACCESSOR_PARAMS AccessorParams = {};
if (!module) return status;
Dispatcher = module->ModuleDispatcher;
AccessorParams.StdHeader.AltImageBasePtr = 0;
AccessorParams.StdHeader.CalloutPtr = NULL;
AccessorParams.StdHeader.Func = AMD_SET_VALUE;
AccessorParams.StdHeader.ImageBasePtr = 0;
AccessorParams.AllocationMethod = ByHost;
AccessorParams.FieldName = name;
AccessorParams.FieldValue = value;
AccessorParams.FieldSize = size;
status = Dispatcher(&AccessorParams);
return status;
}
/**********************************************************************
* Interface call: AmdGetValue
**********************************************************************/
AGESA_STATUS
AmdGetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID** value,
IN UINT32 size
)
{
AGESA_STATUS status = AGESA_UNSUPPORTED;
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AMD_ACCESSOR_PARAMS AccessorParams = {};
if (!module) return status;
Dispatcher = module->ModuleDispatcher;
AccessorParams.StdHeader.AltImageBasePtr = 0;
AccessorParams.StdHeader.CalloutPtr = NULL;
AccessorParams.StdHeader.Func = AMD_GET_VALUE;
AccessorParams.StdHeader.ImageBasePtr = 0;
AccessorParams.AllocationMethod = ByHost;
AccessorParams.FieldName = name;
AccessorParams.FieldValue = *value;
AccessorParams.FieldSize = size;
status = Dispatcher(&AccessorParams);
*value = AccessorParams.FieldValue;
size = AccessorParams.FieldSize;
return status;
}

View File

@ -1,118 +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.
*
***************************************************************************/
#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_ */

View File

@ -159,8 +159,8 @@ typedef enum {
FCH_INIT_LATE = 0x00043000,
FCH_INIT_S3_EARLY_RESTORE = 0x00044000,
FCH_INIT_S3_LATE_RESTORE = 0x00045000,
AMD_SET_VALUE = 0x00081000,
AMD_GET_VALUE = 0x00082000,
AMD_SET_VALUE_invalid = 0x00081000,
AMD_GET_VALUE_invalid = 0x00082000,
} AGESA_STRUCT_NAME;
/* ResetType constant values */

View File

@ -42,7 +42,6 @@
// TODO This list needs to be pruned of anything that is not API
#include "AGESA.h"
#include <agesawrapper.h>
#include "FieldAccessors.h"
#include "AcpiLib.h"
#include "FchCommonCfg.h"
#include "Fch.h"
@ -510,75 +509,3 @@ ImcIdle (
{
((FCH_DATA_BLOCK*)FchDataPtr)->StdHeader->Func = 0;
}
/**********************************************************************
* Interface call: AmdSetValue
**********************************************************************/
AGESA_STATUS
AmdSetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID* value,
IN UINT32 size
)
{
AGESA_STATUS status = AGESA_UNSUPPORTED;
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AMD_ACCESSOR_PARAMS AccessorParams = {};
if (!module) return status;
Dispatcher = module->ModuleDispatcher;
AccessorParams.StdHeader.AltImageBasePtr = 0;
AccessorParams.StdHeader.CalloutPtr = NULL;
AccessorParams.StdHeader.Func = AMD_SET_VALUE;
AccessorParams.StdHeader.ImageBasePtr = 0;
AccessorParams.AllocationMethod = ByHost;
AccessorParams.FieldName = name;
AccessorParams.FieldValue = value;
AccessorParams.FieldSize = size;
status = Dispatcher(&AccessorParams);
return status;
}
/**********************************************************************
* Interface call: AmdGetValue
**********************************************************************/
AGESA_STATUS
AmdGetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID** value,
IN UINT32 size
)
{
AGESA_STATUS status = AGESA_UNSUPPORTED;
MODULE_ENTRY Dispatcher = NULL;
const AMD_MODULE_HEADER* module = agesawrapper_locate_module(ModuleIdentifier);
AMD_ACCESSOR_PARAMS AccessorParams = {};
if (!module) return status;
Dispatcher = module->ModuleDispatcher;
AccessorParams.StdHeader.AltImageBasePtr = 0;
AccessorParams.StdHeader.CalloutPtr = NULL;
AccessorParams.StdHeader.Func = AMD_GET_VALUE;
AccessorParams.StdHeader.ImageBasePtr = 0;
AccessorParams.AllocationMethod = ByHost;
AccessorParams.FieldName = name;
AccessorParams.FieldValue = *value;
AccessorParams.FieldSize = size;
status = Dispatcher(&AccessorParams);
*value = AccessorParams.FieldValue;
size = AccessorParams.FieldSize;
return status;
}

View File

@ -1,111 +0,0 @@
/*****************************************************************************
*
* Copyright (c) 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_
#include "AGESA.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
AmdGetValue (
IN CONST AGESA_FIELD_NAME name,
IN OUT VOID** value,
IN UINT32 size
);
/**********************************************************************
* Interface call: AmdSetValue
**********************************************************************/
AGESA_STATUS
AmdSetValue (
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_ */