ЗАО «ЗЭО»

Техническая поддержка пользователей => Тион, Тион-Про, Тион-Про v2, Сириус => Тема начата: Ivan от 29 Марта, 2012, 17:21:58

Название: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 29 Марта, 2012, 17:21:58
Всем доброго времени суток.

Для Тиона взял ядро linux-2.6.20.21 + патч linux-2.6.20.21_tion_svn1713_201111251752.tar.gz
При загрузке системы (гружу emdebian с внешней флешки) в логах появляется:

mmc_spi spi1.1: ASSUMING 3.2-3.4 V slot power
mmc_spi spi1.1: SD/MMC host mmc0, no DMA, no WP, no poweroff
mmc_spi spi1.1: setup unsupported mode bits 4
mmc_spi spi1.1: can't change chip-select polarity
mmc0: error -22 whilst initialising SDIO card

Не подскажите, в какую сторону копать? И что означает 22 ошибка?

P.S.: С ядром и КФС "из коробки" все работало нормально, но там поддержка sd-карт была собрана модулем => при замене КФС отключилась. Поэтому и решил пересобрать...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 29 Марта, 2012, 20:56:36
Конфигурация tion_defconfig?
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 30 Марта, 2012, 11:50:36
Да, tion_defconfig, только все, что собиралось модулями, зашил жестко в ядро.
+ включил eabi (естественно, собираю соответствующим компилятором)

Кстати, а в этом не может быть дело?

upd: собрал без eabi компилятором http://arm.cirrus.com/files/tools/arm-linux-gcc-4.1.1-920t.tar.bz2. То же самое...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 30 Марта, 2012, 14:49:46
Еще дополнение.
Насчет нормальной работы с ядром и КФС из коробки я погорячился.
Попробовал с другим тионом (в котором еще ничего не менялось). При старте выводятся те же сообщения об ошибке, но карта подцепляется. Однако, если попытаться вставить карту после загрузки системы, то она не видится. Никаких сообщений при этом в терминал не выводится.

В гугле вроде нашел, что 22 ошибка означает:
22 is EINVAL: "Request cannot be performed because of restrictions in hardware and/or the driver"
Но это не сильно проясняет ситуацию...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 30 Марта, 2012, 16:43:48
> если попытаться вставить карту после загрузки системы, то она не видится

Не обрабатывается сигнал (GPIO), что карта вставлена, поэтому она обнаруживается только при загрузке или
insmod'е.
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 30 Марта, 2012, 17:26:25
Да, это я уже понял.
И все-таки, что то конкретное по ошибке?
Какое ядро и с каким патчем идет в стандартной поставке?
Я уже ничего не понимаю. Вроде бы, ничего не добавлял/убирал, а карточка у вас работает, а у меня - нет...

Я поковырял исходники - ошибка вылезает в mmc_attach_sdio. Но у вас даже после этой ошибки карта подцепляется!!!
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 30 Марта, 2012, 18:43:50
Еще дополнение.
Когда собрал своим компилятором eabi-ядро, в котором SD/MMC были отмечены модулями и запустил это ядро с вашей КФС (на которой эти модули уже установлены), все заработало.
Получается, что есть принципиальное отличие между подгружаемыми и жестко зашитыми драйверами. Но в чем?

Я бы не стал "запариваться" и собрал поддержку SD модулем, но тогда я просто не смогу подцепить карточку с КФС... Замкнутый круг...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 30 Марта, 2012, 19:19:25
И еще дополнение - последнее на сегодня.
Когда собрал ядро с включенным дебагом на SD/MMC, получил следующее:
mmc_spi spi1.1: ASSUMING 3.2-3.4 V slot power                                   
mmc_spi spi1.1: SD/MMC host mmc0, no DMA, no WP, no poweroff                   
mmc_spi spi1.1: setup unsupported mode bits 4                                   
mmc_spi spi1.1: can't change chip-select polarity                               
mmc0: sector size: 32768                                                       
mmc0: new SD card on SPI                                                       
mmcblk0: mmc0:0000 SD    1978368KiB                                             
 mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5                   
 p1
