andy_shev: (carstyle)
andy_shev: (carstyle)
andy_shev: (carstyle)
Intel Minnowboard (v1) was one of the first Intel's attempts to create an open hardware (okay, to some extent, if we take all possible blobs into consideration) platform based on Intel CPU or SoC (in this case it's an Intel Atom E600 series with EG20T PCH).

Minnowboard (v1)

Linus Walleij, who was actively maintaining the GPIO subsystem, once sent a patch to convert PCH UDC (USB Device Controller) driver to use GPIO descriptor interface. However, the original code looks strange and seems never worked. It means that VBUS detection mechanism wasn't supported by the kernel. His patch didn't change that, only improved to use modern data structures and APIs. That time I have promised him that I will check the schematics and test it at some point.

First part of the journey appears to be enabling IRQ on GPIO SCH controller, which is not quite usual in a sense of delivery to the OS. The (semi-)wrong assumption that the IRQ is shared with SCI, which is IRQ #9 for x86 case, brought up the wrong change ec689a8a8155 ("mfd: lpc_sch: Add support for Intel Quark X1000") in the kernel (yeah, sometimes product organizations focused on easier way to get job done, without deeper investigation involved). That change has been partially reverted in 922e8ce883e5 ("mfd: lpc_sch: Partially revert "Add support for Intel Quark X1000""). Thanks to Jan Kiszka from Siemens for pointing out to the issue and developing initial fix that landed in the kernel with 7a81638485c1 ("gpio: sch: Add edge event support").

So, are we done? Nope! The second part is to fix GPIO in the UDC driver to be in align with the schematics, according to which (see page 4 D5 and page 8 B1-C2) it uses pin 12 (starting from 0, a.k.a. GPIO_SUS7) on that GPIO controller to detect VBUS. Hence the promised change to the driver 049d3db625a6 ("usb: gadget: pch_udc: Provide a GPIO line used on Intel Minnowboard (v1)") and its updated version dfc03e0bae86 ("usb: gadget: pch_udc: Use PCI sub IDs instead of DMI").

Now we done, right? Not really. What about to test? Yes, the third part is to be sure that it indeed works. The astute reader already asks the question: Why do we need this at all? The board has separate connection for USB host and UDC, it should simply work!. Unfortunately no.

There are possibilities regarding to how UDC should behave when the host is connected. One is to power the device (in our case the board itself) by VBUS, in other words to be USB self-powered device. This is not implemented in case of Minnowboard (v1). So another possibility is to detect VBUS to see when we actually got the host connection. But this is broken on... PCB level and hence doesn't work.

Let's look again at the schematics. First of all on the page 8 B2-B3 the ~4:7 resistor divider (39 kOhm : 68 kOhm) is depicted. It's needed for the high voltage, which is +5v, to be converted to the chip level, which is +3.3v.

VBUS sense

So far so good. However, if we go to the page 19 C4 we will see... bootstrap pull-up 10 kOhm to +3.3v (with above 68 kOhm it gives us ~1:7 divider).

GPIO SUS7 bootstrap

Okay, let's assume we connected USB device to it which may consume up to 100 mA on the +5v line. By Ohm's law its resistance could be equal to 50 Ohm. In such case we will have 10 kOhm to +3.3v on one leg and 39 kOhm + 68 kOhm (like in parallel due to above "short circuit") on the other. It still gives us ~1:2.5 divider against +3.3v power rail. That's still well higher than the logical "1" threshold.

Which means that VBUS detection is always high! The bootstrap is dedicated to detect the B1 stepping of the Intel Atom E600 SoC (see page 19 D2-D3). What to do in such case? I don't know the good answer because electrically it's not gonna work. Yes, we may use some timer logic or so to let the BIOS detect that, but I decided just to ignore the bootstrap, so I simply unsoldered R229 from the board. I hope somebody may fix the BIOS to just always assume the B1 stepping if it's not done yet.
andy_shev: (warrior)
Нам пишут из далека.

