Sync 3 ford: Ford SYNC 3 – мультимедиа и навигация

# Как прошить REFORMAT на Ford Sync3 · GitHub

Intro

Данный способ позволяет прошить Sync3 по USB, даже если он был полностью окирпичен 🧱. При этом не требуется припаивать ни картридер, ни какие-либо другие провода. Единственное что нужно, так это разобрать плату и замкнуть два контакта.

Hardware

Блок Ford Sync3 состоит из двух плат:

  • Основная плата – IPC с TI Omap5432 SoC в роли основного процессора, RAM, eMMC flash.
  • Вторая плата – VMCU. На ней расположены CPLD и микроконтоллер. Эта часть отвечает непосредственно за интерфейс CAN (так как Omap5432 его не имеет), а также эта плата выполняет роль внешнего watchdog’a для основного CPU.

IPC и VMCU обмениваются между собой по интерфейсу UART, скорость 500kbps, для передачи пакетов используется COBS кодировка. Но подробнее об этом как-нибудь в другой раз 🙃

OMAP5432 boot mode

В соответствии с публичным даташитом OMAP5432 Multimedia Deviced мы можем получить информацию о способах и порядке загрузки Omap5432.

Она приведена в разделе 2.6 SYSBOOT configuration.
Вот табличка из этого даташита.

Все внимание на sys_boot3. Именно он меняет приоритет загрузки с USB. То есть, если прижать sys_boot3 к земле, то SOC начнет грузиться с USB в первую очередь.

Но как найти sys_boot3?

В этом нам поможет другой даташит OMAP5432Multimedia Device Engineering Samples 2.0 который содержит описание пинов(шариков, если хотите😊) процессора, а также схему с их расположением(Figure 2-1. OMAP5432 AAN S-PBGA-N754 Package (Bottom View)).

Находим наш sys_boot3 и видим что он расположен на месте V31.

Но как до него добраться?

Так как шарик с V31 находится под процессором, к нему невозможно подобраться без специнструмента.

Но тут на помощь пришел Cusco. Он прозвонил разъемы от Soc до многочисленных контрольных точек(TP), расположенных на плате.

И таки нашел V31!

Теперь мы готовы к загрузке в Sync3 по USB.

USB boot

Пришло время подключить Sync3 к PC по miniUSB кабелю. Затем начинаем будить плату пакетами по CAN(с этим отлично справится даже любой elm). Замыкаем два обведенных контакта и подаем питание 12V.

Смотрим лог(dmesg) и видим:

kernel: [431083.350475] usb 1-3: new high-speed USB device number 114 using xhci_hcd
kernel: [431083.499541] usb 1-3: New USB device found, idVendor=0451, idProduct=d011, bcdDevice= 0.00
kernel: [431083.499555] usb 1-3: New USB device strings: Mfr=33, Product=37, SerialNumber=0
kernel: [431083.499561] usb 1-3: Product: OMAP5430
kernel: [431083.499566] usb 1-3: Manufacturer: Texas Instruments

Отлично, SoC увиделся по USB и ожидает загрузки в него кода.. .

Но что в него загружать?

Тут следует сделать небольшую ремарку. USB boot в Omap5432 это не совсем то же самое, что и загрузка с eMMC или SD карты. Мы не можем просто отформатировать USB флешку определенным образом и загрузиться с нее, как это делается в PC. Вместо этого по USB мы должны передать в Soc наш исполняемый код(загрузчик), а вот уже в этом загрузчике реализовать доступ к eMMC.

После нескольких дней гугления удалось найти ссылки на статьи об отладочной плате TI OMAP5 5432 uEVM ES2.0 (Panda5) ведущие на http://omapedia.org

. Пытаемся перейти и… нас редиректит на www.ti.com.
Сайт выпилен. fuck!

Однако web.archive.org помнит все, ну или по крайней мере многое 😌

  • Общее описание

  • Подробное описание процесса загрузки с USB

