void UIMain::setupTunings() { QIcon const icon(":/img/qTuner.png"); // no tuning preset by default m_lTuningPresets.append(Tuning(";None")); // read presets from file QFile tuningsFile(":/resources/tunings.conf"); if(tuningsFile.open(QIODevice::ReadOnly)){ QTextStream in(&tuningsFile); QString line; while (!in.atEnd()) { line = in.readLine(); m_lTuningPresets.append(Tuning(line)); } tuningsFile.close(); } for (int i = 0; i < m_lTuningPresets.size(); i++){ ui.cbPresets->addItem(icon,m_lTuningPresets[i].getName()); } }
/** * The top level external interface for Hypertransport Initialization. * * Create our initial internal state, initialize the coherent fabric, * initialize the non-coherent chains, and perform any required fabric tuning or * optimization. * * @param[in] StdHeader Opaque handle to standard config header * @param[in] PlatformConfiguration The platform configuration options. * @param[in] AmdHtInterface HT Interface structure. * * @retval AGESA_SUCCESS Only information events logged. * @retval AGESA_ALERT Sync Flood or CRC error logged. * @retval AGESA_WARNING Example: expected capability not found * @retval AGESA_ERROR logged events indicating some devices may not be available * @retval AGESA_FATAL Mixed Family or MP capability mismatch * */ AGESA_STATUS AmdHtInitialize ( IN AMD_CONFIG_PARAMS *StdHeader, IN PLATFORM_CONFIGURATION *PlatformConfiguration, IN AMD_HT_INTERFACE *AmdHtInterface ) { STATE_DATA State; NORTHBRIDGE Nb; HT_FEATURES HtFeatures; HT_INTERFACE HtInterface; AGESA_STATUS DeallocateStatus; AP_MAIL_INFO ApMailboxInfo; UINT8 ApNode; ALLOCATE_HEAP_PARAMS AllocHeapParams; State.HtBlock = AmdHtInterface; State.ConfigHandle = StdHeader; State.PlatformConfiguration = PlatformConfiguration; // Get the current HT internal interface (to HtBlock data) NewHtInterface (&HtInterface, State.ConfigHandle); State.HtInterface = &HtInterface; // Get the current HT Feature Set NewHtFeatures (&HtFeatures, State.ConfigHandle); State.HtFeatures = &HtFeatures; // Initialize from static options State.IsUsingRecoveryHt = OptionHtConfiguration.IsUsingRecoveryHt; State.IsSetHtCrcFlood = OptionHtConfiguration.IsSetHtCrcFlood; State.IsUsingUnitIdClumping = OptionHtConfiguration.IsUsingUnitIdClumping; // Initialize for status and event output State.MaxEventClass = AGESA_SUCCESS; // Allocate permanent heap structs that are interfaces to other AGESA services. State.HtInterface->NewNodeAndSocketTables (&State); if (IsBootCore (&State)) { AGESA_TESTPOINT (TpProcHtEntry, State.ConfigHandle); // Allocate Bsp only interface heap structs. State.HtInterface->NewHopCountTable (&State); // Allocate heap for our temporary working space. AllocHeapParams.RequestedBufferSize = (sizeof (PORT_DESCRIPTOR) * (MAX_PLATFORM_LINKS * 2)); AllocHeapParams.BufferHandle = HT_STATE_DATA_HANDLE; AllocHeapParams.Persist = HEAP_LOCAL_CACHE; if (HeapAllocateBuffer (&AllocHeapParams, State.ConfigHandle) == AGESA_SUCCESS) { State.PortList = (PORT_LIST)AllocHeapParams.BufferPtr; // Create the BSP's northbridge. NewNorthBridge (0, &State, &Nb); State.Nb = &Nb; CoherentInit (&State); NcInit (&State); LinkOptimization (&State); Tuning (&State); DeallocateStatus = HeapDeallocateBuffer (HT_STATE_DATA_HANDLE, State.ConfigHandle); ASSERT (DeallocateStatus == AGESA_SUCCESS); AGESA_TESTPOINT (TpProcHtDone, State.ConfigHandle); } else { ASSERT (FALSE); State.MaxEventClass = AGESA_ERROR; // Cannot Log entry due to heap allocate failed. } } else { // Do the AP HT Init, which produces Node and Socket Maps for the AP's use. AGESA_TESTPOINT (TpProcHtApMapEntry, State.ConfigHandle); GetApMailbox (&ApMailboxInfo.Info, State.ConfigHandle); ASSERT (ApMailboxInfo.Fields.Node < MAX_NODES); ApNode = (UINT8)ApMailboxInfo.Fields.Node; NewNorthBridge (ApNode, &State, &Nb); State.Nb = &Nb; InitApMaps (&State); AGESA_TESTPOINT (TpProcHtApMapDone, State.ConfigHandle); } return State.MaxEventClass; }