ModemFW Flash

DANGER - The Veer is brickable. Do not attempt this on a Veer.
= Flashing Modem Firmware = To force flash the phone modem in WebOS you need to use PmModemUpdater. = Why you might need to Flash Modem Firmware = Flashing modem firmware comes in handy if your phone is stuck in phone offline mode and will not connect to a cell signal due to modem firmware corruption. Generally caused by phone being powered down in the middle of "Full Erase" or WebOS Doctor. The phone modem firmware version becomes unknown preventing WebOS Doctor to automatically flash it during operation. To check if your phone modem is unknown type ##radio# (##72346#) in phone app and it should give you your modem firmware version otherwise say unknown.

Your modem firmware might be unknown if you are receiving the following error on a phone that is stuck in First Use without activation.

The error will loop First Use card with this message: "Phone Error Your phone is experiencing an error that cannot be resolved. Visit www.palm.com for help."

Note: a bad flex cable can display similar symptoms to corrupted modem firmware - specifically, intermittent data problems or WebOS Doctor failing at 64% and showing "Error Updating Modem Firmware!!" in the command window. If you don't have the unknown phone modem type, or if the steps on this page don't fix your problem, consider replacing the flex cable.

= What You Need First = Before you Force Flash your modem's firmware because it is stuck offline, you should try turning airplane mode on and off, reseting the phone, running WebOS Doctor, and any other safer/easier idea you may have. As flashing modem firmware can potentially harm your modem. Considering this is the message that appears when you run the PmModemUpdater command Warning! Warning! Please make sure you have a healthy battery or using a power supply before you do your update Warning! You can potentially trashed your modem firmware if system lost the power in the middle of updating firmware Warning! To Stop it now, ctrl+c

In all cases you will need Linux accessto you phone's shell; you can use novacom, novaterm, or ssh but do not use WebOS Quick Install command line for this. If your phone is stuck on first use run Meta-Doctor to bypass activation and enable developer mode so you can gain Linux access.

= How To Do It =  Step 1 - First you need to download the WebOS Doctor version that you need. DO NOT USE ANY OTHER DOCTOR THAT IS NOT DESIGNED FOR YOUR PHONE.

Step 2 - You need to acquire the modem Firmware image from the Jar file do this with the following: a. You need to extract the jar file using your favorite archiver program WinRar works fine for windows usres. b. Resource directory includes the file webOS.tar you will need to extract this as well. c. Within webOS.tar you will find two other .tar files you need to transfer castlecdmafw.tar (Alternatively castleumtsfw.tar for GSM or whatever castle***fw.tar that applys to you as these file names might           differ from each doctor) to your phone's media root directory (connect phone as USB Drive and transfer it to main area not in a folder) d. Eject phone to leave USB drive mode

Step 3 - Make sure you have plenty of battery and your phone is plugged in to either a computer, wall or touchstone to ensure you will not lose power during flashing.

Step 4 - You will need to place the castle***fw.tar file that we extracted in step 2 to your phone's /tmp directory to do this use the following command: (this is when you start using your Linux access to phone)  mv /media/internal/castle***fw.tar /tmp

Step 5 - This is when you run the flashing process and remember this may damage your phone's modem if you lose power or flash the wrong FW. If you are SSHing in please make sure your connection is solid however I would suggest using Novacom or Novaterm via USB (requires WebOS SDK to be installed)  Just wait patiently for two minutes or so for it to complete. Kind of fun to watch and never racking! PmModemUpdater -f </tmp/castle***fw.tar

If the -f switch above doesn't work: Try: PmModemUpdater -m -e -o </tmp/castle***fw.tar

and then after that: PmModemUpdater -f </tmp/castle***fw.tar

= When Completed = When you have successfully completed all the steps your phone will magically leave Phone Offline mode and your out put should look like the following.

Successful out put:

root@palm-webos-device:# PmModemUpdater -f </tmp/castlecdma_evt1_fw.tar $ Modem is powered-on Warning! Please make sure you have a healthy battery or using a power supply before you do your update Warning! You can potentially trashed your modem firmware if system lost the power in the middle of updating firmware Warning! To Stop it now, ctrl+c

PmModemUpdater Version 5.2.0.8 Dec. 2009 @Palm Inc

