Riff Box All Error And Solutions!!! By BuntyGSM Mobile Repairing Institute


 *Detected dead body ID: 0x000000E1 - WRONG!!!
This error is returned by JTAG Manager, and can be caused by bad connection and low device power.
Solution is to check all JTAG signals connections carefully and provide sufficient power to target device.

*Error code 0x2A
Error code 0x2A
Returned by the DCC Loader when it attempts to program part of flash memory and fails waiting for selected flash memory controller to assert ready status.
Explanation:
May happen if target is currently in some unrecoverable h/w state or if memory controller is not properly initialized or due to some other reasons. Shall not happen since it is DCC Loader’s task to initialize and communicate with memory controller properly. Can happen if target has a damaged memory chip.

*Error code 0x2B
Error code 0x2B
Returned by the DCC Loader when it attempted to erase block of flash memory and fails waiting for selected flash memory controller to assert ready status.
Explanation:
May happen if target is currently in some unrecoverable h/w state or if memory controller is not properly initialized or due to some other reasons. Shall not happen since it is DCC Loader’s task to initialize and communicate with memory controller properly. Can happen if target has a damaged memory chip.

*Error code 0x2D
Error code 0x2D
Returned by the DCC Loader when it fails to erase or program flash memory due to active write protection. Shall not happen since it is DCC Loader’s task to perform the write protection removal prior erase or program operations on selected flash memory.

*Error code 0x2E
Error code 0x2E
Returned by the DCC Loader when it fails to erase flash memory’s logical block and cannot determine the reason of such error.

*Error code 0x2F
Error code 0x2F
Returned by the DCC Loader when it fails to wait till specific write protection unlock procedure on some memory chips is signaled to be finished.

ü Error code 0x3C
Error code 0x3C
Returned by the DCC Loader when it detects in some targets an active write protection – thus erase/program operations will not be possible.

*Error code 0x3D
Error code 0x3D
Returned by the DCC Loader in case its internal memory buffer cannot satisfy current needs.
Explanation:
Can happen when DCC Loader has limited amount of memory and for example NAND write operation is requested with only Main or only Spare zone checked – in this case normal course of actions for DCC Loader is to back up full NAND block contents in RAM memory and modify only specified main or spare zone prior flashing it back. So if RAM capacity is limited the DCC Loader will report error.
Only solution here – is to perform write operation with both main and spare zones selected – in this case no back up operation is needed.

*Error code 0x23
Error code 0x23
Returned by the DCC Loader when supplied parameter to requested command is wrong – for example during read operation supplied read length is too high or wrong – not aligned or any other reason. Spontaneous JTAG communication link error or target’s RAM memory failure is highly improbable here and such error is most possible due to wrong actions of user.

*Error code 0x24
Error code 0x24
Returned by the DCC Loader when it fails to erase flash memory’s logical block. This is not an abnormal situation for NAND memories – bad blocks are sometimes appear due to specific NAND memory’s technology. User shall select how to handle block erase error in the JTAG Manager – for this user must be familiar with bad blocks handling techniques in general.

*Error code 0x25
Error code 0x25
Returned by the DCC Loader when it fails to program part of flash memory. This is not an abnormal situation for NAND memories – bad blocks and pages are sometimes appear due to specific NAND memory’s technology. User shall select how to handle block program error in the JTAG Manager – for this user must be familiar with bad blocks handling techniques in general.

*Error code 0x27
Returned by the DCC Loader when it fails waiting for selected flash memory controller to assert ready status.
Explanation:
May happen if target is currently in some unrecoverable h/w state or if memory controller is not properly initialized or due to some other reasons. Shall not happen since it is DCC Loader’s task to initialize and communicate with memory controller properly. Can happen if target has a damaged memory chip.

*Error code 0x28
Error code 0x28
Returned by the DCC Loader when it fails reading part of flash memory.
Explanation:
May happen if target is currently in some unrecoverable h/w state or if memory controller is not properly initialized or due to some other reasons. Shall not happen since it is DCC Loader’s task to initialize and communicate with memory controller properly. Can happen if target has a damaged memory chip.

*Error code 0x30
Error code 0x30
Returned by the DCC Loader when it fails to perform specific write protection unlock procedure on some memory chips when it is required to be done.

*Error code 0x39 (0x3901)
Error code 0x39
Returned by the DCC Loader when it was executing an extended command and that command failed. Extended command’s failure status is operation specific and is not relevant to communication problems.

*Error code 0x43
Error code 0x43
Returned by the box’s firmware when target HALT operation was performed on already halted target.
Solution:
Don't halt already halted target !

*Error code 0x44
Error code 0x44
Returned by the box’s firmware if attempted target HALT operation failed.
Solution:
Check target device connection. In case You're trying to access device based on MSM8255/MSM8655 CPU, this error can be caused by CPU fuses. In case that there is no boot device present, or DBL (FSBL) partition is damaged, fused devices will return this error.
Example - HTC phones with damaged eMMC.

