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:
parent
3f5ebd6533
commit
0bcfff7908
|
@ -188,7 +188,7 @@ PcieAlibBuildAcpiTable (
|
||||||
LibAmdMemCopy (AlibSsdtBuffer, &AlibSsdt[0], AlibSsdtlength, StdHeader);
|
LibAmdMemCopy (AlibSsdtBuffer, &AlibSsdt[0], AlibSsdtlength, StdHeader);
|
||||||
// Set PCI MMIO configuration
|
// Set PCI MMIO configuration
|
||||||
// AmlObjName = '10DA';
|
// AmlObjName = '10DA';
|
||||||
AmlObjName = Int32FromChar ('1', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '1');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
UINT64 MsrReg;
|
UINT64 MsrReg;
|
||||||
|
@ -205,7 +205,7 @@ PcieAlibBuildAcpiTable (
|
||||||
PpFuseArray = GnbLocateHeapBuffer (AMD_PP_FUSE_TABLE_HANDLE, StdHeader);
|
PpFuseArray = GnbLocateHeapBuffer (AMD_PP_FUSE_TABLE_HANDLE, StdHeader);
|
||||||
if (PpFuseArray != NULL) {
|
if (PpFuseArray != NULL) {
|
||||||
// AmlObjName = '30DA';
|
// AmlObjName = '30DA';
|
||||||
AmlObjName = Int32FromChar ('3', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '3');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
@ -235,7 +235,7 @@ PcieAlibBuildAcpiTable (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// AmlObjName = '40DA';
|
// AmlObjName = '40DA';
|
||||||
AmlObjName = Int32FromChar ('4', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '4');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
@ -244,7 +244,7 @@ PcieAlibBuildAcpiTable (
|
||||||
Status = AGESA_ERROR;
|
Status = AGESA_ERROR;
|
||||||
}
|
}
|
||||||
// AmlObjName = '50DA';
|
// AmlObjName = '50DA';
|
||||||
AmlObjName = Int32FromChar ('5', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '5');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
@ -255,7 +255,7 @@ PcieAlibBuildAcpiTable (
|
||||||
// Set PCIe configuration
|
// Set PCIe configuration
|
||||||
if (PcieLocateConfigurationData (StdHeader, &Pcie) == AGESA_SUCCESS) {
|
if (PcieLocateConfigurationData (StdHeader, &Pcie) == AGESA_SUCCESS) {
|
||||||
// AmlObjName = '20DA';
|
// AmlObjName = '20DA';
|
||||||
AmlObjName = Int32FromChar ('2', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '2');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
@ -264,7 +264,7 @@ PcieAlibBuildAcpiTable (
|
||||||
Status = AGESA_ERROR;
|
Status = AGESA_ERROR;
|
||||||
}
|
}
|
||||||
// AmlObjName = '60DA';
|
// AmlObjName = '60DA';
|
||||||
AmlObjName = Int32FromChar ('6', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '6');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
@ -278,7 +278,7 @@ PcieAlibBuildAcpiTable (
|
||||||
Status = AGESA_ERROR;
|
Status = AGESA_ERROR;
|
||||||
}
|
}
|
||||||
// AmlObjName = '80DA';
|
// AmlObjName = '80DA';
|
||||||
AmlObjName = Int32FromChar ('6', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '8');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
@ -292,7 +292,7 @@ PcieAlibBuildAcpiTable (
|
||||||
Status = AGESA_ERROR;
|
Status = AGESA_ERROR;
|
||||||
}
|
}
|
||||||
// AmlObjName = '70DA';
|
// AmlObjName = '70DA';
|
||||||
AmlObjName = Int32FromChar ('6', '0', 'D', 'A');
|
AmlObjName = Int32FromChar ('A', 'D', '0', '7');
|
||||||
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
AmlObjPtr = GnbLibFind (AlibSsdtBuffer, AlibSsdtlength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
|
|
@ -153,7 +153,7 @@ PcieConfigurationInit (
|
||||||
IDS_ERROR_TRAP;
|
IDS_ERROR_TRAP;
|
||||||
return AGESA_FATAL;
|
return AGESA_FATAL;
|
||||||
}
|
}
|
||||||
Pcie->ComplexList[ComplexIndex].SiliconList = (PCIe_SILICON_CONFIG *) &Buffer;
|
Pcie->ComplexList[ComplexIndex].SiliconList = (PCIe_SILICON_CONFIG *) Buffer;
|
||||||
PcieFmBuildComplexConfiguration (Buffer, StdHeader);
|
PcieFmBuildComplexConfiguration (Buffer, StdHeader);
|
||||||
for (Index = 0; Index < NumberOfComplexes; Index++) {
|
for (Index = 0; Index < NumberOfComplexes; Index++) {
|
||||||
ComplexDescriptor = PcieInputParserGetComplexDescriptor (ComplexList, Index);
|
ComplexDescriptor = PcieInputParserGetComplexDescriptor (ComplexList, Index);
|
||||||
|
|
|
@ -120,7 +120,7 @@ PcieFmAlibBuildAcpiTable (
|
||||||
);
|
);
|
||||||
if (D18F4x15C.Field.BoostSrc != 0 || PpFuseArray->GpuBoostCap != 0) {
|
if (D18F4x15C.Field.BoostSrc != 0 || PpFuseArray->GpuBoostCap != 0) {
|
||||||
// AmlObjName = 'B0DA';
|
// 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));
|
AmlObjPtr = GnbLibFind (AlibSsdtPtr, ((ACPI_TABLE_HEADER*) &AlibSsdt[0])->TableLength, (UINT8*) &AmlObjName, sizeof (AmlObjName));
|
||||||
ASSERT (AmlObjPtr != NULL);
|
ASSERT (AmlObjPtr != NULL);
|
||||||
if (AmlObjPtr != NULL) {
|
if (AmlObjPtr != NULL) {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* @xrefitem bom "File Content Label" "Release Content"
|
* @xrefitem bom "File Content Label" "Release Content"
|
||||||
* @e project: AGESA
|
* @e project: AGESA
|
||||||
* @e sub-project: HyperTransport
|
* @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_MAKE_LINK_BASE)CommonReturnZero32,
|
||||||
(PF_GET_MODULE_INFO)CommonVoid,
|
(PF_GET_MODULE_INFO)CommonVoid,
|
||||||
(PF_POST_MAILBOX)CommonVoid,
|
(PF_POST_MAILBOX)CommonVoid,
|
||||||
(PF_RETRIEVE_MAILBOX)CommonReturnZero32,
|
Fam14RetrieveMailbox,
|
||||||
(PF_GET_SOCKET)CommonReturnZero8,
|
(PF_GET_SOCKET)CommonReturnZero8,
|
||||||
(PF_GET_ENABLED_COMPUTE_UNITS)CommonReturnZero8,
|
(PF_GET_ENABLED_COMPUTE_UNITS)CommonReturnZero8,
|
||||||
(PF_GET_DUALCORE_COMPUTE_UNITS)CommonReturnZero8,
|
(PF_GET_DUALCORE_COMPUTE_UNITS)CommonReturnZero8,
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
* @xrefitem bom "File Content Label" "Release Content"
|
* @xrefitem bom "File Content Label" "Release Content"
|
||||||
* @e project: AGESA
|
* @e project: AGESA
|
||||||
* @e sub-project: HyperTransport
|
* @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);
|
return (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AP_MAIL_INFO
|
||||||
|
Fam14RetrieveMailbox (
|
||||||
|
IN UINT8 Node,
|
||||||
|
IN NORTHBRIDGE *Nb
|
||||||
|
)
|
||||||
|
{
|
||||||
|
AP_MAIL_INFO NodeApMailBox;
|
||||||
|
ASSERT (Nb != NULL);
|
||||||
|
NodeApMailBox.Info = 0;
|
||||||
|
return NodeApMailBox;
|
||||||
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
* @xrefitem bom "File Content Label" "Release Content"
|
* @xrefitem bom "File Content Label" "Release Content"
|
||||||
* @e project: AGESA
|
* @e project: AGESA
|
||||||
* @e sub-project: HyperTransport
|
* @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
|
IN NORTHBRIDGE *Nb
|
||||||
);
|
);
|
||||||
|
|
||||||
|
AP_MAIL_INFO
|
||||||
|
Fam14RetrieveMailbox (
|
||||||
|
IN UINT8 Node,
|
||||||
|
IN NORTHBRIDGE *Nb
|
||||||
|
);
|
||||||
#endif // _HT_NB_UTILITIES_FAM14_H_
|
#endif // _HT_NB_UTILITIES_FAM14_H_
|
||||||
|
|
Loading…
Reference in New Issue