Здравствуйте! Надеюсь, вы знаете русский. Судя по фамилии это так.

Странно, почему не украинский?

Нашел ваши сообщения: http://mail-index.netbsd.org/tech-userlevel/2008/09/12/msg001207.html
Английский знаю плохо, но судя по всему проблема схожая. Если не трудно, не могли бы вы помочь?

Проблема с PHP в следующем. [далее идёт куча технических деталей какой-то смеси из PHP, MySQL и пр. - прим. моё]


Отличная ассоциация! Патч на дерево исходников NetBSD, в котором правится неразрывный пробел (код 0xA0 в кодировке latin1) на обычный в десятке мест. То, что php - язык студентов-кодеров, понятно. Но ассоциация php кодирования на патчи в NetBSD показывает истинную сущность инопланетных существ, особая примета которых "Пишу на PHP".

P.S. Интересно, куда послать товарища и что ему ответить?

UPDATE: страна, как известно, должна знать своих героев, так вот письмо пришло от арт-директора дизайн-студии "Оледжи". Ссылка на почитать хотя бы портфолио и прослезиться: http://olejee.ru/portfolio/index.html

andy_shev: (contemplative)
К вопросу о быстротечности жизни, я вчера под прямой эфир Радио-Т решил сделать скрипт, который брал бы по имени пользователя Youtube все запощенные им ролики и строил график количества просмотра ролика в зависимости от даты его публикации. Как и показывает практика, у тех, кто постит исключительно свои творения в своём стиле, популярность со временем падает (может даже кто-то увидит экспоненту там или ещё какую функцию, обобщающую стиль падения).

А теперь графики )
andy_shev: (contemplative)
Б-г мой, что готовят сейчас на Украине в качестве системных инженеров (ниже избранное):


Ну, я не понимаю при чем тут какие-то грамматики и их распознавание, например, к задаче о ранце. Там где надо подобрать оптимальные вещички. Просто в описании этой задачи написано, что она НП-полная.

А тут на вики какие-то алфавиты, слова, грамматики и т.д. При чем грамматики со словами к задачам на построение алгоритма? Эвристического.

При чём тут русский язык к программированию. Или какой там язык...

И при чем тут вообще языки к совершенно другой практической задаче, не касающейся языков и лингвистики?

У меня терпения не хватает на всякую ересь, которую нам задают :)

Неясно при чем тут моя задача. Если там и слова нет ни о каких алфавитах и грамматиках.

Я её решил полным рекурсивным перебором всех возможных комбинаций с отысканием лучшей.

me: Ну и плохо

Ну зато работает. При чем тут это таинственное "NP"? Ладно, забей, дохлый номер ) Работает и хрен с ней.

Я даже не знаю, что это обозначение означает. О [имеется в виду О-большое] какое-то

Фишка в том. Что нам не объясняди этот материал. И не будут. Просто дали лабу. Решайте.
andy_shev: (Default)
Добавил фильтрацию в скрипт gopmlgen, которым я синхронизирую подписки в Google Reader'е.

Добавлена опция --exclude <FILE> или --exclude "STRING", которая принимает список URI для исключения из обработки.

Таким образом можно держать человека во френдах в соответствующей соц. сети, но при этом не аггрегировать его поток в Google Reader.

Исходники проекта: http://github.com/andy-shev/gopmlgen

P.S. Предыдущие записи по теме:
http://andy-shev.livejournal.com/113313.html
http://andy-shev.livejournal.com/81393.html
http://andy-shev.livejournal.com/67256.html
andy_shev: (proud)
Наконец дошли руки обновить подписки в Google Reader.
В связи с этим допилил частично свой скрипт, о предыдущей версии которого я уже писал ранее.

Теперь скрипт умеет две основные вещи, обновление подписок и сравнение подписок между GR и другим сервисом (таковых сейчас три: YouTube, LiveJournal, PicasaWeb).

Соответственно опция --subfolder носит не только полезную, но и смысловую нагрузку. Иначе в разнице будут присутствовать совсем не те подписки, которые хотелось бы обновить.

