|
EP9302, SPI под Linux, как включить |
|
|
|
Feb 10 2008, 23:39
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Здравствуйте! Ковыряю Linux на CS-EP9302, использую ядро версии 2.6.17.14 В проце имеется Synchronous Serial Port, который насколько я понял может работать в режиме Motorola SPI, т.е. в обычном старом добром SPI. Но к сожалению не получилось найти где включить при конфигурировании ядра этот SSP, и тем более SPI чтобы его можно было увидеть в качестве стандартного /dev/spi... Подскажи, пожалуйста, как решить эту проблему? ЗЫ Поиском по сайту пользовался, google тоже использовал
--------------------
|
|
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 30)
|
Feb 11 2008, 22:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Не подскажу. В TS-Linux (всё что под рукой из сорцов) убогость ещё та (хотя, учитывая возможную работу с DMA, вероятно всё не так и плохо). Думаю, стОит поискать пакет, проточенный под работу с SD/MMC через SPI. Я не знаком с написанием дров под линукс, потому чего там и как быть должно пока не в курсе. Хорошая вероятность найти нормальные дрова в Debian (не обязательно в embedded). PS У Olimex есть линк на патч - посмотри, может там есть чего полезное http://dev.ivanov.eu/projects/cs-e9302/Ну и первый линк в гагле по запросу "spi_ep93xx.c" https://dev.contec.at/dev/micro/micro9/LINU...ep93xx_spi.diff
--------------------
aka Vit
|
|
|
|
|
Feb 14 2008, 22:21
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Большое спасибо за Ваши ответы! Посмотрел ссылку: http://dev.ivanov.eu/projects/cs-e9302/там вообще драйвер что надо, да ещё и стандартный. скачал я нужную для этого версию ядра и патч, проделал всё что в этом руководстве, ядро собралось, всё бы замечательно, НО... не стартует... причем это происходит как с 2.6.20 ядром так и с 2.6.24... вот что выводит
boot.txt ( 1.22 килобайт )
Кол-во скачиваний: 265 ... После того как доходит до слов "Uncompressing Linux... done, booting the kernel." больше ничего не выводится после них... подставляю zImage от версий 2.6.8.1 и 2.6.17.14 и всё тут же заводится и работает с теми же параметрами...
--------------------
|
|
|
|
|
Feb 15 2008, 05:09
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата проделал всё что в этом руководстве А свой таргет полностью прибили? Там чего-то народ об возможных несоответствиях версий бута и идентификатора железки говорил http://electronix.ru/forum/index.php?showtopic=39785
--------------------
aka Vit
|
|
|
|
|
Feb 15 2008, 22:15
|
Участник

Группа: Новичок
Сообщений: 31
Регистрация: 16-06-06
Пользователь №: 18 105

|
Цитата(AVR @ Feb 15 2008, 01:21)  не стартует... причем это происходит как с 2.6.20 ядром так и с 2.6.24... вот что выводит
boot.txt ( 1.22 килобайт )
Кол-во скачиваний: 265 ... После того как доходит до слов "Uncompressing Linux... done, booting the kernel." больше ничего не выводится после них... подставляю zImage от версий 2.6.8.1 и 2.6.17.14 и всё тут же заводится и работает с теми же параметрами... Не исключаете возможность того, что все-таки стартует, но ничего не выводит? В конфигурации ядра поищите Serial Drivers или что-то в этом духе. Сам имел такую же проблему с "не запуском", причем с родным циррусовским ядром.
|
|
|
|
|
Feb 15 2008, 23:52
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(DmitryV @ Feb 16 2008, 01:15)  Не исключаете возможность того, что все-таки стартует, но ничего не выводит? В конфигурации ядра поищите Serial Drivers или что-то в этом духе. Сам имел такую же проблему с "не запуском", причем с родным циррусовским ядром. Я не только не исключаю, а даже предполагаю это в первую очередь Посмотрел драйвер последовательного порта, там может быть ttyAM, ttyAM0, ttyAM1 и ttyAM2 (это вроде IRDA)... пробовал запускать со всеми вышеперечисленными значениями - никакого результата... при конфигурации убедился что драйвер этих портов активен и поддерживает консоль... Я использую оргинальный RedBoot, который с платой шел:RedBoot bootstrap and debug environment [ROMRAM] Non-certified release, version v2_0 - built 08:14:43, Aug 22 2006 Platform: Cirrus Logic EDB9302 Board (ARM920T) Rev A возможны ли проблемы если он очень старой версии? двухгодичной давности... новый ставить боязно: тогда уж и ни новый не заработает да и старый запорю и не смогу восстановить...  ДОБАВЛЕНО: Завелось 2.6.20.4 всё с теми же параметрами ядру... Но заработало оно только если собирать его в программусине Crater (переделанной под Cirrus'ы)... Возможно моих навыков хватит чтобы подправить содержимое тех патчей SPI для 2.6.20, но всё же хотелось бы узнать почему не запускается самосборное...
--------------------
|
|
|
|
|
Feb 16 2008, 08:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 266
Регистрация: 22-04-05
Из: Киев
Пользователь №: 4 387

|
Цитата хотелось бы узнать почему не запускается самосборное... Догадки 1) есть некоторая вероятность того, что лодырь не знает точки входа этих вновь собранных ядер. 2) В конфиге мог забыть чего-то примерно такое CONFIG_CMDLINE="root=/dev/mtdblock1 console=ttyAM0,115200" 3) в /etc/inittab не попало setserial с каким-то getty, портом и скоростью
--------------------
aka Vit
|
|
|
|
|
Apr 14 2008, 07:51
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(aaarrr @ Apr 14 2008, 09:43)  То есть uBoot зависает, даже если два раза загрузить uImage? А если грузить не по TFTP, а X-modem'ом каким-нибудь? Да, виснет если даже сам uImage второй раз послать и на тот же или любой другой адрес... У меня в uboot там ещё доступна загрузка по y-modem и по какому-то kermit, я юзаю minicom и уже сто раз отправлял файлы через этот minicom, но u-boot просто не видит что я хочу послать по kermit, а если по y-modem то minicom выдает ошибку даже если никаких файлов ни через что не передавалось до этого... Пробую ещё вариант с NFS, но пока выдает unable to mount, хотя NFS сервер пашет...
--------------------
|
|
|
|
|
Jun 23 2008, 15:55
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 23-03-08
Пользователь №: 36 156

