cold and warm reset RRS feed

  • Question

  • Hi we are using Samsung S3C6410 processor for our project.The problem is i dono how to implement Warm boot in that.With the current reset it is like cold boot , ie. everything is cleaned and image is loaded as a fresh one.For ex if i store a document in "Document and Settings" folder ,after reset the file is not there.

            So what is the procedure to maintain the data between resets.Is there any registry settings to do a Warm boot ?




    Friday, February 4, 2011 1:30 PM

All replies

  • Warm reset requires support from the hardware such that when executed it does not corrupt the RAM contents.  Often there is a particular reset pin that serves this purpose, or there might be a soft reset instruction supported by the CPU. 

    Once you've met that threshold, then you also must not call NKForceCleanBoot() in your OEMInit() routine.  Typically, if you are going to support the concept of a warm reset then your bootloader must detect that the reset was a non destructive one and pass that information to the WinCE image where OEMInit can determine whether or not to call NKForceCleanBoot().  Your bootloader would also use this information to initialize the RAM controller appropriately, not run a destructive RAM Test etc.

    If there is any question about RAM integrity (if you can't tell whether a reboot was warm or cold), then you must assume a cold reset and call NKForceCleanBoot().  Failure to do that will cause system instability.

    Dean Ramsier eMVP BSQUARE Corporation
    • Proposed as answer by T. Gensel Friday, February 4, 2011 8:10 PM
    Friday, February 4, 2011 1:39 PM
  • Hi

            thanks for the reply.How to detect whether the reset was non destructive in Eboot.In our current design,the we have connected reset switch to reset pin of processor thro' some circuit.So if i want to reset the device for Cold boot, we have press a key combination so that it directly resets the processor without any software intervention.

     And for warm reset , the reset switch pressing is detected throu interrupt pin.After checking the interrupt pin status i am calling


            SetSystemPowerState(NULL, POWER_STATE_RESET, POWER_FORCE);

      this calls the OEMSWReset() function where they have configured Watchdog timer.So after the timeout the device resets from the beginning like cold boot.

            So how to make warm boot happen

    Sunday, February 6, 2011 6:35 AM
  • Depending on the processor, a watchdog reset can be as distructive as a hard reset.  Check the datasheet for your processor.
    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG

    Eurotech Inc.
    Sunday, February 6, 2011 3:41 PM
  • Hi Bruce

                  yes i checked the datasheet.The watch dog reset resets the entire only for me it is like a hard reset.Is it possible to do anything in registry or is there anyways to solve this issue ?

    Monday, February 7, 2011 4:38 AM
  • I don't have the S3C6410 datasheet, but doesn't it have a software reset control register that you can write 0x6410 to that generates a software reset?
    Tom Gensel PTG Systems, LLC
    Monday, February 7, 2011 5:34 AM
  • Hi Gensel

                      I have tried writing 0x6410 in the following register

                pSysConReg->SW_RST = 0x6410;

    But the result is same.It is like a hard reset.Any other ways is there to implement it.



    Monday, February 7, 2011 6:02 AM
  • Hi,

    Don't rely on some technical detail of some chip to solve your issue.
    You don't actually need a soft-reboot, you are just looking at this to solve your actual problem, which IMHO is persistency of data.
    This is a very general problem, and is wider than just this reboot issue.

    If you write files to RAM, and want them to be persistent, this is not a very safe bet.
    What if your system resets DURING the write ?

    In general you will need to save all your persistent settings somewhere, and handle corruption, and handle powerdowns and resets.
    The solution can be simple or hard, depending on your requirements (how bad is it to lose some data in the worst-case-scenario).

    Maybe the tech details mentioned before can help you, but make sure you get your requirements right first. 



    Monday, February 7, 2011 9:18 AM
  • Check the datasheet for your processor to see if it has a way to reset without resetting the entire system.  Some other ARM processors do have it.
    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG

    Eurotech Inc.
    Monday, February 7, 2011 1:45 PM
  • "the result is the same".  You're *sure* that your OEMInit() code doesn't call NKForceCleanBoot()?  Dean gave you a list of things that you have to do to accomplish a warm restart.  Obviously, if the hardware can't do it, no there's no registry trick that will fix that!  If the hardware is capable, your board support package and bootloader must still take suitable steps to detect a warm, rather than a cold, reset, and communicate the need to skip NKForceCleanBoot() if it was a warm reset.

    Paul T.

    Monday, February 7, 2011 3:41 PM
  • And don't forget that your bootloader might be clearing the RAM.
    Bruce Eitman (eMVP)
    Senior Engineer
    Bruce.Eitman AT Eurotech DOT com
    My BLOG

    Eurotech Inc.
    Monday, February 7, 2011 4:13 PM