Примеры запуска:
$ gopmlgen --service youtube --subfolder 'YouTube' --diff
Removed(1):
        http://gdata.youtube.com/feeds/base/users/0andriy/subscriptions - Videos published by : 0andriy

$ gopmlgen --service youtube --subfolder 'YouTube' --diff --self --update all
Removed(1):
        http://gdata.youtube.com/feeds/base/users/0andriy/subscriptions - Videos published by : 0andriy

Added(1):
        http://gdata.youtube.com/feeds/base/users/0andriy/uploads - Videos published by : 0andriy


Есть однако и ложка дёгтя, заключающаяся в ошибке #391, не позволяющей отправлять запросы со своим Content-Type. Лечится патчем на gdata-python-client.

DSP Bridge

Jun. 24th, 2010 10:32 am
andy_shev: (proud)
Now officially: TI DSP Bridge driver take a place in the Linux kernel mainstream under staging subtree.
Therefore, all my patches to that driver were not in vain.
andy_shev: (Default)
Eventually hex_to_bin() method implementation has been applied to Linux kernel mainstream.

Ну вот, с сегодняшнего дня hex_to_bin() официально в Linux kernel.

P.S. Я уже писал ранее про возможности попатчить ядро... :)

Update. One guy had started a little discussion in LKML about efficiency of the 'tolower()' vs. 'if condition'. Without optimization the tolower() is slower.

linux

Mar. 10th, 2010 10:41 pm
andy_shev: (Default)
А вот как вы думаете, сколько собственных реализаций (не уникальных, а в абсолютной величине) в linux следующих методов?
- atoi() - перевод текстового представления числа в его значение
- hex_to_bin() - перевод шестнадцатиричной цифры из текста в значение
- isxdigit() - проверка символа, является ли он 16ричной цифрой
- hex_asc_hi(), hex_asc_lo() - обратная к hex_to_bin()

[info]Кир как-то писал про возможности поучаствовать в opensource, так вот в ядре этих возможностей просто пруд пруди, ассенизатор - тоже нужная профессия :)

P.S. Кстати, вылавливание подобных копий не ограничивается git grep <...>.
andy_shev: (Default)
Продолжение истории про то, как втянуть в Google Reader потоки от используемых сервисов.
Ранее я рассмотрел перенос френдленты ЖЖ, теперь очередь за подписками Picasa и Youtube.

В отличие от LJ сам Google не отдаёт ни OPML, ни хотя бы URL потока на новые записи в Youtube (по крайней мере я не нашёл как это сделать).

Придётся генерировать их скриптом (также им стоит прогнать и LJ подписку).

Как это выглядит.

- устанавливаем Python2.x (x, наверное, >=4), python-gdata, cElementTree
- скачиваем скрипт отсюда и кладём куда-нибудь в ~/bin
- заполняем файл ~/.netrc примерно так:
machine picasaweb.google.com login LOGIN password PASSWORD
machine www.youtube.com login LOGIN password PASSWORD
machine www.livejournal.com login LOGIN password PASSWORD

- запускаем скрипт
$ gopmlgen --service livejournal --sort --output lj.opml --subfolder 'My LJ'
$ gopmlgen --service picasaweb --sort --output picasaweb.opml --self --subfolder "PicasaWeb"
...

- полученные файлы загоняем в Google Reader:
* открыть Google Reader -> Manage Subscriptions
* выбрать фильтр "My LJ" (это же имя фолдера)
* выбрать все потоки, прошедшие фильтр, и отписаться от них
* перейти во вкладку Import/Export
* загрузить сгенерированный OPML (lj.opml)

P.S. Пожелания, патчи и пр. welcome!

linux