Как ни странно ссылки на исходники были живые. Нас интересует в первую очередь утилита UsbBoot(Omapboot).
Тянем исходники git clone git://git.omapzoom.org/repo/omapboot.git usbboot && git checkout 33af7cb409b603cf7988306ab2ea70f052a9a02b и пробуем собрать.

Для сборки под Omap нужен тулчейн под Armv7. Можно взять тот, который в статье из wiki, но для этого придется выкачать весь android’овский репозиторий. Поэтому мы поступим проще и возьмем собранный тулчейн отсюда.

Отлично, теперь у нас есть что загружать в SoC. Загружаем…

user@pc:~/$ sudo ./out/omap5uevm/usbboot -f
reading ASIC ID
CHIP: 5430
rom minor version: 02
IDEN: 0000000000000000000000000000000000000000
MPKH: 0000000000000000000000000000000000000000000000000000000000000000
CRC0: 071a9a31
CRC1: 00000000
device is GP
using built-in GP iboot of size 23-KB
sending 2ndstage to target...
waiting for 2ndstage response...
received 2ndstage response...

После загрузки и получения ответа по USB от нашего свежесобранного загрузчика, мы можем подключиться к Omap’у утилитой fastboot (да, да, той самой что для android) и попробовать выполнить пару команд.

Подведем промежуточный итог

  • Мы научились менять порядок загрузки с USB.
  • Мы научились запускать свой собственный загрузчик.
  • У нас есть рабочий канал USB для взаимодействия между PC и процессором Sync’a.

Пришло время научится прошивать eMMC Sync’a своими образами, передаваемыми по USB с PC.

Reformat

Пакет реформата предназначен для заводской(чистой) установки ОС Sync3. Он состоит из 2х частей:

  1. MLO – Загрузчик
  2. QNX-IFS-REFORMAT – Образ ОС, выполняющий заводскую установку Sync3.

Именно эти файлы нам и нужно записать на eMMC. Осталось понять где именно в eMMC они должны размещаться.

Для этого посмотрим оригинальный скрипт установки реформата. Видим там такую строчку update_boot -t -i /tmp/QNX-IFS-REFORMAT -m /tmp/MLO

Ага, значит есть некая утилита update_boot, которая в Sync выполняет всю установку. Что ж будем ковырять ее…

Первым делом strings update_boot:

Usage: %s [-i] [-m] raw partition
	-i   Path of IFS image file
	-m   Path of MLO image file
	-t   Toggle active IFS partition
	-r   replace current IFS with new one
	raw partition   Path of raw partition to write IFS and MLO image files, default value is /dev/hd0.

С параметрами стало более менее понятно, дело за малым – понять что именно эта софтина делает. Берем гидру и засовываем наш update_boot туда. Процесс декомпиляции выходит за рамки этой статьи. Кому интересно, вот ссылка репозиторий с говнопсевдокодом, полученным в результате декомпиляции.

В итоге получаем вот такую вот картину разметки eMMC для Sync3.

Sync3 eMMC layout
blockoffsetname
0x0000MBR
0x00020x0000400 (1024)boot bank info
0x01000x0020000 (131072)MLO
0x01840x0030800 (198656) IFS first bank
0x7cd20x0F9A400 (16360448)IFS second bank

Sync3flash

Загрузчик, который мы собирали ранее, уже имеет функции для чтения\записи флешки. Адреса, по которым нужно писать образ реформата, мы получили в предыдущем пункте.

Немного перепишем оригинальный usbboot выкинув оттуда все лишнее и добавив прошивку MLO и QNX-IFS-REFORMAT по нужным нам смещениям. Получившаяся софтина sync3flash.

Прошивка eMMC Sync3

Для прошивки нужен PC с Linux (виртуалка не подойдет, но можно использоваться livecd флешкой, например puppy linux)

sync3flash

Также требуются файлы реформата (MLO и QNX-IFS-REFORMAT)

Итак, теперь у нас есть все необходимое для прошивки. Приступаем:

  1. Подключаем Sync3 к напрямую PC по microUSB кабелю. (подключение через хаб работать не будет)

  2. Начинаем отправку CAN сообщений, которые будят Sync.

  3. Запускаем sudo ./sync3flash -i QNX-IFS-REFORMAT -m MLO

  4. Замыкаем контакты, обведённые красным

  5. Подаем питание на Sync.

