How To Recover A Bricked Audi MMI 3G or 3G Plus
How To Recover A Bricked Audi MMI 3G or 3G Plus
How To Recover A Bricked Audi MMI 3G or 3G Plus
Document Summary:
Youre reading this document because you have probably had unsuccessful firmware update on MMI 3G or 3G
Plus unit, or possible you have killed your MMI during hacktivation.
There are two main categories of faults, 1) hardware faults, 2) software faults. This document covers the
repairs of software faults only.
The symptom of software faults range from MMI not starting at all (black screen) with being able to internal
HDD spinning, to all MMI lights on and fan spinning fast, to MMI starting but you also get no background light
on button control panel.
Purpose:
The purpose of this document is to help you to attempt to recover your dead MMI, this is done by accessing
the MMI via RS232 terminal communication (also known as COM port). There several techniques that can be
used to rectify the fault, zmodem or IPL (Initial Program Load) techniques can be used to push the OS image
back into the MMIs flash chip.
Scope:
All information in this document refer to the MMI 3G 9307/9308. However, in theory all other MMI variants
(9309, 9411, 9498, etc) should be the same.
Disclaimer:
This document is provided to you for free, feel free to learn and benefit from it. At no stage I take
responsibility of your actions or any of my notes that may mislead you. Therefore, and like my all other
documents I say use at your own risk. I have repaired 50+ MMI units from 16 countries around the globe. So
when everything fails, you can post me your MMI (or just the motherboard) and I will repair it and post it back
to you. I repair all type of hardware and software faults at very affordable prices. Contact me to find out.
1|Page
2. Remove DVD flexi cable and then remove the hard drive
There is a small pin that holds the drive, just gently push-in the clip
(where the arrow is pointing in the above picture) and the drive should pop out.
3. Remove the flexi cable that comes from the front panel (blue end).
4. If you havent done so already, flip the MMI up-side-down, and remove the two screws that
hold facia panel, see below:
5. Now go ahead and remove all the other screws marked in red circles.
2|Page
10. Were interested in the connector highlighted in the above picture, familiarise yourself with it.
11. Either find yourself one of these Card Edge Slot Connectors:
Card Edge Connector
3|Page
OR
Do things the cheap and ugly way by soldering wires directly to the board. The choice is yours but you must
follow the schematics below, so lets identify which side is which:
This is TOP:
This is BOTTOM:
Please note: In German, it was once common practice to label the Bestckungsseite (assembly side) with BS, and the
Ltseite (solder side) with LS. Fortunately this is no longer appropriate as technical environment where English is more
common, the abbreviation BS may be misunderstood as bottom side! We therefore recommend a uniform inscription
using TOP and BOTTOM to indicate the upper and lower sides.
Function
RxD
TxD
Ground
Pin
Top Pin 5
Bottom Pin 5
Bottom Pin 10
If you dont have a computer with COM port (RS232) you will need a good quality USB UART adapter that has FT232RL
Chip, I recommend something like this:
OR
The main thing to remember is connect the MMIs RxD and TxD in mirrored way when connecting to your RS232
adapter\cable, this to allow mouth to ear type of communication. More importantly, you need to make a switch in the
circuit to block the RxD channel on the MMI. This is required for IPL procedure, something like this:
4|Page
12. After connecting the wires or Edge connector, put the motherboard, hard drive, DVD, thermal
pastes, screws, facia board and everything else in the metal casing, just in the reverse order.
From step 10 back to step 2.
13. Configure your COM port with the following settings:
Port: 1 4 (just to simplify things)
Speed: 115200 for MMI variant 9303, 9304 and others. (9302 max speed has to be 57600)
Data bits: 8
Stop bits: 1
Parity: none
Flow control: XON / XOFF
Turn on RS232 adapters switch (or somehow connect MMIs RxD to Adapters ground)
Restart MMI using the 3 reboot buttons.
Turn off Adapters switch (remove the connection between MMIs RxD and ground)
MMI will now go into boot mode IPL.
Please note: That IPL is always at address 0 and it only kicks in when MMIs RxD terminal port is
connected to GND port at the power up. Otherwise MMI searches the memory header for ifs-root
and fpga, when these are found then it triggers MMI unit into them.
5|Page
The above example says the MMI failed to start when it was attempting address the launch image 0x680000,
and thats the problem as a good IFS should be located at the address 0x780000. So an easy fix for this would
be to boot the MMI with command:
boot 780000
An incident like this may occur due to the fact the MMI was flashed with a custom firmware that had IFS from
the address 0x680000 and it broke it. If the MMI boots ok with boot 780000 then you should enter
engineering menu and reflash it with the right firmware straightaway.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Image Address
0x00000000
0x00040000
0x00100000
0x001C0000
0x00780000
0x03800000
0x04E00000
0x06200000
0x07f00000
0x08000000
Image Name
IPL
FPGA
FPGA EMERGENCY
IFS EMERGENCY
IFS - ROOT
EFS EXTEND
EFS SYSTEM
EFS PERSISTENCE
BIOS
END OF FLASH
Start
63264
746472
746472
4,666,284
36866456
23,068,672
20971520
30,408,704
End
262144
786432
786432
6,029,312
50855936
58,720,256
20971520
31,457,280
Size
256kb
768 kb
768 kb
5888kb (5MB)
49664kb (48MB)
57344kb (56MB)
20480kb (20MB)
29696kb (29MB)
The same list can be extracted for other models and variants using the metainfo2.txt file from the firmware
disks. The information are listed under image layout section.
6|Page
You can now try to boot into emergency ifs (also known as recovery OS), by typing the following command:
boot 1c0000
If the recovery OS is valid, then the MMI will boot, you will see something like this:
=> boot 1c0000
starting image @801c0000 ...
Startup: PL_qnx_startup-sh7785_08362A, built 2008/09/02_07-53-12_UTC
RAM : 256 MB @0x08000000
FLASH: 128 MB @0x00000000
System page at phys:0800a000 user:0800a000 kern:8800a000
Starting next program at v88046840
-----------------------------------------------------Welcome to QNX 6.3.2 (RL_qnx_os_632_PSP3_08124A) MMI3G Audi EMERGENCY SETUP 9308 D1 09431A
starting pci driver
*** init FPGA registers ***
starting dev-ipc for IOC
initialize IPC Driver
starting network driver
starting atapi driver - setup device /dev/cam0
starting devc-pty
Path=0 - XILINX MMI3G_8
target=0 lun=0 CD-ROM(5) - FJ-TEN DVD-ROM DV-05FT2 Rev: 1B20
Path=1 - XILINX MMI3G_8
target=1 lun=0 Direct-Access(0) - TOSHIBA MK4050GA Rev: TG10
starting flash driver
starting SDCard driver
starting with no network driver
===========================================================
Emergency IFS is started. Emergency app tries to restore the application.
===========================================================
49169 running /usr/bin/devg-NVTIRM
DMA is Disabled
dma disabled, interrupt thread priority = 100
49171 running /sbin/io-media-nvidia
49172 running /usr/sbin/io-display
49173 running /usr/apps/MMI3GEmergencyApp
===========================================================
Emergency shell started, fix your system and restart again
===========================================================
discplayer_init: IN
nvidia_render_manager_init: IN
# App FPGA valid 1
Emergency FPGA valid 1
Disabling IOC watchdog
EmergencyApp-MMI3G: version 22.30.1642, date of build 14.10.2009
<-- A LOT MORE TEXT I HAVE TRIMMED HERE -->
** DeveloperMode is off!!!! **
** The system will shutdown soon! **
** DO NOT FLASH WITH SCRIPTS IN THIS MODE!!! **
***********************************************************
** You can enable DeveloperMode like this: **
** echo dummy > /HBpersistence/DeveloperMode **
***********************************************************
Set DisplayStatus to 2
Enabling IOC watchdog
Initiate shutdown (after BEM timeout)...
OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0
7|Page
From here there is one commands you can run to stop the MMI from automatically shutdown after 60
seconds, run this command:
slay -9 MMI3GEmergencyApp
After running the above command you have now unlimited time to recover, now you can reflash from SD card,
by running the following commands:
Model
3G
(930x)
Firmware
8R0906961DF
Command
flashit -a 0x00040000 -d -f /mnt/sdcard10t11/3/MU9308/fpga/41/default/SystemFPGA.hbbin
flashit -a 0x00100000 -d -f /mnt/sdcard10t11/3/MU9308/fpga-emg/41/default/SystemFPGA.hbbin
flashit -a 0x001C0000 -d -f /mnt/sdcard10t11/3/MU9308/ifs-emg/41/default/ifs-emg.ifs
flashit -a 0x00780000 -d -f /mnt/sdcard10t11/3/MU9308/ifs-root/41/default/ifs-root.ifs
flashit -a 0x04E00000 -d -f /mnt/sdcard10t11/3/MU9308/efs-system/41/default/efs-system.efs
flashit -a 0x06200000 -d -f /mnt/sdcard10t11/3/MU9308/efs-persist/41/default/efs-persist.efs
3G+
(9411)
8R0906961DG
3G+
(9498)
8R0906961DH
After running each flashit command you get to see a 3 stage process; erase, program and verify.
*** erasing ...
*** programming ...
*** verifying ...
Once you have completed all flashit commands for your MMI, then you can go ahead and restart it.
Note: If the MMI starts with all lights on and fan spinning fast then its very unlikely to be able to recover it
yourself, the V850 chip will need to be programmed with file D1_OS81050_FW_V01_10_07_CS_V02_01_11.ipf
from the firmware disk. I have special scripts to perform this. The programming is done by starting dev-i2chbfpga and dev-inic-flasher devices, then address IPC-SWDL with command sendReqDownload, the syntaxes
are: cmnd: 34h \ addr: 01h 00h 00h \ type: 01h \ format: 06h \ size: 01h 00h 00h \ max blk len: 00h FFh
****************** erasing V850 ... ********************
CHBSWDLMMI3GFileData : The length of is 65536
IPC-SWDL: startErase: addr=10000h, size=10000h, type=1h/IOC_BOLO
IPC-SWDL: sendReqDownload: (cmnd) 34h (addr) 01h 00h 00h (type) 01h (format) 06h (size)
01h 00h 00h (max blk len) 00h FFh
****************** job finished ********************
****************** programming V850 ... ********************
CHBSWDLMMI3GFileData : The length of is 65536
****************** job finished ********************
****************** verifying V850 ... ********************
CHBSWDLMMI3GFileData : The length of is 65536
****************** job finished ********************
****************** DONE! ********************
8|Page
After running the above command and somewhere towards the end, before you see Enabling IOC watchdog
text, the MMI display turns red, with the words AppFPGA is valid, and then it tries to shutdown in 60 seconds.
C. Those 60 seconds given to perform certain process are not sufficient, therefore, you will need to
extend this just run the following command:
slay -9 MMI3GEmergencyApp
F. After you run the above command you will need to insert firmware SD card into the MMI unit, make
sure the firmware is designed for this particular MMI unit.
G. Restart MMI
H. When the MMI starts this time, it should display the below green screen with Emergency download deletion process:
9|Page
I.
Every completed deletion process is followed by Programming process, like this one:
J.
The deletion and programming processes are performed several times, until all components of the
MMI have been updated. Wait until the programming process is finished and the system automatically
restarts.
K. Once the MMI has been rebooted automatically, it should start successfully.
I have put this document together from collecting a lot of information from many different online forums; PM
conversations, offline notes, hands-on experience, many sleepless nights of reverse engineer with aim to
help you to recover your bricked MMI and I hope it helps.
END OF DOCUMENT
10 | P a g e