Вы находитесь на странице: 1из 9

Восстановление MMI 3G

При неудачной прошивке, когда MMI 3G «убитая», не запускается, кнопки на панели управле- ния не подсвечиваются и т.д., можно попробовать её восстановить. Для этого требуется терми- нальный режим общения.

Вся информация в этом тексте относится к MMI 3G 9307/9308. На других MMI по идее должно быть то же самое, но 100% уверенности нет.

1. Подключение к терминальному разъему.

Вытаскиваем блок MMI 3G, снимаем верхнюю крышку:

Вытаскиваем блок MMI 3G, снимаем верхнюю крышку: Снимаем дисковод:

Снимаем дисковод:

Вытаскиваем блок MMI 3G, снимаем верхнюю крышку: Снимаем дисковод:

Для отсоединения шлейфа надо аккуратно потянуть бежевый фиксатор (стрелка) с обеих сторон вверх. Так же отключаем шлейф, идущий от лицевой панели (с синим концом).

Переворачиваем блок вверх ногами и откручиваем все болтики.

и откручиваем все болтики. В том числе и два болтика,

В том числе и два болтика, которые держат лицевую панель (на фото выше они прикручены, пока- заны стрелками). Для этого надо вытащить блоки кнопок (или блок кнопок и заглушку).

Снимаем лицевую панель.

кнопок и заглушку). Снимаем лицевую панель. Должно получится так:

Должно получится так:

Вынимаем плату. Вынимается тяжеловато, мешают клеевые

Вынимаем плату. Вынимается тяжеловато, мешают клеевые теплоотводящие «подушки» и два язычка, которые фиксируют плату спереди.

Плата, вид снизу

плату спереди. Плата, вид снизу Нас интересует разъем слева

Нас интересует разъем слева внизу (на фото).

Припаиваем проводки к ламелькам, снизу и сверху платы, 5-ые от края платы

На фото выше – RxD

1 5
1
5

На фото выше – TxD

Снизу, на крайнюю правую ламельку, припаиваем провод земли (GND) – фото ниже.

провод земли (GND) – фото ниже. Провода маркируем и выводим

Провода маркируем и выводим наружу через отверстие в корпусе.

2. Адаптер USBàUART.

Необходим адаптер на микросхеме FT232R, подключенный по схеме питания выходов 3.3 вольта, т.е. питание Rx/Tx (vccio, 4-я лапа) берется с 3v3out (17-я лапа).

Как подключать адаптер к выведенным проводкам – не скажу, все зависит от конструкции адапте- ра. Ставить или не ставить разъем – решать Вам.

Главное не забыть, что RxD адаптера надо соединить с TxD платы MMI 3G, TxD адаптера – с RxD платы MMI 3G через переключатель (об этом ниже). Земля, естественно, к Земле.

Собираем блок, подключаем все кабели/жгуты проводов, выводим куда ни будь новые проводки.

Еще надо бы сделать ПЕРЕКЛЮЧАТЕЛЬ в цепи RxD блока MMI 3G. Общий контакт переключателя к RxD блока, нормально-замкнутый контакт – к TxD адаптера, нормально-разомкнутый контакт – на землю. Это надо для запуска IPL (Initial Program Loader) MMI 3G.

Примерно так:

Это надо для запуска IPL ( I n iti a l P r o gr a

3.

Подключение.

Запускаем на ПК (ноутбуке) терминал, например Putty. Устанавливаем связь с адаптером с пара- метрами:

Порт: номер COM-порта адаптера в Вашей системе Скорость: 115200

Data bits: 8

Stop bits: 1

Parity: none

Flow control: XON/XOFF

(по крайней мере у меня настроено так).

На ПК в окне терминала пока пусто (если MMI «мертвая») или что то там начинает выводится (то, что работоспособная MMI выдает на терминал). Это совсем отдельная тема.

4. Запуск IPL.

Если блок MMI 3G «мертвый», то делаем следующее:

Нажимаем и удерживаем кнопку переключателя на адаптере (или каким то образом коротим RxD

и землю MMI между собой), т.е. соединяем RxD MMI с землей и (чудеса эквилибристики или йоги) нажимаем три кнопки перезагрузки MMI и отпускаем их. Затем отпускаем кнопку на адаптере (или убираем перемычку между RxD MMI и землей).

MMI 3G переходит в режим загрузки IPL. На ПК в окне терминала может быть пусто, м.б. увидите

несколько строк загрузки IPL. Можно нажать «Enter», должно появиться приглашение «=>». Далее по обстоятельствам, в зависимости от того, что требуется сделать. Как это выглядит на терминале (жирным – команды пользователя):

IPL: Audi 3G 9308 (SH7785) / QNX 6.3.0 [PL_qnx_ipl-3g_9308-sh7785_08253A, built 2008/06/18_15-16-25_UTC] CPU: SH7785 (>= 5th cut, clk mode 20. 4xDDR), 792MHz

RAM: 512 MB (probed, DBCONF=e30002)

FLASH: Spansion S29GL512N (32bit): 512 sectors x 256K

FPGA:

PL_MMI3G_FPGA_9308_D1_09324A

(0ms)

Entering CLI, type '?' or 'help' for help

=> help

? - alias for 'help'

bconf

- display boot manager configuration

bios

- start BIOS

boot

- boot image in memory/flash

diag_p1j - diagnostic for the PLL1 clock jitter problem download - download IFS over serial line (sendnto protocol)

echo

- echo args

fpga

- load FPGA from image in memory/flash

go

- jump to 'addr'

help

- print online help

hwconf - dump hardware configuration

md - memory display

memperf - memory performance test (benchmark)

memtest - memory test

mt

- alias for 'memtest'

pci

- lists pci devices

qinfo

- display QNX build information

rsupdate - query read shifter update mode (workaround for SH7785 limitation #48)

rz

- alias for 'zmodem'

scan

- scan flash for images (FPGA, IFS, BIOS packet)

version - print program version zmodem - download IFS or FPGA over serial line (Z-Modem protocol) => boot 780000

starting image @80780000

Startup: , built 2011/07/19_09-41-26_UTC

RAM

: 128 MB @0x08000000

RAM

: 128 MB @0x40000000

NVRAM: 28 MB @0x5e400000

RAM : 228 MB @0x50000000

FLASH: 128 MB @0x00000000

System page at phys:0800a000 user:0800a000 kern:8800a000 Starting next program at v8804aae0 Welcome QNX6.3.2 (QNXLabel RL_qnx_os_632_PSP3_08041A)- Harman/Becker MMI3G Build 9307/08 D1-12385A

и т.д.

5. Загрузка убитой MMI.

Если

при включении MMI 3G не делать запуск IPL, то она переходит в режим загрузки IFS и начи-

нает

выдавать на терминал различную информацию, типа:

IPL: Audi 3G 9308 (SH7785) / QNX 6.3.0 [PL_qnx_ipl-3g_9308-sh7785_08253A, built 2008/06/18_15-16-25_UTC] CPU: SH7785 (>= 5th cut, clk mode 20. 4xDDR), 792MHz RAM: 512 MB (probed, DBCONF=e30002) FLASH: Spansion S29GL512N (32bit): 512 sectors x 256K FPGA: PL_MMI3G_FPGA_9308_D1_09324A

(0ms)

*** Old-fashioned mark found on IFS @0x1c0000: .zero=0x3000001e *** Old-fashioned mark found on IFS @0x680000: .zero=0x10000000 starting image @680000

Startup: , built 2011/07/19_09-41-26_UTC RAM : 128 MB @0x08000000 RAM : 128 MB @0x40000000 NVRAM: 28 MB @0x5e400000 RAM : 228 MB @0x50000000 FLASH: 128 MB @0x00000000 IPL: Audi 3G 9308 (SH7785) / QNX 6.3.0 [PL_qnx_ipl-3g_9308-sh7785_08253A, built 2008/06/18_15-16-25_UTC] CPU: SH7785 (>= 5th cut, clk mode 20. 4xDDR), 792MHz RAM: 512 MB (probed, DBCONF=e30002) FLASH: Spansion S29GL512N (32bit): 512 sectors x 256K FPGA: PL_MMI3G_FPGA_9308_D1_09324A

(0ms)

*** Old-fashioned mark found on IFS @0x1c0000: .zero=0x3000001e *** Old-fashioned mark found on IFS @0x680000: .zero=0x10000000 starting image @680000

Startup: , built 2011/07/19_09-41-26_UTC RAM : 128 MB @0x08000000 RAM : 128 MB @0x40000000 NVRAM: 28 MB @0x5e400000 RAM : 228 MB @0x50000000 FLASH: 128 MB @0x00000000 IPL: Audi 3G 9308 (SH7785) / QNX 6.3.0 [PL_qnx_ipl-3g_9308-sh7785_08253A, built 2008/06/18_15-16-25_UTC] CPU: SH7785 (>= 5th cut, clk mode 20. 4xDDR), 792MHz RAM: 512 MB (probed, DBCONF=e30002) FLASH: Spansion S29GL512N (32bit): 512 sectors x 256K FPGA: PL_MMI3G_FPGA_9308_D1_09324A

(0ms)

*** Old-fashioned mark found on IFS @0x1c0000: .zero=0x3000001e *** Old-fashioned mark found on IFS @0x680000: .zero=0x10000000 starting image @680000

Startup: , built 2011/07/19_09-41-26_UTC RAM : 128 MB @0x08000000 RAM : 128 MB @0x40000000 NVRAM: 28 MB @0x5e400000 RAM : 228 MB @0x50000000 FLASH: 128 MB @0x00000000 fail

ВСЕ, приплыли, MMI мертвая L

В приведенном примере идет попытка запуска имиджа с адреса 0х680000, хотя, по хорошему, IFS

должна находится с адреса 0х780000. И именно для правильного запуска имиджа в режиме рабо- ты с IPL была дана команда boot 780000.

Эта ситуация возникла из за того, что сначала, поверх фирменной прошивки была установлена кастомная прошивка, в которой IFSначинался с адреса 0х680000, при этом все работало. Затем сверху была снова установлена фирменная прошивка, в которой IFS начинался с адреса 0х780000. Это и убило MMI, т.к. IPL находил заголовок на адресе 0х680000.

В такой ситуации, после команды boot 780000 и загрузки MMI надо стереть старый заголовок ко- мандой flashit –a 0x680000 –e 1000. В следующий раз MMI загружается без проблем.

В других случаях все дальнейшие действия по восстановлению зависят от того, что Вам выдаст

MMI при обычной загрузке.

6. Аварийное восстановление с имиджа прошивки.

В режиме работы с IPL можно попробовать запустить аварийное восстановление IFS (IFS Emergen-

cy). Для этого надо загрузить систему с адреса 1c0000, т.е. дать команду boot 1c0000 и вставить

диск или карточку с образом актуальной прошивки.

Ниже то, что выдает MMI если с ней все в порядке!

=> 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

TOSHIBA MK4050GA Rev: TG10

starting flash driver starting SDCard driver Unable to access "/dev/io-net/en5" (2) 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

INvmRenderManager::GetNvmRenderManager (&pRenderManager); er = pRenderManager->Init(oConfig); # App FPGA valid 1 Emergency FPGA valid 1 Disabling IOC watchdog

target=1 lun=0

Direct-Access(0) -

EmergencyApp-MMI3G: version 22.30.1642, date of build 14.10.2009 pRenderManager->Open() nvidia_render_manager_init: OUT discplayer_init: OUT discplayer_init discplayer_init: IN nvidia_render_manager_init: IN nvidia_render_manager_init: OUT discplayer_init: OUT dvdtrackplayer_init discplayer_init: IN nvidia_render_manager_init: IN nvidia_render_manager_init: OUT discplayer_init: OUT dvdnavigator_init created navigator control point with 8249288 mixer_init: IN mixer_init: OUT NvTRACELEVEL set to 3 (Level Info) nVAudio_init: IN nvidia_render_manager_init(); nvidia_render_manager_init: IN nvidia_render_manager_init: OUT nVAudio_init: OUT installing audio decoders installing video decoders nVAudio_init: IN nvidia_render_manager_init(); nvidia_render_manager_init: IN nvidia_render_manager_init: OUT nVAudio_init: OUT OnIpcGetCaptureUnitSourceCount Number of displays: 6 Number of layers: 9 Graphics init was successfull: DisplaySize is 800x 480 The FPGA for the application is valid! Emergency application will do nothing! (devf t1::f3s_recover_boot:141) fs1p1 boot P[EF] U: 58 result of running command start_efs_driver.sh is 0 (devf t1::f3s_recover_boot:141) fs1p2 boot P[138] U: 50 (devf t1::f3s_recover_boot:141) fs1p3 boot P[1E5] U: 74 Wait for HBpersistence HBpersistence is available! ***********************************************************

**

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 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Enabling IOC watchdog Initiate shutdown (after BEM timeout) OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0 OnOff: process IPC event HWsample 209 HWvariant 7 FinalShutdown 0

**

**

**

Где то ближе к концу, перед тем, как началась выдача Enabling IOC watchdog, дисплей становится красным, с надписью, что все в порядке, и MMI через 60 секунд выключается.

и MMI через 6 0 секунд выключается. Если IF S убита, то все может

Если IFS убита, то все может закончится загрузкой «кусочка» QNX (при этом экран MMI остается черным), появляется приглашение «#».

Если Вы все таки добились загрузки IFS Emergency, и при этом дисплей остается черным, то можно стереть заголовок FPGA командой flashit -a 40000 -e 1000. НЕПЕРЕПУТАЙТЕ КОЛИЧЕСТВО НУЛЕЙ !!! Адрес 4000, например, убьет MMI!!! Эта команда сотрет заголовок FPGA и, при следующей загрузке MMI, IPL не найдя его запустит аварийное восстановление системы с карточки или диска. Главное, что бы версия прошивки на носителе была правильная, от этой модели MMI и, желательно, той же версии. Если 60 секунд мало и Вы желаете посидеть в терминале в режиме командной строки, то набери- те echo dummy > /HBpersistence/DeveloperMode.