Если все успешно, то должны увидеть вывод вида:

user@user-PC:/tmp$ sudo ./sync3flash -m MLO -i QNX-IFS-REFORMAT 
waiting for device...
reading ASIC ID
CHIP: 5430
rom minor version: 02
IDEN: 0000000000000000000000000000000000000000
MPKH: 0000000000000000000000000000000000000000000000000000000000000000
CRC0: 071a9a31
CRC1: 00000000
device is GP
sending 2ndstage to target...
waiting for 2ndstage response...
sending image to target...size (22696-B/22-KB/0-MB)
sending image to target...size (9279956-B/9062-KB/8-MB)

Через 30 секунд Sync 3 перезагрузится и загрузится реформат. Вот и все…

PS:

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

PPS:

Большое спасибо Cusco за помощь по аппаратной части, идейным вдохновителям Sanek2033 и Au{R}oN, а также Lynx за идею.

новый мультимедийный комплекс на базе QNX

3DNews Технологии и рынок IT. Новости автомобили, мотоциклы, транспортные сред… Ford Sync 3: новый мультимедийный компле…

Самое интересное в обзорах

14.12.2014 [09:00],  Сергей Юртайкин

Автоконцерн Ford Motor анонсировал третье поколение информационно-развлекательной системы Sync. В ней американская компания сменила программную платформу, исправила ошибки, повысила скорость работы и сделала интерфейс более удобным и понятным для водителя.

Изменений действительно произошло много, а начнём мы с названия продукта. Если раньше Ford официально именовала свой бортовой мультимедийный комплекс Sync with MyFord Touch, то обновлённая версия получила короткое обозначение Sync 3.

По мнению аналитика AutoTrader.com Мишель Кребс (Michelle Krebs), компания Ford сделала правильный шаг, избавившись от бренда MyFord Touch, который ассоциировался у потребителей с неудачами и проблемами. Автопроизводитель заявил, что при разработке новой системы учитывались мнения и пожелания около 22 тысяч клиентов.

Прежние поколения Sync with MyFord Touch базировались на программном обеспечении Microsoft, за что Ford получала большую порцию критики. В основе Sync 3 лежит операционная система BlackBerry QNX, доработанная Panasonic. С новым софтом интерфейс информационно-развлекательной системы стал понятнее и быстрее, а технология распознавания голоса — более совершенной и естественной.

Теперь для задания маршрута в навигаторе не нужно озвучивать точный адрес, а достаточно сказать, например, «аэропорт Детройта» или «ближайшая больница». Автомобили с Sync 3 будут комплектоваться отдельной кнопкой на руле, предназначенной для вызова голосового помощника.

8-дюймовый сенсорный экран остался прежним, но управление жестами и реагирование дисплея на прикосновения улучшились. Количество доступных приложений выросло до 40, среди них множество мультимедийных сервисов и программ, упрощающих жизнь водителям. Sync 3 получила обновлённую графическую оболочку, включающую удобное горизонтальное расположение иконок для основных задач (музыка, навигация, телефон, климатическая установка и т. п. ).

Новый бортовой комплекс от Ford будет автоматически обновлять ПО, в том числе через домашнюю сеть Wi-Fi, когда автомобиль находятся в зоне действия беспроводного сигнала.

Владельцы транспортных средств с прежними версиями Sync не смогут перейти на третье поколение системы путём простого программного обновления — потребуется полная замена устройства на центральной консоли. В настоящее время Sync with MyFord Touch используется более чем в 10 млн автомобилей по всему миру. Появление Sync 3 на коммерческом рынке намечено на 2015 год.

Источник:

Если вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

Материалы по теме

Постоянный URL: https://3dnews.ru/906673

Рубрики: Новости Hardware, автомобили, мотоциклы, транспортные средства,

Теги: ford, sync, автомобильная электроника, автомобиль

← В прошлое В будущее →

Форд Синк3

Ожидайте большего От Supreme Automotive Group