......
mmcblk0: error -22 sending stop command                                         
end_request: I/O error, dev mmcblk0, sector 3956728                             
Buffer I/O error on device mmcblk0, logical block 494591                       
mmcblk0: error -22 sending stop command                                         
end_request: I/O error, dev mmcblk0, sector 3956728                             
Buffer I/O error on device mmcblk0, logical block 494591                       
mmcblk0: error -22 sending stop command                                         
end_request: I/O error, dev mmcblk0, sector 3956728                             
Buffer I/O error on device mmcblk0, logical block 494591                       
mmcblk0: error -22 sending stop command                                         
end_request: I/O error, dev mmcblk0, sector 3956728                             
Buffer I/O error on device mmcblk0, logical block 494591                       
mmcblk0: error -22 sending stop command                                         
end_request: I/O error, dev mmcblk0, sector 3956728                             
Buffer I/O error on device mmcblk0, logical block 494591                       
mmcblk0: error -22 sending stop command                                         
end_request: I/O error, dev mmcblk0, sector 3956728                             
Buffer I/O error on device mmcblk0, logical block 494591

и так далее...

То есть, вроде карточка определилась, а потом начались проблемы...

Да, еще странная штука - очень-очень древняя SD на 16Мб определяется без каких-либо проблем....
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 30 Марта, 2012, 23:24:55
> и так далее...

Приводите лог полностью.

У меня с прилагаемой конфигурацией всё нормально:

mmc_spi spi1.1: setup unsupported mode bits 4                                   
mmc_spi spi1.1: can't change chip-select polarity                               
mmc0: sector size: 32768                                                       
mmc0: new SD card on SPI                                                       
mmcblk0: mmc0:0000 00000 994816KiB                                             
 mmcblk0: p1

Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 31 Марта, 2012, 10:45:21
Пришлите мне ваше собранное ядро.
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 02 Апреля, 2012, 14:13:25
Пересылаю конфиг и полный лог загрузки.
Ядро во вложения не лезет, поэтому вот ссылка: http://ifolder.ru/29678607

Или скажите, куда Вам его переслать.
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 02 Апреля, 2012, 14:29:43
Взял Ваш конфиг, добавил туда поддержку EABI, собрал. Результат тот же...
Не понимаю, в чем может быть проблема. Лог загрузки, на всякий случай, прикладываю...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 02 Апреля, 2012, 17:00:07
1. При загрузке вашего ядра _не_ работает.

2. Я собрал ядро с вашей конфигурацией my_config, используя компилятор
http://www.zao-zeo.ru/media/files/tools/gcc/buildroot/gcc-4.3.4_armv4_arm920t_eabi.tar.gz
карта работает.
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 02 Апреля, 2012, 18:06:48
Так.... Начинается что-то странное. У меня не завелось и с Вашим компилятором.
Описываю по шагам, что я сделал.

1. Скачал архив по ссылке и распаковываю его в /usr
2. В директории с исходными кодами пропатченного ядра делаю:
    $ export ARCH=arm
    $ export CROSS_COMPILE=/usr/local/arm/4.3.4-armv4t-arm920t-eabi/usr/bin/arm-linux-
    $ export PATH=$PATH:/home/ivan/Proj/u-boot1.3.3/u-boot-1.3.3/tools/
3. копирую свой конфиг в .config
    $ cp my_config .config
4. собираю
    $ make clean
    $ make
5. собираю uImage (для этого и изменял переменную PATH)
    $ make uImage

Получившееся ядро заливаю на плату:
$ tftpboot 00000000 tion/uImage                                                 
TFTP from server 192.168.1.120; our IP address is 192.168.1.123                 
Filename 'tion/uImage'                                                         
Load address: 0x0                                                               
Loading: |                                                                     
done                                                                           
Bytes transferred = 1776488 (1b1b68 hex)                                       
$ erase 60080000 +1b1b68                                                       
                                                                               
.............. done                                                             
Erased 14 sectors                                                               
$ cp.b 00000000 60080000 1b1b68                                                 
Copy to Flash... done

Загружаюсь - все как обычно...

