
Помните мою статью про историю моддинга и аппаратную платформу Motorola E398? Если ещё не читали, то рекомендую озна��омиться. А тем временем у @EXL нашёлся редчайший прототип E398, который разработали в России и он работал на Linux! Если интересно почитать его историю и что у него внутри - жду вас под катом.
Что за девайс?
Прототип, разработанный в 2003-2004 году, на первый взгляд представлял из себя самый обычный E398 (также известный как D398 или E399) с немного измененным дизайном. Отличия по большей части минорные: немного другая форма клавиатуры, синий цвет корпуса и кнопка меню, которая больше напоминает оную из C350.

На самом же деле, это корпус от раннего прототипа E398, который разрабатывался параллельно с Linux-моделью:

Однако при включении этого экземпляра, нас встречает не классическая заставка Hellomoto, а загрузчик, который радостно сообщает о запуске AP-процессора...
Что такое AP-процессор?
В обычных телефонах для работы всего устройства достаточно лишь одного процессора - так называемого Baseband'а. Чаще всего это один чип, который содержит в себе одно ядро общего назначения - например ARM7TDMI, которое занимается задачами отрисовки интерфейса, высокоуровневой работой с GSM-стеком и обработкой AT-команд, и вспомогательное ядро DSP, в задачи которого входит низкоуровневая работа с сетью, кодирование/декодирование звука и иногда некоторые другие задачи. Baseband-процессоры всегда работают исключительно на RTOS, поскольку при работе с GSM-стеком необходима гарантированная и строгая по времени выполнения реакция на события в сети.
В смартфонах же всё работает чуточку по другому: там задача запуска операционной системы, пользовательских программ и обработка ввода ложится на отдельный Application-процессор. На нём можно использовать любую операционную систему, включая по большей части не-реалтаймовые по типу Linux, Windows NT и Windows CE. Однако в смартфонах Baseband-процессор всё равно присутствует, только теперь он подключен к AP-процессору через шину по типу UART (в современных шин несколько, а сам Baseband переехал в основной SoC).

После этого, телефон показывал логотип MontaVista Linux и загружал самый обычный рабочий стол, почти как в E398... Но это только на первый взгляд!

Дело в том, что у Motorola существовало сразу несколько программных платформ для телефонов:
Знакомый нам P2k, который использовался в основной линейке телефонов компании.
Motorola EZX, который был построен на базе дистрибутива MontaVista Linux и UI-фреймворка Qt с кастомной оконной системой. Эта платформа встречалась в флагманских устройствах компании с 2003 по 2007 год: Moto E680, Moto A1200 Ming, Moto A780, Moto ROKR E2 и ROKR E6.
MotoMAGX, который также был построен на базе дистрибутива MontaVista, только уже под названием Mobilinux. Как и EZX, MotoMAGX использовала Qt в качестве UI-фреймворка, но изнутри значительно отличалась от EZX и предназначалась для флагманских телефонов Moto вышедших в 2007-2009 годах: RAZR2 V8, EM30, ZN5.
JUIX, который по сути света так и не увидел. Это была промежуточная разработка между EZX и MAGX на без той-же самой MontaVista, однако теперь вместо Qt использовалась Java, а весь интерфейс и окружение были написаны с использованием профиля CDC (урезанная Java 1.3). По сути, это была некая попытка написать Android ещё до самого Android, только с заделом сразу под кнопочные устройства и без возможности лицензирования...
И этот прототип как раз использовал раннюю версию JUIX. Однако несмотря на то, что внешне телефон кажется полностью функциональным, у него вообще не работали кнопки навигации. Скорее всего, инженеры Motorola просто не успели написать драйвер для обработки клавиатуры, поэтому EXL написал небольшую программу для проброса ввода через telnet:

Но как вы понимаете, у раннего прототипа особо никакого функционала и не было, а проект довольно быстро отменили. Но самое интересное скрывается у него внутри. На первый взгляд кажется, что у прототипа с серийными телефонами нет никаких отличий:

Однако если присмотреться, то можно заметить что вместо слота MicroSD выглядывает какой-то чип... И при ближайшем рассмотрении оказывается, что это не просто какая-то eMMC-флэшка, которую повесили на MMC-шину устройства, а тот самый AP-процессор! Причём сама аппаратная платформа осталась до боли знакомой: в качестве Baseband'а используется всё тот же Neptune LTE, практически вся схемотехника идентична оригинальному устройству, однако в телефоне отсутствует чип, отвечающий за Fun lights и вместо него разведен отдельный драйвер подсветки дисплея.

