MStar: расследование различий между MSD306, MSD308 и MSD309

С процессорами MStar серий MSD306, MSD308 и MSD309 сталкивался каждый ремонтник телевизоров. Но попробуйте спросить на форуме, чем они отличаются и взаимозаменяемы ли — вы получите десяток противоречивых ответов. Маркировка под радиатором говорит одно, надпись на плате — другое, а в схеме — третье. Предлагаемая статья — итог расследования с паяльником, HEX-редактором и оригинальными схемами MStar в руках. Давайте расставим все точки над «i».

1. Два поколения или три процессора?

Инженеры MStar представляют два чипа: MSD308, MSD309. А «MSD306» используется, как общее базовое название.

MSD309PX BGA MSD308BT-SW BGA

Есть два реально существовавших кристалла:

Первое поколение — MSD309PX (ядро S7LD)

Второе поколение — MSD309BXM / MSD309B_17x17 / A7_17x17 (ядро A7)

2. Как отличить, не снимая радиатор

Есть три безошибочных способа.

Способ 1. По напряжению питания ядра

Найдите дроссель DC-DC преобразователя, питающего ядро (обычно подписан VDDC или VDDCORE). Замерьте напряжение:

Способ 2. По типу оперативной памяти

Посмотрите маркировку микросхем ОЗУ рядом с процессором:

Способ 3. По прошивке (если есть дамп)

Откройте дамп в HEX-редакторе и найдите текстовую строку MIU_:

5. Анализ машинного кода

Анализ первых байт прошивки показывает, что оба процессора исполняют MIPS-инструкции (lui, addiu, sw, jr $ra). Значит, «A7» — это внутреннее кодовое имя ревизии MIPS-ядра, но не Cortex A7 архитектуры ARM, которая появилась у MStar позже, в линейке MSD6xxx.

Вот первые байты прошивок после заголовка 02 0B 00 00. Это инструкции, которые процессор выполняет сразу после сброса.

Прошивка для первого поколения (PX):

4F 00 09 24    addiu $t1, $zero, 0x4F
00 BF 01 3C    lui   $at, 0xBF00
7C 1C 29 AC    sw    $t1, 0x1C7C($at)

Прошивка для второго поколения (BT):

00 BF 08 3C    lui   $t0, 0xBF00
4F 00 09 24    addiu $t1, $zero, 0x4F
7C 1C 09 AD    sw    $t1, 0x1C7C($t0)

Обе прошивки делают одно и то же: записывают значение 0x4F в регистр по адресу 0xBF001C7C. Но используют для этого разные регистры процессора ($at против $t0). Это означает, что код скомпилирован под разные ревизии кристалла с разными соглашениями об использовании регистров. Два разных «кремния» — два разных бинарных кода.

3. Откуда взялись цифры 306, 308, 309

Это результат маркетинговой сегментации. Производители телевизоров (Changhong, Haier, BBK, Mystery и др.) покупали у MStar один и тот же кристалл, но заказывали под него прошивку с разным набором функций.

Ключевой момент: цифры 306, 308, 309 присваивались обоим поколениям. На свет появлялись MSD306BTM, MSD308PX, MSD309PX/BT, MSD308BT-SW и так далее. Но «под капотом» это всегда один из двух описанных выше кристаллов.

4. Взаимозаменяемость

Ответ жёсткий: прямая замена процессора между первым и вторым поколением невозможна.

То есть, PX на BT не меняется и наоборот.

Единственный сценарий замены: вы меняете процессор одного поколения на другой процессор того же поколения (например, MSD309PX на MSD308PX ), тогда у них совпадут размеры, распиновка, напряжение ядра и тип памяти. Но даже в этом случае потребуется анализ конфигурации и прошивки, в соответствии установленному чипу.

Например, если установить MSD308BT вместо MSD309BT, возможно, не будет настройки на кабельные каналы DVBC из-за несоответствия прошивок, либо установленных на плате микросхем обработки DVB MSB101A или TDA18273, тогда необходимо подобрать или исправить прошивку и/или установить (или удалить) необходимые элементы по рекомендациям Mstar.


Выводы по MSD306/308/309

  1. Физически существуют только два кристалла: MSD309PX (MIPS S7LD, 1.32 В, DDR2) и MSD309BT/BTM/A7 (MIPS A7, 1.15 В, DDR3).
  2. Первое и второе поколение не взаимозаменяемы из-за разного питания ядра и типа памяти.
  3. Всегда проверяйте напряжение на дросселе VDDC (VDDCore) и тип установленной ОЗУ перед заменой процессора или поиском прошивки.

Статья подготовлена на основе анализа оригинальных схем MStar, замеров напряжений и сравнения дампов прошивок.


Замечания и предложения принимаются и приветствуются!