VOID GnbSmuServiceRequestV4 ( IN PCI_ADDR GnbPciAddress, IN UINT8 RequestId, IN UINT32 AccessFlags, IN AMD_CONFIG_PARAMS *StdHeader ) { D0F0xBC_xE0003004_STRUCT D0F0xBC_xE0003004; D0F0xBC_xE0003000_STRUCT D0F0xBC_xE0003000; IDS_HDT_CONSOLE (GNB_TRACE, "GnbSmuServiceRequestV4 Enter\n"); IDS_HDT_CONSOLE (NB_MISC, " Service Request %d\n", RequestId); if ((AccessFlags & GNB_REG_ACC_FLAG_S3SAVE) != 0) { SMU_MSG_CONTEXT SmuMsgContext; SmuMsgContext.GnbPciAddress.AddressValue = GnbPciAddress.AddressValue; SmuMsgContext.RequestId = RequestId; S3_SAVE_DISPATCH (StdHeader, GnbSmuServiceRequestV4S3Script_ID, sizeof (SmuMsgContext), &SmuMsgContext); } do { GnbLibPciIndirectRead (GnbPciAddress.AddressValue | D0F0xB8_ADDRESS, D0F0xBC_xE0003004_ADDRESS, AccessWidth32, &D0F0xBC_xE0003004.Value, StdHeader); } while (D0F0xBC_xE0003004.Field.IntDone == 0x0); GnbLibPciIndirectRead (GnbPciAddress.AddressValue | D0F0xB8_ADDRESS, D0F0xBC_xE0003000_ADDRESS, AccessWidth32, &D0F0xBC_xE0003000.Value, StdHeader); D0F0xBC_xE0003000.Field.IntToggle = ~D0F0xBC_xE0003000.Field.IntToggle; D0F0xBC_xE0003000.Field.ServiceIndex = RequestId; GnbLibPciIndirectWrite (GnbPciAddress.AddressValue | D0F0xB8_ADDRESS, D0F0xBC_xE0003000_ADDRESS, AccessWidth32, &D0F0xBC_xE0003000.Value, StdHeader); do { GnbLibPciIndirectRead (GnbPciAddress.AddressValue | D0F0xB8_ADDRESS, D0F0xBC_xE0003004_ADDRESS, AccessWidth32, &D0F0xBC_xE0003004.Value, StdHeader); } while (D0F0xBC_xE0003004.Field.IntAck == 0x0); do { GnbLibPciIndirectRead (GnbPciAddress.AddressValue | D0F0xB8_ADDRESS, D0F0xBC_xE0003004_ADDRESS, AccessWidth32, &D0F0xBC_xE0003004.Value, StdHeader); } while (D0F0xBC_xE0003004.Field.IntDone == 0x0); IDS_HDT_CONSOLE (GNB_TRACE, "GnbSmuServiceRequestV4 Exit\n"); }
/** * PCIe Env Init * * * * @param[in] StdHeader Standard configuration header * @retval AGESA_STATUS */ AGESA_STATUS PcieEnvInterfaceTN ( IN AMD_CONFIG_PARAMS *StdHeader ) { S3_SAVE_DISPATCH (StdHeader, PcieLateRestoreTNS3Script_ID, 0, NULL); return AGESA_SUCCESS; }
/** * PCIe Env Init * * * * @param[in] StdHeader Standard configuration header * @retval AGESA_STATUS */ AGESA_STATUS PcieInitAtEnv ( IN AMD_CONFIG_PARAMS *StdHeader ) { S3_SAVE_DISPATCH (StdHeader, PcieLateRestoreS3Script_ID, 0, NULL); return AGESA_SUCCESS; }
/** * PCIe Env Init * * * * @param[in] StdHeader Standard configuration header * @retval AGESA_STATUS */ AGESA_STATUS PcieInitAtEnv ( IN AMD_CONFIG_PARAMS *StdHeader ) { S3_SAVE_DISPATCH (StdHeader, S3DispatchGnbPcieLateRestore, 0, NULL); return AGESA_SUCCESS; }
VOID GnbLibStallS3Save ( IN UINT32 Microsecond, IN AMD_CONFIG_PARAMS *StdHeader ) { S3_SAVE_DISPATCH (StdHeader, GnbLibStallS3Script_ID, sizeof (Microsecond), &Microsecond); GnbLibStall (Microsecond, StdHeader); }
UINT8 GfxRequestSclkTNS3Save ( IN UINT8 Did, IN AMD_CONFIG_PARAMS *StdHeader ) { S3_SAVE_DISPATCH (StdHeader, GfxRequestSclkTNS3Script_ID, sizeof (Did), &Did); return GfxRequestSclkTN (Did, StdHeader); }