$ Creating temp file $ Processing file .... (00625/61644287) powerd (stop) running, process 1246 (00625/65214843) powerd (stop) pre-stop, (main) process 1246 (00625/66618652) powerd (stop) stopping, process 1246 (00625/87431640) powerd (stop) killed, process 1246 (00625/88835449) powerd (stop) post-stop (00625/89903564) powerd (stop) waiting $ PowerD Stopped successfully! (00625/121245117) PmWanDaemon (stop) running, process 1187 (00625/122862548) PmWanDaemon (stop) pre-stop, (main) process 1187 (00625/123991699) PmWanDaemon (stop) stopping, process 1187 (00625/128294677) PmWanDaemon (stop) killed, process 1187 (00625/658842773) PmWanDaemon (stop) post-stop (00625/660490722) PmWanDaemon (stop) waiting $ PmWanDaemon Stopped successfully! (00625/687590332) TelephonyInterfaceLayer (stop) running, process 1269 (00625/690001220) TelephonyInterfaceLayer (stop) pre-stop, (main) process 1269 (00625/691923828) TelephonyInterfaceLayer (stop) stopping, process 1269 (00625/694731445) TelephonyInterfaceLayer (stop) killed, process 1269 (00625/712675781) TelephonyInterfaceLayer (stop) post-stop (00625/713682861) TelephonyInterfaceLayer (stop) waiting $ TIL Stopped successfully! Pass-through disabled $ Passthrough Disabled!. $ Disable handshaking in ROM $ Resetting the modem before flashing..... 01 $ Probing modem............. DiagListen has problem ExtendedBuildID cmd code != BUILD_ID_F $ Packge FW Version (535) | Modem FW Version(0) $ Trying to communicate with the modem in DOWNLOAD mode...... $ Current OEMSBL      = CC-CDMA-OEMSBL $ Start flashing the modem...................... $ Flashing ARMPRG    in  Progress   ......   Done! $ Waiting for USB port to settle down..... $ Comparing partitions  ...... $ **************************************************************** $ ***** BOOTLOADER FLASHING IN PROGRESS! DO NOT LOSE POWER! ***** $ Flashing Bootloader1 Progress   ......   Done! $ Flashing Bootloader2 Progress   ......   Done! $ Flashing Bootloader3 Progress   ......   Done! $ *****             BOOTLOADER FLASHING DONE! ***** $ Flashing AMSS        Progress   ......   Done! $ Resetting modem ...............! $ Flashing done!Please wait while resetting the modem..... 01 - $ Firmware Flashing Time: 2 Minutes: 10 Seconds - $ Host is re-enumerating the USB......01 $ Waiting for USB port to settle down..... $ Probing modem............. $ DVT3 or later device found, no need to config charging! $ Finished detecting Modem! $ Restore the NV items to the modem ............... $ PALM Standard NV Item file not found! $ NV restore Success! $ Enable handshaking in ROM Enable handshaking in ROM $ Please wait while restoring TIL/WAN..... (00782/228728027) powerd (start) waiting (00782/230253906) powerd (start) starting (00782/231413574) powerd (start) pre-start, process 2278 (00782/257994384) powerd (start) spawned, process 2281 (00782/259154052) powerd (start) post-start, (main) process 2281 (00782/261046142) powerd (start) running, process 2281 $ powerd Restored successfully! (00782/336577148) TelephonyInterfaceLayer (start) waiting (00782/338255615) TelephonyInterfaceLayer (start) starting (00782/339445800) TelephonyInterfaceLayer (start) pre-start (00782/340880126) TelephonyInterfaceLayer (start) spawned, process 2285 (00782/342192382) TelephonyInterfaceLayer (start) post-start, (main) process 2285 (00782/349852294) TelephonyInterfaceLayer (start) running, process 2285 $ TIL Restored successfully! (00784/428892822) PmWanDaemon (start) waiting (00784/430662841) PmWanDaemon (start) starting (00784/431883544) PmWanDaemon (start) pre-start (00784/433165283) PmWanDaemon (start) spawned, process 2313 (00784/434416503) PmWanDaemon (start) post-start, (main) process 2313 (00784/435698242) PmWanDaemon (start) running, process 2313 $ PmWanDaemon Restored successfully! $ Your device is ready for use.
 * Message: serviceResponse Handling: 2, {"returnValue":true}
 * Modem In Download MODE             *
 * Current OEMSBL      = CC-CDMA-OEMSBL
 * Current OEMSBL      = CC-CDMA-OEMSBL
 * Current OEMSBL      = CC-CDMA-OEMSBL
 * UMTS Modem  Infomation          *
 * UMTS Modem  Infomation          *
 * Modem Firmware Info                *
 * COMP DATE    = May 14 201015:33:2505/14/2010
 * REL DATE     = 05/14/2010
 * HW VERSION   = A20700E1
 * MOB MODEL    = AC
 * RADIO TYPE   = CDMA
 * PRL VERSION   =60671
 * PRI CRC       =0x264A
 * EX BUILD ID  = CC1.6(535)
 * PRI CRC       =0x264A
 * EX BUILD ID  = CC1.6(535)

Thanks sconix for finding this for rebel sim cards and GuyFromNam pointing out that it can be used for flashing fresh modem firm ware