RIFF JTAG – Samsung I9100 Galaxy S II Unbrick – Boot repair supported, World First ! ! !

29.07.2011     Samsung I9100 Galaxy S II Unbrick – Boot repair supported, World First ! ! !

Samsung I9100 is based on the S5PV310 (Exynos 4210) Processor (Cortex-A9 Dual-Core).

JTAG pads are very small; professional experience in soldering is required to connect wires to the JTAG interface. There is a big variety of versions of Galaxy II devices: GT-I9100, GT-I9100G, GT-I9100L, GT-I9100M, GT-I9100T, GT-I9101, GT-I9103, GT-I9108, GT-I9188, and maybe more. Some of them are based on different hardware platform – the OMAP4430 (Cortex-A9 Dual-Core). Thus make sure first which exact hardware version you have on hands.
Note, one simple way to connect over JTAG – connect USB cable to PC and insert battery. In this case phone is automatically powered on.
Phone has such booting sequence: ROM → FBL → IBL → PBL → SBL. Current resurrector will resurrect Partition Table (PIT) and SBL zones which are located in the iNAND (eMMC) memory. Write access to memory which contains FBL, IBL and PBL loaders is not supported currently, but in case your phone has these loaders damaged, you can choose “Initiate Download Mode” way of resurrection in order to directly put the phone into the Download Mode.

To resurrect Samsung I9100:

  •  Solder JTAG cable to Samsung I9100 JTAG pads;
  •  Connect USB cable to phone and PC;
  •  Insert battery;
  •  Make sure Samsung I9100 is selected in the list of models;
  •  Make sure a fixed TCK frequency is selected;
  •  Click Resurrect button;
  •  Wait till software signals a successful operation completion;
  •  Disconnect USB cable, de-solder JTAG wires;

Now phone is in bootable condition, that is, even if it does not start up normally, you can flash it using original Samsung downloader software to restore it to the working state.

To enter download mode:

  •  Disconnect PC cable;
  •  Insert battery;
  •  Hold both ‘Volume Down’ and ‘Home’ keys and press Power-On.
Please click “Check For Updates” button in order to download and apply new files. Closing all running application before starting update process is recommended.

RIFF JTAG – JTAG Manager v1.31, RIFF Box Firmware v1.23 released

20.04.2011 JTAG Manager v1.31, RIFF Box Firmware v1.23 released

Whats new :

JTAG Manager 1.31

  • “RUN/STOP” Loaders functionality is added (and alternative to the DCC Loaders)

This is required for some ARM7 cores when Debug Communication Channel (DCC) to/from core is not functional (like in MSM6000)

Firmware 1.23

  • Added 8/16/32-bit bus read/write access rotuines for ARM7 core
  • ARM7 debug is now available in ARM/Thumb modes (use the GDBServer for this);


Please click “Check For Updates” button in order to download and apply new files. Closing all running application before starting update process is recommended.

RIFF Box JTAG Manager v1.23, RIFF Box Firmware v1.17 released

07.02.2011 RIFF Box JTAG Manager v1.23, RIFF Box firmware v1.17

Firmware 1.17

* Optimized DCC transfers (debugger-to-target) for ARM9 cores (~64,3% speed increase)
* Added RX-polling feature (debugger-to-target) for ARM9 DCC transfers.

RIFF BOX firmware is able now to wait (if resurrector DLL will request so) for ARM9 target to be ready to accept next packet over DCC: this feature slows down a little the JTAG-to-ARM9 DCC transfers but guaranties no packets loss for slow clocked targets;

JTAG Manager 1.23

* Improved DCC flashing functionality (for DCC Loaders that work in targets with a small RAM capacity);
* Added 4 very low RTCK Sampling frequencies (20kHz, 40kHz, 60kHz and 80kHz) for some extreme cases
* Fixed another bug in the optimized DLL loading scheme;
* Increased ERASE waiting timeout (for slow NOR flash chips) so now erase operation for such chips will go successully and will not result in erase timeout
* Added “Usefull plugins” page;

“Usefull Plugins” will be new feature, we hope to release first one during this week. So stay tuned.

As usually, click the “Check for Updates” button to obtain latest files.

RIFF JTAG – JTAG Manager v1.15, RIFF Box firmware v1.14 released

