2Artemuis часа два крутил ваш драйвер I2C, так и не смог постичь чего не хватает, чтобы ядро за "своего" приняло :)
есть подозрение, что структуры объявленные в начале драйвера, должны входить в состав структуры i2c0
возможно надо добавить еще вызов для объявления ресурсов драйвера..
с интересом посмотрю вашу реализацию мигрирования ЮСБ драйвера - она же работает. может не до конца правильно, но это вполне реально работающий драйвер
Часов у меня до сих пор нет :-(. Сразу не заработало, пришлось повозиться.
В dev.c ругался на
В структуре nuc900_platform_i2c таких полей нет.
В самом драйвере в функции nuc900_i2c_init в pdata попадает какая-то чушь и хоть ядро нормально запускается и все видит, touch-screen не работает. Пока сделал по-тупому:
Видимо в nuc900_i2c_probe не засовывается структура pdata в структуру i2c.
Кстати, вы драйвер дорабатывали в пропатченном ядре?
Чтобы до конца заработало, надо видимо править ehci-hcd.c, ehci-hub.c, как в nuvoton'овском bsp, т.к. EHCI в nuc950 похоже глючноватый. Но это вроде как неправильно...
Надо наверное уже на 2.6.35-rc1 перебираться, там ведь какие-никакие но добавления от китайцев.
блин.. я при складывание файлов для архива пропустил одну ступень в подкаталоге, разумеется должно быть так
было drivers/busses
надо drivers/i2c/busses
с утра пересобрал - все собралось и загрузилось с первого раза
исследую работу шины ЮСБ с вашим патчем
голое ядро+патч - после загрузки ядро поднимает порты, но ничего на них не видит
если вытащить из порта накопитель и вставить в момент, когда ядро ждет готовности root, то железо распознается и с него можно загрузиться (busybox/mdev). и крысо/клавы видны..
еще интересно поведение udev если грузить нормальный дебьян, то юдев ругается:
SD и I2C пока отключены, похоже ругается по поводу USB..
есть сильное подозрение, то где-то не хватает какого-то вызова (аналогично с I2C) или поля в структуре..
Извиняюсь, не заметил (и не скопировал) исправленный iic.h. Правда не пойму, зачем эти исправления.
Вообще я содержимое arch не копировал, а переносил ваши изменения, потому-что у меня там свои исправления по сравнению с ядром с kernel.org.
С этим у меня все в порядке, если бы не заметил, у меня бы свой драйвер компилировался а не ваш.
У меня так же.
Напрямую или через хаб?
Но все равно работает или глохнет? Я Debian только с USB и грузил, все было нормально.
через хаб. я все девайсы посадил на ХАБ2.0, накопителем использовал CardReader с CF, все грузилось и виделось по вышеописанному алгоритму включения
все работает под Busybox, если пустить армовый дебьян, там запускается UDEV и все.. никто никуда не идет..
с винчестера при столь неустойчивой шине грузиться пока не буду, а с флешки вполне грузился.
если поискать (2.6.17.14) в разделе /drivers/usb строку типа arch_nuc900 или в /core и /host nuc900 там попадается несколько файлов из хабообразующей структуры с вкраплениями дополнений для работы юсб-шины МНУКа..
из сегодняшний изысканий - при загрузке шина поднимается, но устройства не ищутся. если в момент загрузки сунуть устройство в шину, то драйвер шины это отслеживает и запускает поиск устройств. отсюда вывод - где-то надо прописать этот самый запуск, чтобы ядро своими штатными средствами это делало..
буду искать на вашем патченном место, где детектится возмущение на шине и как его вызвать при запуске ядра
днем пробовал принтами проследить, но там достаточно хитро все наверчено и пока не понять, что и как вызывается..
Может напрямую попробуете, помню в 2.6.17 у вас так не работало. Просто очень интересно, хоть и маловероятно, может у вас проц более старой ревизии и Nuvoton'овцы чего втихую химичат...
На диске к плате где-то лежит патч с Nuvoton'овским BSP, по нему удобно смотреть чего они там надобавляли.
Не все исправления там нужны, они там че-то намутили с разделением прерывания между ohci и ehci, хотя можно было нормально через shared сделать.
В Nuvoton'овском патче вроде есть исправления на эту тему в hub.c или hcd.c, я их хотел в драйвер nuc900_ehci.c переместить, но не все получилось. Просто это вроде как неправильно в эти файлы совать код для конкретного процессора, с другой стороны если ehci кривоватый, то куда деваться...