Поскольку это прототип, Neptune LTE здесь сразу же установлен инженерный и следовательно загрузчик устройства разблокирован с завода. Однако в его модификации смысла нет, так как P2k здесь не используется, да и пока неизвестно есть ли что-то на микросхеме его Flash-памяти.
Зато AP-процессор здесь очень даже знакомый! Это легендарный Intel PXA272, который также использовался в других Linux-телефонах Motorola на платформе EZX, как, например, A1200 Ming, а также в подавляющем числе Windows Mobile смартфонов. По своей сути, это один из самых мощных мобильных процессоров тех лет, который применялся в флагманских КПК и коммуникаторах. Внутри него скрывается:
Одно вычислительное ядро Intel XScale, реализующее набор инструкций ARMv5. Да, когда-то Intel не просто выпускала ARM-процессоры, но и разработала свою собственную микроархитектуру, отличную от ядра ARM9. XScale способен работать на частоте до 624МГц (это огромная частота и MIPS по меркам телефонов тех лет, процессор мало в чём уступал пока ещё не совсем устаревшим младшим Pentium III), использовал относительно короткий 7-ступенчатый конвейер инструкций (для сравнения, P III имел около 10 стадий, P4 - аж 20-30 стадий в зависимости от ядра, что его значительно замедляло из-за "сломанного" Branch Prediction), имел 32КБ кэша инструкций и 32КБ кэша данных и поддержку одного из первых мобильных SIMD - набор инструкций Wireless MMX (за ~7-8 лет до массового появления NEON в смартфонах). Однако у PXA был и минус - не было FPU, поэтому все операции с плавающей точкой были относительно медленными.
32 или 64 мегабайта NOR-памяти по технологии Intel StrataFlash, плюс 32 или 64 мегабайта SDRAM-оперативной памяти прямо на борту процессора! Да, бутербродные процессоры придумали задолго до Qualcomm, только раньше в них ещё и Flash устанавливали :)
Контроллеры USB (включая хост), AC97, I2S, I2C, SPI, UART, SD/MMC, ШИМ и GPIO.
Контроллер дисплея. С ним связана отдельная особенность в E398.
И всё это построено по техпроцессу ~130нм!

Если вы читали статью о E398, то могли узнать, что телефоны на платформе Neptune LTE использовали отдельный GPU ATi Imageon, поскольку процессор работающий на частоте 52МГц, не вывозил отрисовку графики своими силами. В этом прототипе необходимость в нём отпала, поскольку контроллер дисплея в XScale напрямую умеет работать с параллельными RGB-матрицами и способен быстро отрисовывать графику самостоятельно. Именно поэтому я сказал что дисплей в E398 носит явные коммуникаторные корни!

По итогу у EXL получилось хакнуть устройство, портировать на него и SDL и запустить Doom. Результатами он пока ещё не поделился... Но факт остаётся фактом, если E398 Linux Edition вышел бы в свет, он мог потенциально стать не менее популярным гиковским устройством. Но увы, в стенах R&D-лабораторий компаний погибает множество интересных и перспективных устройств, отправляясь в шреддер или по счастливой случайности попадающие в руки гиков.

Так и получилось с этим прототипом, который EXL'у подарил бывший сотрудник подрядчика Motorola в России - компании Telma в Нижнем Новгороде. Приятно знать, что немалую часть в разработку E398 вложили именно в России :)
А если вам интересна тематика ремонта, моддинга и программирования для гаджетов прошлых лет — подписывайтесь на мой Telegram-канал «Клуб фанатов балдежа», куда я выкладываю бэкстейджи статей, ссылки на новые статьи и видео, а также иногда выкладываю полезные посты и щитпостю. А ролики (не всегда дублирующие статьи) можно найти на моём YouTube канале.
Если вам понравилась статья и вы хотите меня поддержать, у меня есть Boosty. А ещё мне можно отправить какое-нибудь интересное железо: устройства на WinCE/WinMobile, китайские кнопочники, китайские подделки на iPhone/Samsung из начала 2010-х, ретро-ПК железо - всё это я очень люблю :) Всем огромное спасибо!