Quote Originally Posted by osiris4isis View Post
No sweat, if there is one, I'll test it. If not, I'll test something else Is there a list of all the region numbers and their meaning (like 0x11=voice, bitmap, font, etc...) ? I see it mentioned here and there but no central FAQ for it. So this is what I understand so far
1. GPS unit power on, an instruction (JMP?) at a fixed address is execute to load the boot trap code to continue
2. The boot trap code (in NVRAM?) then load firmware to execute (I would assume that in the boot trap is code to dump various regions)
3. The firmware go about creating resources for voice, font/text, bitmap, etc... and then start looking for map to load
4. Map loader start up and load map and GUI
Is this correct?
Well, you clearly have a higher opinion of my knowledge than is reasonable, but i'll try. As far as the two different types of Garmin units are concerned, the regions may or may not be used similarly. Even with the later types [with visible file system] there can be variance as to which regions are used and/or accessible for copying or writing to. So, in short, there's no full list of region meanings/functions posted that i'm aware of. Most of this stuff is over my head [as i said i'm not a coder or hardware geek], but to take the example you gave of 0x11 [aka rgn11 hex or reg17 dec] used for voice on the older 'region only' units: On the newer devices it is either empty or not existing or it's protected and can't be dumped.

I think some common regions [in decimal] and their functions/role in the boot process of modern units are:
  • 5 stores the bootloader. Bootloader allows 'pre-boot' mode if requested by the user thru correct action [hold right spot on screen while powering on etc] and it communicates with Updater.exe via Garmin USB Protocol. If the pre-boot mode is not entered, or entered but not utilised in a set time, or the unit is just powered on normally then bootloader loads fw_all.bin from rgn14 [0x0E].
  • 14 is the kernel, it draws the GUI, allows MSM [& MTP mode in later devices], verifies and allows flashing of firmware gupdate.gcd files, blah blah.
  • 43 contains x-loader which initialises RAM and it loads the bootloader from rgn5 to RAM and executes that. Probably if regions 5 & 43 or ether is erased then the unit will be dead.


The 'boot.bin' is not well-named because that name tends to indicate it's the actual bootloader. It's actually the ramloader but it normally does contain copies of the bootloader [rgn5] and the x-loader [rgn43] and it will flash them when it's executed [but not in all devices].

I'm very hazy on this stuff and i believe that in different devices the boot 'sequence' does vary but that's the best i can do.

Other commonly known regions are:
  • 3 [0x03] for basemap on older units;
  • 10 [0x0A] for supplementary map [gmapsupp.img] on older units;
  • 12 [0x0C] stores the 'ramloader' and is protected [common to both 'types' of unit];
  • 16 [0x10] for the logo [common to both 'types' of unit];
  • 48 [0x30] for file system on earlier modern units;
  • 49 [0x31] for primary detail map [gmapprom.img] of older units;
  • 50 [0x32] for OEM map [gmapoem.img] on older units.


Actually, Giomen could have answered this better than me and i'd been waiting for someone else to do just that. When i saw he'd responded only about Garmin Voice Studio i figured he couldn't be bothered ... You watch him or someone else beat me up severely if i've posted above though.