*Error code 0x45
Error code 0x45
Returned by box’s firmware when attempt to read ARM9 ICE Breaker register failed. This happens when target unexpectedly loses power or connection with target gets broken. Additionally loose of power or connection break often happens during target’s h/w configuration stage – this stage is always performed by every resurrector prior uploading DCC loader code into memory. Thus it means embedded h/w initialize sequence is not thorough (or not compatible at all) for current device’s state or it is possible that target’s hardware is malfunctioning
Solution:
Connect NRST pin properly. In case that You have unsupported device, this error can be caused by wrong HW Init script selected.

*Error code 0x46
Error code 0x46
Returned by box’s firmware when attempt to write ARM9 ICE Breaker register failed. See error code 0x45 for symptoms.

*Error code 0x47
Error code 0x47
Returned by box’s firmware as status whether target is currently running or halted. Current code means target is running.

*Error code 0x48
Error code 0x48
Returned by box’s firmware when attempt to start target running (to exit from debug/halted state) failed. Could happen when user clicks Run Target button and supplies non-existent address in current taget’s context or due to not-recoverable state of target at that moment.

*Error code 0x49
Error code 0x49
Returned by box’s firmware when some timeout happens during JTAG communication between box and target. Can happen due to erroneous connection, spontaneous connection errors, target’s malfunction, loose of power, etc – or in general – all those factors which may influence loss of synchronization between box and target.
#define CMD_RESP_JTAG_WRONG_RESPONSE 0x4A
#define CMD_RESP_JTAG_MEM_ACCESS_ABORT 0x4B
#define CMD_RESP_JTAG_MEM_HS_OVERFLOW 0x4C
#define CMD_RESP_JTAG_SYS_SPEED_FAILED 0x4D
#define CMD_RESP_JTAG_DCC_RX_NOT_READY 0x4E
#define CMD_RESP_JTAG_CANNOT_DETECT_NEXT_STOP 0x4F
#define CMD_RESP_JTAG_TARGET_HALTED 0x50
#define CMD_RESP_JTAG_POWER_FAILED 0x51
#define CMD_RESP_JTAG_UNLOCK_FAILED 0x52

*Error code 0x53
Error code 0x53
Returned by box’s firmware in case of attempt to set instruction breakpoint on currently selected target while all h/w breakpoint slots are already busy. May happen when executing CMM script – when user tries to set too many breakpoints than is possible on the current target.

*Error code 0x60
Error code 0x60
Returned by the JTAG shifter block when timeout happens. This is possible when RTCK mode is active and firmware waits for RTCK signal response for too long period of time.
Solution:
Reset target device power, or use fixed TCK value.

*Error code 0x81
Error code 0x81
Is returned by many routines which were accessing UART (for read or write) and UART port was unexpectedly closed by the Host (PC)
Solution:
Check USB cable, and close any comport monitoring software. PC suite softwares can cause this problem.

*Error code 0x82
Error code 0x82
Returned by routines which expect a different input parameter. Most often is returned by the h/w scripts (*.has) processing block in case when resurrector tries to execute a not supported h/w script instruction. This can happen because box’s firmware is older than expected by used resurrector.
Solution:
Upgrade RIFF Box firmware to latest version.

*Error code 0x83
Error code 0x83
Returned by firmware in case there was an attempt to use some specific function like read/write target memory by 8- 16- 32- bit bus accesses, access coprocessor, etc. while selected target’s handler code does not support it. This can happen mostly when executing CMM scripts – for example current 1.19 firmware does not support coprocessor access for PXA270 core, and attempt to read or write coprocessor through h/w or cmm script will give such error.
Solution:
Update RIFF Box firmware to latest version.

*Error codes 0x54, 0x55
Error codes 0x54, 0x55
May be returned by box during firmware update stage. These errors are severe and can happen due to box’s h/w malfunction or erroneous USB communication with PC.

*ERROR: DCC Loader has reported Error Code = 0x3E (0x007FFF <> 0x010000)
This is returned by DCC loader in case that eMMC internal controller fails to erase/write specific block. Usually it means that eMMC chip has failed, and can not be recovered by software means.
Solution is very simple - solder new eMMC chip, repartition it and repair bootloader.

*ERROR: Main data file size is less than requested to flash to main
Happens when "Autofullflash size" is used and file selected in main field is less then detected flash chip size.
Solution:
Use "File Size" option in Data Length field instead of auto fullflash size.


*ERROR: No response from the RIFF Box.
Can happen due to numerous of reasons. Mostly it's caused by wrongly configured RTCK/TCK sampling value, or badly connected device. In some cases it can be caused by hardware failure on target device.

