[Defy Android Development] Epsylon3:
I found a working tool for linux (works better than RSDLite, you see what it really flashed)

It works for all motorola sbf including Defy and Atrix

root@epsytour:/work/flash_defy# sbf_flash ./firmware.sbf
SBF FLASH 1.23 (mbm)
http://opticaldelusion.org

=== firmware.sbf ===
Index[1]: Unexpected chip 32
Index[2]: Unexpected chip 32
Index[3]: Unexpected chip 32
Index[4]: Unexpected chip 32
Index[5]: Unexpected chip 32
Index[6]: Unexpected chip 32
Index[7]: Unexpected chip 32
Index[8]: Unexpected chip 32
Index[9]: Unexpected chip 32
00: RDL03 0x82000000-0x8204CFFF 8736 AP
01: CG32 0xC7A00000-0xC7A207FF 4805 AP
02: CG34 0xB0700000-0xB07047FF AB80 AP
03: CG35 0xB1000000-0xB17FFFFF FE64 AP
04: CG42 0xB0800000-0xB0862FFF 29BD AP
05: CG45 0xB0C00000-0xB0F007FF 8CDF AP
06: CG47 0xB1800000-0xB1FFFFFF 6040 AP
07: CG61 0xB0B00000-0xB0B7FFFF FA19 AP
08: CG64 0xB0000000-0xB00047FF 85D0 AP
09: CG65 0xB0180000-0xB01847FF 2409 AP

>> waiting for phone: Connected.
>> uploading RDL03: 100.0%
-- OK
>> verifying ramloader
-- OK
>> executing ramloader
-- OK
>> waiting for phone: Connected.
>> sending erase
-- OK
>> uploading CG32: 100.0%
-- OK
>> uploading CG34: 100.0%
-- OK
>> uploading CG35: 100.0%
-- OK
>> uploading CG42: 100.0%
-- OK
>> uploading CG45: 100.0%
-- OK
>> uploading CG47: 100.0%
-- OK
>> uploading CG61: 100.0%
-- OK
>> uploading CG64: 100.0%
-- OK
>> uploading CG65: 100.0%
-- OK
>> verifying CG32
-- OK
>> verifying CG34
-- OK
>> verifying CG35
-- OK
>> verifying CG42
-- OK
>> verifying CG45
-- OK
>> verifying CG47
-- OK
>> verifying CG61
-- OK
>> verifying CG64
-- OK
>> verifying CG65
-- OK
>> rebooting

sbf_flash [options] [sbf file]
-f - force; attempt to continue on error
-v - verbose output (of CDT)
-r - read CDT information from the phone
-x - extract sbf file
-d - download cg from phone
--cgname [file] - upload/download cgname
matches any cgname shown with -r
optional file arg for contents

Examples
========

sbf_flash file.sbf
upload file.sbf

sbf_flash -v -r
display detailed CDT information

sbf_flash -r --boot file.sbf
sbf_flash -r --boot boot.img file.sbf
upload boot, optionally using boot.img as the contents

sbf_flash -r -d --boot
sbf_flash -r -d --boot boot.img
download boot, if boot.img isn't specified it will be
saved using the cgname ("boot") as the filename

sbf_flash -r
This will read the CDT from the phone, displaying the names and locations of each codegroup on flash.

sbf_flash -x file.sbf
Extract codegroups from sbf file; files will be named according to codegroup, eg: CG30.img

sbf_flash -r -x file.sbf
Extract codegroups from sbf file, name according to CDT information.

sbf_flash -r --recovery file.sbf
Read the CDT, flash only the recovery codegroup from file.sbf.

sbf_flash -r --recovery recovery.img file.sbf
Same as above but writes the contents of recovery.img to recovery instead of using the sbf. (sbf file only used for ramloader)

Notes
The -r option must be specified before any options involving the CDT. The "--recovery" can be any name shown in the CDT, optionally followed by data which overrides the sbf contents; in other words you can write arbitrary data to any location on the flash -- be careful.

root@epsytour:/work/flash_defy# sbf_flash -r
SBF FLASH 1.23 (mbm)
http://opticaldelusion.org

>> waiting for phone: Connected.
CG64 0xB0000000-0xB001FFFF mbr
CG63 0xB0020000-0xB003FFFF mbmloader
CG30 0xB0080000-0xB00FFFFF mbm
CG55 0xB0100000-0xB017FFFF mbmbackup
CG65 0xB0180000-0xB01FFFFF ebr
CG56 0xB0200000-0xB027FFFF bploader
CG31 0xB0280000-0xB02FFFFF cdt.bin
CG38 0xB0300000-0xB06FFFFF pds
CG34 0xB0700000-0xB077FFFF lbl
CG57 0xB0780000-0xB07FFFFF lbl_backup
CG42 0xB0800000-0xB08FFFFF logo.bin
CG41 0xB0900000-0xB0AFFFFF sp
CG61 0xB0B00000-0xB0B7FFFF devtree
CG62 0xB0B80000-0xB0BFFFFF devtree_backup
CG45 0xB0C00000-0xB0FFFFFF bpsw
CG35 0xB1000000-0xB17FFFFF boot
CG47 0xB1800000-0xB1FFFFFF recovery
CG33 0xB2000000-0xB2DFFFFF cdrom
CG44 0xB2E00000-0xB2E7FFFF misc
CG43 0xB2E80000-0xB2EFFFFF cid
CG53 0xB2F00000-0xB32FFFFF kpanic
CG39 0xB3300000-0xC79FFFFF system
CG32 0xC7A00000-0xC7A7FFFF prek
CG46 0xC7A80000-0xC7AFFFFF pkbackup
CG40 0xC7B00000-0xD42FFFFF cache
CG37 0xD4300000-0xEFFFFFFF userdata

Links

=====

HomePage : http://blog.opticaldelusion.org/search/label/sbf_flash

HOWTO

Dump a partition (to be fixed for defy) :

sample to dump kpanic partition :

sbf_flash -r -f -d --kpanic

v1.23 output error on read : RX(7): [02]ERR[1e][8a][03]