AGESA_STATUS SbPcieInitAspm ( IN PCIE_ASPM_TYPE Aspm, IN AMD_CONFIG_PARAMS *StdHeader ) { UINT16 AlinkPort; AlinkPort = SbGetAlinkIoAddress (StdHeader); ASSERT (AlinkPort != 0); if (AlinkPort == 0) { return AGESA_UNSUPPORTED; } GnbLibIoRMW (AlinkPort, AccessS3SaveWidth32, 0x0, 0x40000038, StdHeader); GnbLibIoRMW (AlinkPort + 4, AccessS3SaveWidth32, 0x0, 0xA0, StdHeader); GnbLibIoRMW (AlinkPort, AccessS3SaveWidth32, 0x0, 0x4000003c, StdHeader); GnbLibIoRMW (AlinkPort + 4, AccessS3SaveWidth32, 0xffff00ff, 0x6900, StdHeader); GnbLibIoRMW (AlinkPort, AccessS3SaveWidth32, 0x0, 0x80000068, StdHeader); GnbLibIoRMW (AlinkPort + 4, AccessS3SaveWidth32, 0xfffffffc, Aspm, StdHeader); return AGESA_SUCCESS; }
AGESA_STATUS PcieSbInitAspm ( IN PCIE_ASPM_TYPE Aspm, IN AMD_CONFIG_PARAMS *StdHeader ) { AGESA_STATUS Status; UINT16 AlinkPort; Status = PcieSbAgetAlinkIoAddress (&AlinkPort, StdHeader); if (Status != AGESA_SUCCESS) { return Status; } GnbLibIoRMW (AlinkPort, AccessS3SaveWidth32, 0x0, 0x40000038, StdHeader); GnbLibIoRMW (AlinkPort + 4, AccessS3SaveWidth32, 0x0, 0xA0, StdHeader); GnbLibIoRMW (AlinkPort, AccessS3SaveWidth32, 0x0, 0x4000003c, StdHeader); GnbLibIoRMW (AlinkPort + 4, AccessS3SaveWidth32, 0xffff00ff, 0x6900, StdHeader); GnbLibIoRMW (AlinkPort, AccessS3SaveWidth32, 0x0, 0x80000068, StdHeader); GnbLibIoRMW (AlinkPort + 4, AccessS3SaveWidth32, 0xfffffffc, Aspm, StdHeader); return AGESA_SUCCESS; }