Just a quick overview of what memory looks like on the Treo 650. Note that there is 32MB of non-volatile storage (the disk-on-chip flash) and 32MB of volatile SDRAM (lost on reset/power down).

Disk-on-chip (“non-volatile” storage):

32MB 1
ROM Partition 2
(anywhere from 7-10MB)
NVFS Partition
(remainder of space)

RAM (volatile storage):

Uncompressed ROM 3
Dynamic RAM
(approx. 5.3MB)
(remainder of space)


  1. In reality this isn’t really 32MB, as 512kB is allocated for the SPL and some of the space may be allocated for bad block reassignment.

  2. The ROM partition contains the TPL, SPL, HTC bootloader and the ROM zip.

  3. Note that the uncompressed ROM size may exclude alternate languages in any ROMs with a language selection (via the LLid token).

How to roughly calculate DBCache

The formula is pretty easy:

32MB – 5.3MB (dynamic RAM) – Uncompressed ROM size = DBCache

If you have more than one language in your ROM, you can exclude the unused language files from the uncompressed ROM size.

Read full post