The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    How Setfsb works

    Discussion in 'Hardware Components and Aftermarket Upgrades' started by moral hazard, Aug 21, 2009.

  1. moral hazard

    moral hazard Notebook Nobel Laureate

    Reputations:
    2,779
    Messages:
    7,957
    Likes Received:
    87
    Trophy Points:
    216
    Hi everyone,

    My goal for this thread is to find out how setfsb works.

    So here is my first question:

    I have been able to overclock my FSB with setfsb (read more about how I did it in my sig) to 272mhz (I run it at 250mhz though).

    The problem is that after I restart the notebook, the FSB goes back to 200mhz (stock).
    Also if I tell the machine to hibernate, after I wake it up the FSB is back to 200mhz again. Even if I just put the notebook to sleep and wake it up the FSB is stock again.

    I think I know how to fix this, but I would like someone to confirm that what I think is right.

    My PLL is an ICS chip, more specifically ICS9LPR501SGLF.
    Here is a link to the datasheet:
    http://www.idt.com/products/getDoc.cfm?docID=18688128

    Look on page 14 of the datasheet, bit 0 of byte 0.
    The register value is called PD_restore,
    The value I have is 0. I think if I change it to 1, I will be able to put the notebook to sleep and then when it wakes up have the FSB still overclocked.

    Request:
    Can someone that is overclocking with setfsb and is able to put their machine to standby and then wake it up still overclocked tell me what value they have for their "PD_restore" bit.

    Thanks in advance :)
     
  2. User Retired 2

    User Retired 2 Notebook Nobel Laureate NBR Reviewer

    Reputations:
    4,127
    Messages:
    7,860
    Likes Received:
    10
    Trophy Points:
    0
    My PD_Restore bit is not accurate I think because of TME mode being active. Though I'm not sure if it would set the custom clock dividers back to how they were on startup(??)

    So the issue is how to get FSB to be automatically set after a resume-from-hibernate or resume-from-standby. My workaround is a vbs script that runs in the Windows Startup folder. It will setfsb on initial startup, then look for a resume event upon which it will re-run setfsb. It runs as an infinite loop, consuming very little resources.

    resume-setfsb.vbs -> Edit with your unique system's parameters: PLL/FSB. Then put a shortcut to it in your Windows Startup Folder to have it call setfsb upon resume

    Code:
    ' resume-setfsb.vbs
    ' Automatically calls your setfsb commandline  after a resume from hibernate or standby
    'the script loops forever, so you will have to kill it using the task manager
    'if you want to stop it, look for wscript.exe
    
    
    Option Explicit
    '[ User-edittable section ] ************************************************************************
    ' Put your commandline entry to call setfsb below as resume_script variable
    ' NOTE: Script doesn't like to refer to a directory name with spaces in it,eg C:\Program Files
    '       so consider copying setfsb in some short directory name location OR use a batch file instead.
    '      
    '                              setfsb -w [wait(s)]-s[FSB] -i[incr] -cg[PLL]
    Const resume_script="c:\setfsb\setfsb -w0         -s166   -i13      -cg[ICS9LPRS355BGLF]"
    'Above line is for a HP 2510P, PLL=ICS9LPRS355BGLF, desired FSB=166, increment FSB up in 13Mhz increment
    '*************************************************************************************************
    
    Dim wmiPowerManagementEvent, oShell, strcomputer, objWMIService, colMonitoredEvents,strLatestEvent,run_it
    
    Const cntEventEnteringWakeup = 7
    set oShell=createobject("WScript.Shell")
    
    strcomputer="."
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer &
    
    "\root\cimv2")
    Set colMonitoredEvents = objWMIService.ExecNotificationQuery ("Select * from Win32_PowerManagementEvent")
    
    ' Run setfsb initially on startup
    set oShell=createobject("WScript.Shell")
    oShell.Run resume_script,7, true
    
    ' Now loop looking for a resume-from-standby or resume-from-hibernate to re-rerun setfsb
    Do
        set strLatestEvent = colMonitoredEvents.NextEvent()
        If strLatestEvent.EventType = cntEventEnteringWakeup Then
            oShell.Run resume_script,7, true
        End If
    Loop
    
    Above code was simplified from resume-faster.vbs which does the above as well as has AC<->DC power change event detection so could code up a custom solution. Code indicates a call to faster.bat that in my case has provision to call memset (to change memory timings) as well as rmclock profiles to change CPU voltage. Rmclock doesn't allow AC/DC profiles, but can capture the registry details and dynamically import the AC or DC rmclock settings prior to loading rmclock.
     
  3. moral hazard

    moral hazard Notebook Nobel Laureate

    Reputations:
    2,779
    Messages:
    7,957
    Likes Received:
    87
    Trophy Points:
    216
    I think I'll have to swap hard disks to my hard disk with visual studio so I can run that.
    Thanks for posting it :)

    Does it use a lot of CPU though?
    If so then it would decrease battery life :(
     
  4. User Retired 2

    User Retired 2 Notebook Nobel Laureate NBR Reviewer

    Reputations:
    4,127
    Messages:
    7,860
    Likes Received:
    10
    Trophy Points:
    0
    Don't know much about VBS scripts, other than I put together code I found on the net.I didn't need any special software to run it other than XP. VBS scripts are to XP like batch files are to DOS. No decrease in battery life.. it's monitoring for a resume-from-standby/hibernate event.
     
  5. moral hazard

    moral hazard Notebook Nobel Laureate

    Reputations:
    2,779
    Messages:
    7,957
    Likes Received:
    87
    Trophy Points:
    216
    Now I get an error saying:
    line: 36
    char: 1
    error: The system cannot find the file specified.
     
  6. User Retired 2

    User Retired 2 Notebook Nobel Laureate NBR Reviewer

    Reputations:
    4,127
    Messages:
    7,860
    Likes Received:
    10
    Trophy Points:
    0
    I've post #2 above. Maybe if you had used long filenames or directories with spaces you'd see something like this. I've altered the script to make it as simple as possible and elaborated more on what to do and how to set it up. I can't really explain how to check if doesn't work for you since it works fine for me.
     
  7. moral hazard

    moral hazard Notebook Nobel Laureate

    Reputations:
    2,779
    Messages:
    7,957
    Likes Received:
    87
    Trophy Points:
    216
    in post #2 the link to the file is not working.
     
  8. User Retired 2

    User Retired 2 Notebook Nobel Laureate NBR Reviewer

    Reputations:
    4,127
    Messages:
    7,860
    Likes Received:
    10
    Trophy Points:
    0
    Updated post #2 with this link: resume-setfsb.vbs
     
  9. moral hazard

    moral hazard Notebook Nobel Laureate

    Reputations:
    2,779
    Messages:
    7,957
    Likes Received:
    87
    Trophy Points:
    216
    Ok that link works.

    But I already copied the code to notepad and it works great :)

    I think the problem before was the encoding notepad used (I changed it from ANSI to Unicode).

    Anyway thanks for the awsome code Nando, if I could give you rep I would :)
     
  10. moral hazard

    moral hazard Notebook Nobel Laureate

    Reputations:
    2,779
    Messages:
    7,957
    Likes Received:
    87
    Trophy Points:
    216
    My next VERY IMPORTANT QUESTION:

    Does the spread spectrum affect the maximum clockspeed?

    read this first:
    http://en.wikipedia.org/wiki/Spread_spectrum

    Just read the part under the heading "Spread-spectrum clock signal generation".

    Here is an important quote
    It's very easy to dissable the spread spectrum with setfsb.
    For example with my PLL you can see on page 14.
    Byte 4 "Output Enable and Spread Spectrum Disable Register", bits 1 and 0.

    A value of 0 for bit 0 of byte 4 will dissable the spread for PLL3.
    A value of 0 for bit 1 of byte 4 will dissable the spread for PLL1.

    So I believe dissableing the spread spectrum will increase interference to other electronics, but will give greater performence.

    Am I correct or is it a bad idea?


    Edit: After reading more about the spread spectrum, I'v decided to dissable it.
    It seems that having the spread spectrum enabled causes instability and a performence loss.
     
  11. lokster

    lokster Notebook Deity

    Reputations:
    63
    Messages:
    1,046
    Likes Received:
    0
    Trophy Points:
    55
    can u go into bios and mess with the clock speed? if not can u turn speedstep and EDIST off? if u do your clocks wont reset, same way my desktop works
     
  12. moral hazard

    moral hazard Notebook Nobel Laureate

    Reputations:
    2,779
    Messages:
    7,957
    Likes Received:
    87
    Trophy Points:
    216
    no.

    I can and did turn speedstep off, my clock still resets.
    Whats EDIST?