Woody Home Page
From PA1688 to PA6488 - Safe Mode Recovery
Sep 27, 2009
The software upgrade for PA1688 devices took about 1 minute, and if power supply failed during upgrade, the devices would fail to work again. To prevent hardware failure, we designed safe mode recovery. The software was separated in 2 parts. PA1688 would always boot from safe mode part. If * key was detected during boot up, it would stay in safe mode, otherwise it would continue to run in the normal part software. Safe mode part of software was small, so it would take much less time to upgrade, and the chances of power supply failed would be much less too. What is more, safe mode part of software was designed to be unnecessary to change by end users. When end users had problem with normal part software upgrade, they could always enter safe mode and change back to what was normal.
Once safe mode usage was started, we found it was especially useful in software development. We no longer worry about bad codes break the whole system as long as safe mode is there.
Because of 8051 64k code limitation, special software like factory test codes were added into safe mode part of software, which did not use code bank switching. The normal part of software need bank switching to support larger software, and there were overhead for code bank switching.
In all PA1688 devices, the safe mode IP is and MAC is 00-09-45-00-00-00. Because SDRAM data sometimes will not lost completely during short power down time, users need to press and hold * key to power up 2 times to make sure to use the default IP and MAC. For all PA1688 based gateways, there is a special safe mode key on the device working to be pressed and hold to enter safe mode, press * key on external PSTN phone will not work.
With AR1688 the safe mode IP is and MAC is 00-18-1f-00-00-00. Users only need to press and hold * key to boot 1 time to get the default IP and MAC. Gradually we feel it is stupid to press and hold * key, as we are mostly dealing with IP phones, why not make use of the hook? As a result, later version of AR1688 IP phones will enter and stay in safe mode when hook is up, and only enter normal part of software when hook is down. AR168M VoIP module has jumper to judge safe mode, the jumper uses the same GPIO as the hook on IP phones. As AR1688's Z80 controller also need code bank switching, we still put factory test codes in safe mode part of software to reduce bank switching overhead.
We still use and 00-18-1f-00-00-00 as safe mode IP and MAC for PA6488. And we are keeping the hook part too. All PA6488 device will enter and stay in safe mode when power up with hook up. For PA648C analog video module which has no hook, we also put the same GPIO as a jumper. As we finally get rid of code bank switching, we no longer put factory test codes in safe mode any more. In fact, to reduce safe mode code size, even LCD support is moved out of safe mode software.
The only 'IP' key in this AG168V back view is the key to enter the safemode of a PA1688 gateway.
Soyo G1681 (PA168V/AG-168V) 1-port FXS gateway back view.

Updated on Nov 29, 2009
In both AR1688 and PA1688 safe mode, #9*0 key sequence will reboot the device and leave safe mode. As our recent changes in AR1688 and PA6488 have selected hook up as indication to enter safe mode while powering up, it is natural for us to go further with the hook. When hook down in safe mode, AR1688 and PA6488 will reboot and leave safe mode.
With this new safe mode feature, however, it may confuse old AR1688 users pressing and holding * key to enter safe mode. If the hook is down, the phone will enter safe mode and soon reboot itself and leave. Users need to remember to keep hook up all the time if they hope to stay in safe mode.
Unlike PA1688, both AR1688 and PA6488 safe mode files can not be compiled from their software API. AR1688 users like to test the new feature need to request new safe mode files from us by email.

Comments for this page 1 All Comment

bruno@openline.com.br 2020-05-23 21:06:52
I tried this safe mode on a Soyo G668 (P1688S) phone but whatever I do, pressing * during boot would only show Page0 on display (or would get stuck with two bars and a * showing on display). I could not connect through palmtool nor the boot process endend letting my press the local IP button to check if it got with the "Page0" message

Tested with SIP firmwares 1.49 and 1.68

To whoever wanna try this, turn power on and press * once within 2 seconds (before the booting bars appear). If you are too slow, just power off and try again.

More options? Please login or register account.