Спешите видеть: linux/kernel/git/torvalds/linux-2.6.git/drivers/mfd/ezx-pcap.c.
Чтобы это еще кто-то юзал...
А я все не могу победить слип в этом самом bp.
upd: pcap - это контроллер специального назначения, на котором висит почти вся периферия в ezx-телефонах: тач, звук, adc, часы, регуляторы питания, кнопка включения и еще всякие лампочки и вибраторы. более новая инкарнация этой мерзенькой железки (atlas) - заведует тем же самым, но в мотобагиксах, при чем имеет тот же интерфейс (прерываения и регистры почти совпадают).
понедельник, 22 июня 2009 г.
воскресенье, 14 июня 2009 г.
Как пользоваться boot-usb и gen-blob
Кратко о упоминаемых в заметке терминах:
Flash mode - режим работы телефона, в котором невозможна связь с сетью, так как линейный процессор ждет обновления прошивки.
MBM - загрузчик с красным экраном, через который работают мотороловские утилиты прошивки.
Gen-blob - загрузчик openezx, обладающий большим набором возможностей, чем MBM. Шьется вместо ядра linux, умеет грузить ядро с карты памяти и с usb без перевода в flash mode, умеет шить произвольные адреса флеша.
Boot-usb - утилита для работы с загрузчиками MBM и gen-blob с большой машины.
Последние версии ядра openezx можно запустить только через gen-blob. Сам gen-blob может работать в двух вариантах: прошитым по адресу 0xa0800 вместо ядра или запущенным по usb через mbm. Во втором случае линейный процессор уже переведен в flash mode и работа с сетью будет невозможна после загрузки ядра, но для прошивки этого достаточно.
Gen-blob обрабатывает нажатия на кнопки vol+ и vol- (левая сторона устройства). Если во время его запуска зажата vol+, он переходит в режим USB (как MBM) и ждет управляющих комманд от boot-usb. Если зажата vol-, он показывает boot menu с возможностью выбора разных ядер с карты.
Чтобы прошить файл в память телефона по определенному адресу, нужно сделать три вещи:
Рассматриваем подробнее:
Самый простой способ запустить gen-blob - запусть через MBM. Для этого нужно выполнить такие действия:
После того, как на экране появилось сообщение о готовности принимать команды по USB, можно работать из boot_usb с gen-blob.
Простой пример: прошивка файла по адресу 655360. boot_usb flash 655360 mtd.
Небольшое уточнение по поводу прошивки ядра: чтобы прошить ядро или gen-blob по адресу 0xa0800, нужно создать временный файл размером 0x800, заполненный нулями: dd if=/dev/zero of=/tmp/mtd bs=2048 count=1, после чего дописать в его конец нужные данные: cat gen-blob >> /tmp/mtd и после этого, прошить файл по адресу 0xa0000, а не 0xa0800.
ps. пребуются добровольцы для описания этого в вики
upd: не 0xa800 а 0xa0800
Flash mode - режим работы телефона, в котором невозможна связь с сетью, так как линейный процессор ждет обновления прошивки.
MBM - загрузчик с красным экраном, через который работают мотороловские утилиты прошивки.
Gen-blob - загрузчик openezx, обладающий большим набором возможностей, чем MBM. Шьется вместо ядра linux, умеет грузить ядро с карты памяти и с usb без перевода в flash mode, умеет шить произвольные адреса флеша.
Boot-usb - утилита для работы с загрузчиками MBM и gen-blob с большой машины.
Последние версии ядра openezx можно запустить только через gen-blob. Сам gen-blob может работать в двух вариантах: прошитым по адресу 0xa0800 вместо ядра или запущенным по usb через mbm. Во втором случае линейный процессор уже переведен в flash mode и работа с сетью будет невозможна после загрузки ядра, но для прошивки этого достаточно.
Gen-blob обрабатывает нажатия на кнопки vol+ и vol- (левая сторона устройства). Если во время его запуска зажата vol+, он переходит в режим USB (как MBM) и ждет управляющих комманд от boot-usb. Если зажата vol-, он показывает boot menu с возможностью выбора разных ядер с карты.
Чтобы прошить файл в память телефона по определенному адресу, нужно сделать три вещи:
- Каким-то образом запустить gen-blob
- Во время запуска зажать vol+
- Послать адрес и данные через boot-usb
Рассматриваем подробнее:
Самый простой способ запустить gen-blob - запусть через MBM. Для этого нужно выполнить такие действия:
- Полностью выключить телефон
- Включить с переводом в flash mode - зажатой кнопкой голосового меню (нижняя на правой стороне)
- Дать от пользователя root команду boot_usb gen-blob на большой машине. При этом boot_usb должен находиться в PATH (или вызваться по полному пути), а файл gen-blob должен быть в текущем каталоге
После того, как на экране появилось сообщение о готовности принимать команды по USB, можно работать из boot_usb с gen-blob.
Простой пример: прошивка файла по адресу 655360. boot_usb flash 655360 mtd.
Небольшое уточнение по поводу прошивки ядра: чтобы прошить ядро или gen-blob по адресу 0xa0800, нужно создать временный файл размером 0x800, заполненный нулями: dd if=/dev/zero of=/tmp/mtd bs=2048 count=1, после чего дописать в его конец нужные данные: cat gen-blob >> /tmp/mtd и после этого, прошить файл по адресу 0xa0000, а не 0xa0800.
ps. пребуются добровольцы для описания этого в вики
upd: не 0xa800 а 0xa0800
Тестируем 2.6.30
Начинаем тестирование сборки на ядре 2.6.30.
Необходимые для запуска ингридиенты:
upd: правильный адрес ядра - 0x000A08000
Необходимые для запуска ингридиенты:
- Загрузчик gen-blob зашитый по адресу 0x000A08000 [1]
- Утилита boot-usb на большой машине [2]
- Раздел с ext2 на карте памяти с рутфс
- Рутфс дистрибутива Angstrom со всеми зависимостями для кутопии [3]
- Сама кутопия [4]
- Ядро 2.6.30-ezxdev [5] и модули [6]
- Инициализатор mux TS07.10 [7]
- Скрипт [8] и конфиг Qtopia [9] в /etc/
- Калибровки тачскрина [10]
upd: правильный адрес ядра - 0x000A08000
суббота, 13 июня 2009 г.
Консоль на EMU
Что-то получилось:
Патчем ядра переключил ноги 39 и 53 из режима usb в режим uart (ffuart). Регистры EOC (чип EMU порта) не трогал. В будущем хочется переключать режимы uart/usb автоматически, по показаниям eoc и pcap. Мусор на скриншоте - скорее всего недостатки схемы.
Ссылки: схема и описание, патч.
Патчем ядра переключил ноги 39 и 53 из режима usb в режим uart (ffuart). Регистры EOC (чип EMU порта) не трогал. В будущем хочется переключать режимы uart/usb автоматически, по показаниям eoc и pcap. Мусор на скриншоте - скорее всего недостатки схемы.
Ссылки: схема и описание, патч.
пятница, 12 июня 2009 г.
Пингвин жирный...
Киборгизированный:
Утопический:
Такие дела
ps. образы ведроида тут
pps. нихера там не пашет, можете даже не качать
total used free shared buffers cached
Mem: 44352 42844 1508 0 228 12160
-/+ buffers/cache: 30456 13896
Swap: 32760 16048 16712
Утопический:
total used free shared buffers cached
Mem: 46552 45652 900 0 144 26844
-/+ buffers/cache: 18664 27888
Swap: 0 0 0
Такие дела
ps. образы ведроида тут
pps. нихера там не пашет, можете даже не качать
понедельник, 8 июня 2009 г.
Сериал консоль на EMU
Оказывается, вот этот фокус не работает на втором поколении. Пины нормального порта туда не подведены - только ноги 53 и 39 (usb).
Попробовал переключить EOC во второй режим UART (ноги 53 и 39 выводятся на usb порт) и "подрыгать" ногами - ничего со стороны хоста не увидел. Со стороны аппарата rx тоже все время 0. Драйвер сериал порта на gpio - тоже писать придется.
Попросил припаять к конвертеру диоды для индикации RX и TX - завтра попробую еще.
upd: все-таки туда можно сконфигурировать FFUART. утром попробую
Попробовал переключить EOC во второй режим UART (ноги 53 и 39 выводятся на usb порт) и "подрыгать" ногами - ничего со стороны хоста не увидел. Со стороны аппарата rx тоже все время 0. Драйвер сериал порта на gpio - тоже писать придется.
Попросил припаять к конвертеру диоды для индикации RX и TX - завтра попробую еще.
upd: все-таки туда можно сконфигурировать FFUART. утром попробую
воскресенье, 7 июня 2009 г.
В порядке эксперимента
Пока не знаю, нужен ли нам все-таки форум, но в прорядке экперимента, можно пользоваться этим: /ezx/ .
Модерация в том виде, в каком она есть не мф, отсутствует, движок аскетичный, но удобный и многим привычный.
Модерация в том виде, в каком она есть не мф, отсутствует, движок аскетичный, но удобный и многим привычный.
Мотофан.jpg
Openezx 2.6.30-rc8
Как всегда, работает "почти все, почти хорошо". По пунктам
* gsm (ts0710) переписан и работает стабильно
* звук поломали в апстриме, но лечится патчами (а может в гите уже починеный)
* сеть по usb работает только если бутать по нему же
* карта
* внутренний флеш, при чем с нормальной скоростью записи
* тач, подсветка, все кнопки
* вибра
* блютуз, включение выключение питание на него
* получения параметров батареи (% заряда) через /sys и /proc/apm
* обрабатывается подключение/отключение кабелей ac и usb, состояние доступно через /sys
* старт/стоп процесса заряда при подключении кабеля (с патчем на pda_power)
* слип и глубокий сли (idle и mem). для deep-sleep (mem) нужно патчить lbl (мотороловский бут)
не работает:
* gprs
* камера
глюкает:
* adc (тач и батарея)
* слип - то одно отвалится, то другое упадет. bp очень любит этим заниматься
упд: звук в гите совсем поломан. сглазил наверное
* gsm (ts0710) переписан и работает стабильно
* звук поломали в апстриме, но лечится патчами (а может в гите уже починеный)
* сеть по usb работает только если бутать по нему же
* карта
* внутренний флеш, при чем с нормальной скоростью записи
* тач, подсветка, все кнопки
* вибра
* блютуз, включение выключение питание на него
* получения параметров батареи (% заряда) через /sys и /proc/apm
* обрабатывается подключение/отключение кабелей ac и usb, состояние доступно через /sys
* старт/стоп процесса заряда при подключении кабеля (с патчем на pda_power)
* слип и глубокий сли (idle и mem). для deep-sleep (mem) нужно патчить lbl (мотороловский бут)
не работает:
* gprs
* камера
глюкает:
* adc (тач и батарея)
* слип - то одно отвалится, то другое упадет. bp очень любит этим заниматься
упд: звук в гите совсем поломан. сглазил наверное
пятница, 5 июня 2009 г.
Написание мультиплексоров прерываний - заразно
Я понял, почему опенезх и опенмоко переписывают все по сто раз. Просто это очень весело и некоторые вещи можно сделать красивее.
В погоне за красотой решения, иногда теряешь цель - сделать сделать этот кусок кода полезным.
Почему понял - сам захотел написать демультиплексор прерываний на EOC (чип usb порта на gen2).
В погоне за красотой решения, иногда теряешь цель - сделать сделать этот кусок кода полезным.
Почему понял - сам захотел написать демультиплексор прерываний на EOC (чип usb порта на gen2).
Подписаться на:
Сообщения (Atom)