Comes preloaded with Android Eclair 2.1
According to Motorola own road maps https://supportforums.motorola.com/community/manager/softwareupgrades , there are no plans to release Froyo 2.2 for this phone
No working custom ROM has been created yet, but there is a proof of concept: http://forum.xda-developers.com/showpost.php?p=13150611&postcount=305
Wiki with a list of Stock Charm MB502 ROMs http://and-developers.com/sbf:mb502
T-Mobile 03.90.7 - containing the last OTA update. http://www.filesonic.com/file/2100732954/T-Mobile_MB502_03.90.7_1FF_01.sbf.gz (Note: this is the only ROM I have ever reached 25h+ of uptime with --Hieronymos 14:52, 8 November 2011 (CST))
The T-Mobile version comes with a VisualVoicemail that tries to activate itself by sending out an SMS at every restart. If you are not on T-Mobile in the USA, it is wise to delete the application Voicemails 0.0.1 / com.motorola.android.vvm (using Link2SD or Titanium Backup).
Manual deblurring: http://forum.xda-developers.com/showpost.php?p=18791987&postcount=672
Windows: RSD Lite
Required to flash SBF ROMs to your phone
Download: RSD Lite 4.6 here
Get into bootloader mode by holding the up-arrow-key on the keyboard while powering on the phone. A black screen with white letters should show after a couple of seconds.
- open Terminal
- wget http://dl.opticaldelusion.org/sbf_flash
- chmod +x sbf_flash
- sbf_flash T-mo.sbf
- reboot your phone
compatible with SuperOneClick
Detailed [GUIDE] Step by Step ROOT via SuperOneClick for Milestone XT720 (applicable also to the Charm).
UniversalAndRoot / z4root do not work since 2.1update-1. In return, update-1 will unroot your phone. Thus: flash, update, root with SuperOneClick.
A soft unlock is now available: http://forum.xda-developers.com/showthread.php?p=19979485#post19979485
Install Link2SD from the market. Root required. Make a second partition on your SD card (you can choose FAT32 or Ext2, but will need the correct kernel module for the latter).
See this thread: 
If you want to use an ext2 partition, get the module below, mount -o remount,rw /system, copy ext2.ko to /system/lib/modules, chmod 644 /system/lib/modules, mount -o remount,ro /system, insmod /system/lib/modules/ext2.ko and start Link2SD. It will take care to load the module next time you power up your phone.
In order to be able to make system backups and recoveries, see this post: 
This method should allow flashing of custom ROMs as well, although no such image exists as of yet. The creation of such an image is complicated, since another kernel cannot be flashed.
You can get into recovery if you can adb/ssh into the phone:
echo 1 > /data/.recovery_mode
If you have deleted a system app without backing it up, try this: http://forum.xda-developers.com/showpost.php?p=13745950&postcount=347
Note that there have been reports of Charm phones practically grilling themselves without being overclocked. That said, it is possible to do it. 
Compiled tun.ko (for OpenVPN) and ext2.ko exist. 
Some Motorola sources are published here: http://sourceforge.net/motorola/charm/home/Home/ This is only what Motorola had to re-publish. It does not compile into a full OS.
Project Cheesecake for Charm: http://forum.xda-developers.com/showpost.php?p=18150347&postcount=603