Feb. 23rd, 2010 08:01 pm
andy_shev: (Default)
[livejournal.com profile] heviosso suggested me to clean up a mess with hex2bin, bin2hex converters in the Linux kernel. In the result I've submitted two series of patches with 11 and 10 items (and two of them were submitted and ACKed before). Let's see a progress...
andy_shev: (Default)
Чё-то я забыл, есть ли возможность в iconv декодировать замаскированные юникодные символы *ML в нормальные (те, которые &#XXXX;). "Мировой разум" сходу не дал ответ на вопрос.

Отделался по-быстрому скриптом на python'е:
import re
digre=re.compile('&#(\d\d\d\d);', re.U)
x=open("coolfilename").read()
sp=re.subn(digre, lambda y: unichr(int(y.group(1))).encode('utf-8'), x)[0]
open("cooloutput","w").write(sp)


links -dump file.html конечно конвертирует, только вот форматирование полностью портит.

P.S. Пора возвращать документацию в систему :)
andy_shev: (Default)
Кто испытывает проблемы с LogJam со вчерашней ночи предлагается патчик (см. в английском тексте).

Today many of you who uses LogJam LiveJournal client can't login or do any operation with server. There is new requirement to programs to add well-formed User-Agent header (details: http://www.livejournal.com/bots/). I wrote small patch to fix the issue: http://github.com/andy-shev/LogJam/commit/73976914f5c745f9d7e28d8bd46dddf624d59475 here.

P.S. This post have been made from LogJam :-)
andy_shev: (Default)
Решился я, значит, поставить себе нормальное окружение разработчика на iBook G4 (Mac OS X 10.4.x).

Скачал xcode 2.4.x, потому как ранее скачанный 3.1.1 совсем не под эту систему, запустил, установил, радуюсь...

Установил ранее скачанный macports-1.6.0. Параллельно читаю что пишут на macports.org. Говорят, что надо бы X11User + X11SDK установить.

Не тут-то было. X11SDK в комплекте Xcode, а для него нужен X11User, поставляемый на диске и только на диске. Нашёлся добрый человек, выложил X11User.pkg для Tiger'а. Поставил, радуюсь, да вычитываю, что xcode 2.5 есть. Снова качаю, устанавливаю.

Захотел поставить python-lxml. На сайте написали, что под старые библиотеки очень тяжело установить, ладно думаю, надо как советуют, воспользоваться macports. Вот, теперь всё собирается, начиная с bzip2...

Как-то Gentoo напомнило :(
andy_shev: (Default)
Как-то я уже рассказывал про поддержку PicasaWeb из perl... Так вот, автор того модуля давно передал его в руки чувака, переписавшего большую часть. При этом функциональность заливки файлов и создания альбомов потерялась. Добавил это дело и выложил на github:
http://github.com/andy-shev/net-google-picasaweb/tree/pending

P.S. Кстати, вот небольшая выжимка, как работать с модулем XML::Twig.
andy_shev: (Default)
Тут Fedora разродилась на обновление KDE (+psi, samba, cups, perl, ...):
- psi стало глючить в меню настроек и поломали анимацию иконки в трее (ага, исходя из 494364, проблемы в qt4.5, а я уж было хотел баг зафайлить...)
- после выхода из amarok'а kded4 умудряется 100% одного процессора захватить (помимо того, что в нём скробблер не рабочий до сих пор, но это проблема апстрима) - пока переехал на audiocious, всё равно десктоп под xfce

Попутно в целях изучения D-Bus/Glib из C нашёл как улучшить logjam :)
Update: ну и ещё один достающий в logjam'е недостаток поправил...
andy_shev: (Default)
Сегодня он таки заработал... Но чего это стоило!
Причём один кусок просто из пальцанаблюдений за дебаггером вышел, а без него не работает, но он странен.
andy_shev: (Default)
Предоставляю вашему вниманию простой скрипт, который декодирует пароль аськи, если вы заснифили пакетик логина.

script )
P.S. Писалось очень давно, так что некошерно написано, но работает.

Почему ICQ это плохо.

Profile

andy_shev: (Default)
Andy Shevchenko

March 2025

S M T W T F S
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 25th, 2025 09:02 pm
Powered by Dreamwidth Studios