Solutions:
· Adjust RTCK/TCK sampling to lower value
· Recheck connection
· Check device hardware for problems
· ERROR: RAM memory selftest failed.
· ERROR: RAM memory selftest failed.
·
· This error can be caused by numerous reasons. In most cases, it's due to bad connection (unstable NRST signal line), or RTCK/TCK sampling rate too high.
· User should check connection, and adjust RTCK/TCK sampling rate to lower value:
· This can be also target device problem. DCC loader upon startup checks target device RAM (if external RAM is used) and in case that selftest fails, it will return this error. Easiest was to diagnose this is to run generic DCC loader DLL.
· Generic DLL-s use internal MCU SRAM, and in case that You can boot target device without problems using generic DLL, and with model specific You have this error, it's hardware problem.
·
· Example - HTC Desire DLL returns "RAM memory selftest failed." error, while QUALCOMM QSD8xxx NAND works without errors.

*ERROR: Read/Write memory failed during H/W Init
This error can happen due to few reasons:
· NRST or GND pins not connected properly
· Wrong model selected
· Hardware failure
Solution:
Connect NRST and GND pins properly. In case that You're trying to access officially unsupported device, contact support for correct H/W Initi settings.

*ERROR: Set I/O Voltage to"value" failed. Real reading is "value".
Can happen due to following reasons:
· Connection with device is wrong
· Target device has developed hardware malfunction
· RIFF Box I/O voltage generator is malfunctioning
To properly diagnose root of the problem, do the following:
- Disconnect ribbon cable from RIFF Box and press any function button. In case that box internal I/O voltage generator is malfucntioning, You'll receive same error:

Connecting to the dead body...ERROR
ERROR: Set I/O Voltage to 2.80V failed. Real reading is 3.86V

In case that box is okay, error will be gone:

Connecting to the dead body...ERROR
ERROR: The RTCK Signal does not respond.


*ERROR: The RTCK Signal does not respond.
Can happen due to numerous of reasons:
· RTCK not connected
· RTCK signal doesn't exist for current target device
· Target device is wrongly connected
· Target device is not powered on
· Target device hardware is malfuncitoning
Solutions:
· If target device pinout contains RTCK signal pin, connect it
· If target device doesn't contain RTCK signal pin, use fixed TCK value
· Recheck connection according to provided JTAG target device pinout
· Make sure that target device has sufficient power and that power on sequence is executed (Connect USB cable, charger, or simply hold power on key)
· Check target device hardware .

*ERROR: Timeout while waiting for DCC Loader response.
Returned by DCC loader, usually during write operations. There is number of reasons which can cause this error:

· RTCK/TCK sampling rate is too high
· Connection with target device is unstable
· Flash memory is malfunctioning
User should adjust the RTCK/TCK sampling rate and check connection. In some cases, memory chip (NAND/NOR/eMMC) needs to be replaced.

*Error: Wrong DCC Data Checksum
Wrong DCC Data Checksum

Happens when DCC Loader which is being executed by target is too slow to respond through the DCC channel. Since RIFF BOX’s firmware in normal state never checks DCC channel RX and TX ready flags (such checks slow down the communication speed and were decided to be omitted) sometimes it happen DCC Loader supplies data to DCC channel slower than BOX’s firmware reads from it. Thus trash is received.
Solution:
User shall lower TCK/RTCK Sampling speed settings in order to allow more slow communication between DCC Loader and host.

*ERROR(0x42): Communication is not established. Terminating.
Error code 0x42
Returned by the box’s firmware in case there was nothing detected on the JTAG chain.
Solution:
Hold power key on target device during connection process.
Failed to receive answer to READ command.
Failed to receive answer to READ command.
This error happens mostly due to high RTCK/TCK sampling rate. If You're using "Sample at Max" RTCK settings, set RTCK to lower value, for example to 1MHz. If You're using Fixed TCK, set it to lower value.
This problem can be also caused by bad connection, or bad 20pin ribbon cable. In some cases, it can be due to faulty target device hardware.

*2.1. Error code 0x22
Returned by the DCC Loader in case received packet of data failed to pass CRC32 checksum check. May happen due to spontaneous JTAG communication link error. For example communication frequency selected is too high – thus unstable errors may happen.
Other reason for this error – target’s RAM memory used by the DCC Loader for data storage is malfunctioning or wrongly configured.
Solution:
Adjust sampling frequency rate to lower value (RTCK or TCK), make sure that cable is conneczed properly and not too long.

*Unrecognized memory chip with ID = 0xAAAA/0xAAAA.
1.Unrecognized memory chip with ID = 0xAAAA/0xAAAA.
The DCC Loader upon startup always performs flash memory initialization and responds to host with valid memory ID, and with some parameters which describe current memory chip architecture.
Explanation:
In case DCC Loader fails to initialize or detect memory chip it will respond with default ID = 0xAAAA/0xAAAA – this means memory is not detected. May happen if target is currently in some unrecoverable h/w state or if memory controller is not properly initialized or due to hardware failure of the memory chip.
Solution:Replace memory chip.

*WARNING: DCC Loader was unable to initialize FLASH1 chip. Error code: 0x00000000
This error is returned by DCC loader in case that memory chip is not detected. Usually it hapens when chip it self is dead, or it's not powered.
User should replace memory chip, or in rare cases check power supply circuitry.