|
Есть вопрос: SPI под каким майором регистрируется? Про i2c знаю, что 89
|
|
|
|
|
Oct 12 2008, 17:32
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(aaarrr @ Oct 12 2008, 21:20)  Копать исходники в сторону \kernel\linux-2.6.2x\drivers\net\arm\ep93xx_eth.c, phy_init(). У них стоит HCLK/8, т.е. 12.5MHz @ 100MHz HCLK. Ядро 2.6.27, этой функции нет, они переделали на новомодную структуру модуля c platform_driver... Она называется static int ep93xx_eth_probe(struct platform_device *pdev) Код ep->mii.phy_id = data->phy_id; ep->mii.phy_id_mask = 0x1f; ep->mii.reg_num_mask = 0x1f; ep->mii.dev = dev; ep->mii.mdio_read = ep93xx_mdio_read; ep->mii.mdio_write = ep93xx_mdio_write; ep->mdc_divisor = 40; /* Max HCLK 100 MHz, min MDIO clk 2.5 MHz. */ т.е. на 2.5 МГц они уже исправили (100М/40 = 2.5M)... Остается непонятной причина неработоспособности... А главное - пути решения...
--------------------
|
|
|
|
|
Oct 12 2008, 17:41
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(aaarrr @ Oct 12 2008, 21:37)  Тогда это не PHY. А MAC-адрес они там откуда берут? А хз... Я сравнил с кодом рабочего драйвера из 2.6.20 (кстати, сильно отличаются) там есть: Код /* * Set MDC clock to be divided by 8 and disable PreambleSuppress bit */ RegWr32(REG_SelfCTL, 0x4e00); т.е. там как раз 12.5 МГц и работает - попробую исправить и проверить...
--------------------
|
|
|
|
|
Oct 12 2008, 19:26
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Цитата(aaarrr @ Oct 12 2008, 22:18)  Тогда ковыряйте конфиги... Да, а что такого хорошего в 2.6.27? Что хорошего? Это самое распоследнее ведро  Как обычно: жить стало лучше, жить стало веселее. Больше устройств, больше драйверов, файловых систем, обновленные интерфейсы (ибо см. stable_api_nonsense.txt  ) и т.д. ... Сплошной позитив  По теме: буду ковырять конфиги - интересно в конечном итоге ездить на новом ведре. В общем, разобрался... Оказывается, по непонятным причинам, в основной код ядра забыли включить код, в котором описано что плата вообще имеет ethernet порт... Тут это выложено в виде патча http://linux.derkeiler.com/Mailing-Lists/K...9/msg07002.htmlЯ не стал мудрить и вручную включил изменения в файл edb9302.c в /linux-2.6.27/arch/arm/mach-ep93xx (приложил)
edb9302.txt ( 2.35 килобайт )
Кол-во скачиваний: 172Работает отлично  Спасибо за помощь
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|