Лог загрузки - как обычно во вложении.
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 02 Апреля, 2012, 18:12:05
Значит дело не в компиляторе, вы в ядре ничего не меняли (в исходных кодах)?
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 02 Апреля, 2012, 18:37:47
Нет, ядро не трогал. Только накладывал Ваши патчи + изменял конфиг.
Версия про нерабочую плату тоже неправдоподобна, потому что с ядром и КФС "из коробки" все работает...
Более того, если я своим компилятором собираю ядро с EABI, SD собираю как модуль, а потом гружусь с Вашей КФС, на которой этот модуль уже присутствует, то все тоже работает...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 04 Апреля, 2012, 18:32:58
Наконец залил ядро, которое Вы мне вчера переслали. Результат тот же. Лог, по традиции, прилагаю.

Более того, у нас отыскался один Сириус - на нем результат такой же (до этого все проверяли на своей "материнской плате").

Не помню, писал или нет, но старая SD-шка на 16 Мб определяется успешно с любым ядром. Это не поможет выявить ошибку?
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 04 Апреля, 2012, 18:37:58
> Это не поможет выявить ошибку?

С какой SD у вас не работает?
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 04 Апреля, 2012, 18:38:48
Кроме того, вас устраивает скорость работы SD (через SPI)?
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 04 Апреля, 2012, 18:59:45
По поводу скорости работы ничего не могу сказать, толком не проверял.
Вы хотите сказать, что скорость работы SD-карты будет слишком мала для того, чтобы располагать на ней КФС?

SD-карта неизвестной фирмы QUMO, на 2 Гб. Вряд ли карта не рабочая, т.к. в вашей конфигурации из-коробки все работает.

Как я уже писал выше, все работает даже тогда, когда я собираю свое ядро своим компилятором, просто включив SD модулем, и запускаю это ядро с Вашей КФС (которая во внутреннем флеше зашита с завода). А если вкомпиливать в ядро и запускать с моем КФС (которая на USB-флешке), то SD отваливается...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 04 Апреля, 2012, 19:55:20
> скорость работы SD-карты будет слишком мала для того, чтобы располагать на ней КФС

Менее 0.5 МБайта/с
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 04 Апреля, 2012, 21:25:53
У вас есть какая-нибудь задержка (в U-Boot) при включении платы?
Попробуйте остановить загрузку в U-Boot, подождать несколько секунд и
выполнить команду boot

Ядро собранное с вашей конфигурацией также нормально видит и такую карту:

mmc0: new SDHC card on SPI                                                                                                 
mmcblk0: mmc0:0000 SA04G 3858432KiB                                                                                         
 mmcblk0: p1
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 05 Апреля, 2012, 00:29:29
Менее 0.5 МБайта/с

А для сравнения, какая скорость на USB?

У вас есть какая-нибудь задержка (в U-Boot) при включении платы?
Попробуйте остановить загрузку в U-Boot, подождать несколько секунд и
выполнить команду boot

Пробовал, не помогает...
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 05 Апреля, 2012, 14:10:06
> А для сравнения, какая скорость на USB?

~1 МБайт/с
Но при копировании файла с USB-Flash процессор занят на 5%, а с SD -- на 100%.
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 05 Апреля, 2012, 14:54:31
Ситуация понятна, спасибо.

Тогда придется все-таки делать КСФ на USB-флешке...

Но все-же, почему карточка может не подцепляться?

И еще вопрос, несколько на другую тему. Если зашить в Тион WinCE, там с SD-картой будет то же самое, я правильно понимаю? В смысле, процессор грузить она будет так же сильно?
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: asv от 05 Апреля, 2012, 15:04:53
> В смысле, процессор грузить она будет так же сильно?

Зависит от реализации, я не знаю.

> почему карточка может не подцепляться?

Почему она работает, когда драйвер в виде модуля, и не работает, когда он в ядре -- не могу понять.
Название: Re: Тион rev. 4 error -22 whilst initialising SDIO card
Отправлено: Ivan от 05 Апреля, 2012, 15:36:15
Цитировать
Зависит от реализации, я не знаю.
Понял, об этом спрошу в ветке про WinCe.

Цитировать
Почему она работает, когда драйвер в виде модуля, и не работает, когда он в ядре -- не могу понять.
Да, меня этот вопрос тоже сильнее всего интересует...