Перейти к содержанию
    

Здравствуйте!

Ковыряю Linux на CS-EP9302, использую ядро версии 2.6.17.14

В проце имеется Synchronous Serial Port, который насколько я понял может работать в режиме Motorola SPI, т.е. в обычном старом добром SPI. Но к сожалению не получилось найти где включить при конфигурировании ядра этот SSP, и тем более SPI чтобы его можно было увидеть в качестве стандартного /dev/spi...

Подскажи, пожалуйста, как решить эту проблему?

ЗЫ

Поиском по сайту пользовался, google тоже использовал :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В TS-Linux SPI называют ssi. Не знаю, не заграбастан ли он под приватные дрова какой-нибудь SD, но я бы посмотрел /etc/inittab на предмет что там грузится. Потому как оно либо есть как отдельные дрова, либо нет, а если нет, то тогда нужно рыть конфиг и перекомпилировать (ядро/модули).

А линукс-то какой?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет, нашел я этот драйвер, ssp.c называется...

Глянул я в него - а там... SPI фактически не реализован!!! А то что есть это полнейшее убожество! DMA там и в помине нет, а вместо этого куча спинлоков и udelay'ев... Что может быть примитивнее SPI, но они не смогли написать нормальный драйвер для этой штуки! =(((

А ещё я узнал что SPI у меня 7.4 МГц - это просто смешно, просто разочарование полнейшее...

 

Подскажите, пожалуйста, где можно достать НОРМАЛЬНЫЙ стандартный драйвер для SPI под EP9302?..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не подскажу. В 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет, нашел я этот драйвер, ssp.c называется...

Глянул я в него - а там... SPI фактически не реализован!!! А то что есть это полнейшее убожество! DMA там и в помине нет, а вместо этого куча спинлоков и udelay'ев... Что может быть примитивнее SPI, но они не смогли написать нормальный драйвер для этой штуки! =(((

А ещё я узнал что SPI у меня 7.4 МГц - это просто смешно, просто разочарование полнейшее...

 

Подскажите, пожалуйста, где можно достать НОРМАЛЬНЫЙ стандартный драйвер для SPI под EP9302?..

SPI на EP93xx очень убогий. Могу только посоветовать внимательно просмотреть эту тему (там и про DMA есть) и даташит. По большому счету он годится только для загрузки мелкой конфигурации в какую-нибудь периферию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо за Ваши ответы!

Посмотрел ссылку: http://dev.ivanov.eu/projects/cs-e9302/

там вообще драйвер что надо, да ещё и стандартный.

скачал я нужную для этого версию ядра и патч, проделал всё что в этом руководстве, ядро собралось, всё бы замечательно, НО...

не стартует... причем это происходит как с 2.6.20 ядром так и с 2.6.24...

вот что выводит boot.txt ...

После того как доходит до слов "Uncompressing Linux... done, booting the kernel." больше ничего не выводится после них... подставляю zImage от версий 2.6.8.1 и 2.6.17.14 и всё тут же заводится и работает с теми же параметрами...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

проделал всё что в этом руководстве
А свой таргет полностью прибили?

 

Там чего-то народ об возможных несоответствиях версий бута и идентификатора железки говорил

http://electronix.ru/forum/index.php?showtopic=39785

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не стартует... причем это происходит как с 2.6.20 ядром так и с 2.6.24...

вот что выводит boot.txt ...

После того как доходит до слов "Uncompressing Linux... done, booting the kernel." больше ничего не выводится после них... подставляю zImage от версий 2.6.8.1 и 2.6.17.14 и всё тут же заводится и работает с теми же параметрами...

Не исключаете возможность того, что все-таки стартует, но ничего не выводит?

В конфигурации ядра поищите Serial Drivers или что-то в этом духе.

Сам имел такую же проблему с "не запуском", причем с родным циррусовским ядром.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не исключаете возможность того, что все-таки стартует, но ничего не выводит?

В конфигурации ядра поищите 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, но всё же хотелось бы узнать почему не запускается самосборное...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

хотелось бы узнать почему не запускается самосборное...

Догадки

1) есть некоторая вероятность того, что лодырь не знает точки входа этих вновь собранных ядер.

2) В конфиге мог забыть чего-то примерно такое

CONFIG_CMDLINE="root=/dev/mtdblock1 console=ttyAM0,115200"

3) в /etc/inittab не попало setserial с каким-то getty, портом и скоростью

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как мне посоветовали на другом форуме чтобы запустить свежатину надо брать u-boot. Я скачал ELDK для ARM и скачал пропатченый для edb9302 (вроде как совеместимая плата с CS-EP9302) исходник u-boot. Собрал U-boot и на выходе получил u-boot.bin

Как теперь его правильно залить в самое начало флэша чтобы с него грузилось?

1) Попробовал залить средствами самого RedBoot'а, но по всей видимости у меня не получилось и теперь плата не работает :)

2) Как пользоваться Cirrus Download Utility через /dev/ttyS0?

Какой джампер надо переключить чтобы эта утилита заработала (а именно прошила u-boot в самое начало флэша чтобы с него шла загрузка u-boot)? Этого я нигде не нашел в описаниях для своей платы. Тогда можно отталкиваться от названий выводов и уровней на которые надо установить эти выводы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какой джампер надо переключить чтобы эта утилита заработала

T0 в положение 3.3V. Это нога 84(BOOT0), на схеме почему-то названа TEST0.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

T0 в положение 3.3V. Это нога 84(BOOT0), на схеме почему-то названа TEST0.
Большое спасибо, помогло :)

ЗЫ Так же хотел бы сказать спасибо за измерение скорости работы портов :a14:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получилось скомпилить и получить образ uImage, который прекрасно загружается с помощью u-boot и доходит до момента подключения файловой системы. Теперь стоит задача догрузить образ файловой системы, НО... при загрузке файла любого размера по tftp на любой адрес всё проходит хорошо, а как только я пытаюсь загрузить второй файл (также любой размер имя адрес) загрузчик виснет и ничего больше не происходит... В чем может быть причина зависания u-boot в самом начале загрузки любого второго по очереди файла?.. uboot.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То есть uBoot зависает, даже если два раза загрузить uImage?

 

А если грузить не по TFTP, а X-modem'ом каким-нибудь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...