05.10.2010 JTAG Manager v1.15, RIFF Box firmware v1.14 released

Whats new:

Firmware 1.14
– code is optimized to avoid deadlocks in Cortex-A8 handling routines (deadlocks appear due to communication errors);
– Cortex-A8 debug is now available in ARM/Thumb modes (use the GDBServer for this);
– ARM946E core support is added (which is mostly a debug access to the CP15 coprocessor);
– added new RESET type for ARM9xxx cores: HW_RESET – targets which have dedicated TRST can be halted
at the very first instruction core executes after the system reset signal (NRST) was applied.
Importance of this: if some harmfull/”unlucky” code is written to a boot zone of a device, which (code)
on the device startup results in h/w blocking, jtag disabling, core resetting, etc., then connecting via JTAG to such target
becomes an impossible task, since JTAG host has not enough time to halt the target before it becomes unusable by a harmfull code.
Using HW_RESET type ensures the target’s core does not execute even a single instruction after the reset signal (NRST) was applied.
– removed bug which could cause deadlocks of box during a h/w script execution.
JTAG Manager 1.15
– added extended flash chip info handling for example for NOR memories support by DCC Loaders;
– added Resume feature for interrupted writes (which could be performed by WriteMemory button (DCC Page) or by Resurrector DLL):
if target loses power, connection is broken or any other malfuntion happens during write operation, software will store current
write context; you can reconnect target and start write/resurrection again – software will prompt you whether to start again or to continue write from the
interrupted point. This feature is applicable to all write conditions (writes by resurrectors, or manual writes through the DCC Read/Write page features).
– added 3 buttons on Box Service page for quick access to the RIFF’s manual PDFs;
– fixed a not harmfull bug inside of the core reset (when NRST is applied) command sequence;
– added feature: if write error appears and ‘Ignore’ is choosen, user can order software to apply ‘Ignore’ for further write errors automatically;
– added standalone setup dialog for automatic write errors handling;
– added BAD Blocks Handling feature using the following algo:
If there are data chunks A B C & D to be written into blocks 1 2 3 & 4 respectively, and for example block 3 is found to be BAD, then software will write:
data A -> into block 1
data B -> into block 2
——–> block 3 is bypassed (and marked as bad)
data C -> into block 4
data D -> into block 5
It’s clear that block 5 was not intended to accept the data D. Thus:
– if block 5 had some other info then this info will be lost and will be overwritten with the data D.
– if block 5 was free for use, then nothing bad happens.

So, main conclusions:
1. BAD Blocks Handling is IMPOSSIBLE (POINTLESS) for writting FULL images (user can chose only ‘Ignore’ option)
2. When writting data chunks of length less than full flash size user is prompted to select 2 options:
a) Overlap (in example above this would mean to write data D into block 5)
b) Cut Excess (in example above this would mean to not touch original 5th block’s contents and just discard data D to be written)

************************************************** ************************************************** *********************************
NOTE: Bad block handling is allowed by default only through the DCC Read/Write page write.
—– Old Resurrector DLLs were not adapted for this feature, thus Bad Block handling will be implemented only in new DLLs.
If you meet a Bad Block Error during resurrection contact support in order to update DLL to a Bad Blocks adapted version.
************************************************** ************************************************** *********************************

– solved problem which caused update module to display files for download which were already up-to-date for cases
when JTAG Manager was installed on FAT (FAT/FAT32) file systems.
– very dangerous bug fixed: “Irnored” word misspelling is corrected to the valid “Ignored” one

RIFF JTAG – JTAG Manager v1.14 released

02.09.2010 JTAG Manager v1.14 released
Whats new:

JTAG Manger 1.14
– Increased internal buffers size to support NAND devices with 4KB/256KB Page/Block size which makes possible now to run Samsung S8500 fully functional resurrector;

– Added OneNAND 2K/4K pages size selection for DCC Loader setup in Custom Target Settings mode; (make sure you use latest OneNAND standalone DCC loaders; old OneNAND loaders may not start on the 1.14 JTAG Manager version);

– Fixed: now OneNAND settings (in DCC Loader Settings) are not discarded to defaults on next software startup.

– Improved presets loading sequence; – (SDK): exported new SUB_ID_SET_JTAG_SPEED function for resurrectors; Please click “Check for updates” button to download new version.