AMD Agesa changes to fix F14 boot issues

This collection of changes fixes a buffer addressing
issue by removing one level of indirection, fixes an
Agesa HT mailbox retrieval bug, and fixes a buffer
location-by-signature issue.

Change-Id: Ic8a8cb3f9abddd9ad59343a85dbbee5aa7633be3
Signed-off-by: Frank Vibrans <frank.vibrans@amd.com>
Signed-off-by: efdesign98 <efdesign98@gmail.com>
Reviewed-on: http://review.coreboot.org/215
Reviewed-by: Marc Jones <marcj303@gmail.com>
Tested-by: build bot (Jenkins)
This commit is contained in:
efdesign98 2011-09-14 15:52:09 -06:00 committed by Marc Jones
parent 3f5ebd6533
commit 0bcfff7908
6 changed files with 30 additions and 14 deletions

View File

@ -188,7 +188,7 @@ PcieAlibBuildAcpiTable (
LibAmdMemCopy (AlibSsdtBuffer, &AlibSsdt[0], AlibSsdtlength, StdHeader);
// Set PCI MMIO configuration
// AmlObjName = '10DA';
AmlObjName = Int32FromChar ('1', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '1');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
if (AmlObjPtr != NULL) {
UINT64 MsrReg;
@ -205,7 +205,7 @@ PcieAlibBuildAcpiTable (
PpFuseArray = GnbLocateHeapBuffer (AMD_PP_FUSE_TABLE_HANDLE, StdHeader);
if (PpFuseArray != NULL) {
// AmlObjName = '30DA';
AmlObjName = Int32FromChar ('3', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '3');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {
@ -235,7 +235,7 @@ PcieAlibBuildAcpiTable (
}
}
// AmlObjName = '40DA';
AmlObjName = Int32FromChar ('4', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '4');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {
@ -244,7 +244,7 @@ PcieAlibBuildAcpiTable (
Status = AGESA_ERROR;
}
// AmlObjName = '50DA';
AmlObjName = Int32FromChar ('5', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '5');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {
@ -255,7 +255,7 @@ PcieAlibBuildAcpiTable (
// Set PCIe configuration
if (PcieLocateConfigurationData (StdHeader, &Pcie) == AGESA_SUCCESS) {
// AmlObjName = '20DA';
AmlObjName = Int32FromChar ('2', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '2');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {
@ -264,7 +264,7 @@ PcieAlibBuildAcpiTable (
Status = AGESA_ERROR;
}
// AmlObjName = '60DA';
AmlObjName = Int32FromChar ('6', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '6');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {
@ -278,7 +278,7 @@ PcieAlibBuildAcpiTable (
Status = AGESA_ERROR;
}
// AmlObjName = '80DA';
AmlObjName = Int32FromChar ('6', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '8');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {
@ -292,7 +292,7 @@ PcieAlibBuildAcpiTable (
Status = AGESA_ERROR;
}
// AmlObjName = '70DA';
AmlObjName = Int32FromChar ('6', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', '7');
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {

View File

@ -153,7 +153,7 @@ PcieConfigurationInit (
IDS_ERROR_TRAP;
return AGESA_FATAL;
}
Pcie->ComplexList[ComplexIndex].SiliconList = (PCIe_SILICON_CONFIG *) &Buffer;
Pcie->ComplexList[ComplexIndex].SiliconList = (PCIe_SILICON_CONFIG *) Buffer;
PcieFmBuildComplexConfiguration (Buffer, StdHeader);
for (Index = 0; Index < NumberOfComplexes; Index++) {
ComplexDescriptor = PcieInputParserGetComplexDescriptor (ComplexList, Index);

View File

@ -120,7 +120,7 @@ PcieFmAlibBuildAcpiTable (
);
if (D18F4x15C.Field.BoostSrc != 0 || PpFuseArray->GpuBoostCap != 0) {
// AmlObjName = 'B0DA';
AmlObjName = Int32FromChar ('B', '0', 'D', 'A');
AmlObjName = Int32FromChar ('A', 'D', '0', 'B');
AmlObjPtr = GnbLibFind (AlibSsdtPtr, ((ACPI_TABLE_HEADER*) &AlibSsdt[0])->TableLength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
ASSERT (AmlObjPtr != NULL);
if (AmlObjPtr != NULL) {

View File

@ -7,7 +7,7 @@
* @xrefitem bom "File Content Label" "Release Content"
* @e project: AGESA
* @e sub-project: HyperTransport
* @e \$Revision: 44325 $ @e \$Date: 2010-12-22 03:29:53 -0700 (Wed, 22 Dec 2010) $
* @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
*
*/
/*
@ -128,7 +128,7 @@ CONST NORTHBRIDGE ROMDATA HtFam14Nb =
(PF_MAKE_LINK_BASE)CommonReturnZero32,
(PF_GET_MODULE_INFO)CommonVoid,
(PF_POST_MAILBOX)CommonVoid,
(PF_RETRIEVE_MAILBOX)CommonReturnZero32,
Fam14RetrieveMailbox,
(PF_GET_SOCKET)CommonReturnZero8,
(PF_GET_ENABLED_COMPUTE_UNITS)CommonReturnZero8,
(PF_GET_DUALCORE_COMPUTE_UNITS)CommonReturnZero8,

View File

@ -10,7 +10,7 @@
* @xrefitem bom "File Content Label" "Release Content"
* @e project: AGESA
* @e sub-project: HyperTransport
* @e \$Revision: 44325 $ @e \$Date: 2010-12-22 03:29:53 -0700 (Wed, 22 Dec 2010) $
* @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
*
*/
/*
@ -126,3 +126,14 @@ Fam14GetNodeCount (
return (1);
}
AP_MAIL_INFO
Fam14RetrieveMailbox (
IN UINT8 Node,
IN NORTHBRIDGE *Nb
)
{
AP_MAIL_INFO NodeApMailBox;
ASSERT (Nb != NULL);
NodeApMailBox.Info = 0;
return NodeApMailBox;
}

View File

@ -7,7 +7,7 @@
* @xrefitem bom "File Content Label" "Release Content"
* @e project: AGESA
* @e sub-project: HyperTransport
* @e \$Revision: 44325 $ @e \$Date: 2010-12-22 03:29:53 -0700 (Wed, 22 Dec 2010) $
* @e \$Revision: 34897 $ @e \$Date: 2010-07-14 10:07:10 +0800 (Wed, 14 Jul 2010) $
*
*/
/*
@ -60,4 +60,9 @@ Fam14GetNodeCount (
IN NORTHBRIDGE *Nb
);
AP_MAIL_INFO
Fam14RetrieveMailbox (
IN UINT8 Node,
IN NORTHBRIDGE *Nb
);
#endif // _HT_NB_UTILITIES_FAM14_H_