Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Embedded Linux
Помогите с MMc/SD картой.
Jury093
Добавлено 01.10.2010 22:43 Сообщение: 11
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
То что с платой шло "потерялось" за 2 года.
Да вроде и делаю все как у sasamy только вот не работает.

ну что? прогресс есть какой-нить?
уезжал на неделю в командировку, взять на потерзать 9260 не смог, увы и ах..
т.е. потерялось то что от Павла? и диск идущий с платой?
2.6.24, то что шло в те времена можно вытащить с kernel.org, накатить патч и уверен - будет счастье..
я то посоветовал чуть другое - взять "упрямое" 2.6.34/35, поправить конфиги чтобы ядро заработало на плате кита. Найти в этих исходниках файл драйвера SD/MMC - и натолкав внутрь printk посмотреть происходит ли хотя бы начальный запуск драйвера..

Кстати, может кто-нить из читающих сталкивался с этой проблемой на свежих ядрах (2.6.34+) и решил ее?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
efreet
Добавлено 02.10.2010 16:35 Редактировалось 02.10.2010 16:54 Сообщение: 12
efreet
0

Пункты: 464
Регистрация: 08.02.2010
Доброго времени суток!

Как раз использую ядро 2.6.35.1, правда вместе с Uboot-1.1.5. Исходники ядра подправлял как описано в http://dmilvdv.narod.ru/AT91SAM9260/index.html?linux.html (не трогал правда светодиоды), патчи не накладывал. Корневую файловую систему держу на SD/MMC.

UPD Ах да, в конфиге следующее:
Код

[root@armmaker linux-2.6.35.1]# cat .config | grep MMC
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# MMC/SD/SDIO Card Drivers
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_BOUNCE=y
# CONFIG_MMC_TEST is not set
# MMC/SD/SDIO Host Controller Drivers
# CONFIG_MMC_SDHCI is not set
CONFIG_MMC_AT91=y
# CONFIG_MMC_ATMELMCI is not set
# CONFIG_MMC_SPI is not set
[root@armmaker linux-2.6.35.1]# cat .config | grep AT91
CONFIG_ARCH_AT91=y
CONFIG_HAVE_AT91_DATAFLASH_CARD=y
CONFIG_HAVE_AT91_USART3=y
CONFIG_HAVE_AT91_USART4=y
CONFIG_HAVE_AT91_USART5=y
# Atmel AT91 System-on-Chip
# CONFIG_ARCH_AT91RM9200 is not set
CONFIG_ARCH_AT91SAM9260=y
# CONFIG_ARCH_AT91SAM9261 is not set
# CONFIG_ARCH_AT91SAM9G10 is not set
# CONFIG_ARCH_AT91SAM9263 is not set
# CONFIG_ARCH_AT91SAM9RL is not set
# CONFIG_ARCH_AT91SAM9G20 is not set
# CONFIG_ARCH_AT91SAM9G45 is not set
# CONFIG_ARCH_AT91CAP9 is not set
# CONFIG_ARCH_AT91X40 is not set
CONFIG_AT91_PMC_UNIT=y
# AT91SAM9260 Variants
# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
# AT91SAM9260 / AT91SAM9XE Board Type
CONFIG_MACH_AT91SAM9260EK=y
# AT91 Board Options
CONFIG_MTD_AT91_DATAFLASH_CARD=y
# AT91 Feature Selections
CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
CONFIG_AT91_TIMER_HZ=100
CONFIG_AT91_EARLY_DBGU=y
# CONFIG_AT91_EARLY_USART0 is not set
# CONFIG_AT91_EARLY_USART1 is not set
# CONFIG_AT91_EARLY_USART2 is not set
# CONFIG_AT91_EARLY_USART3 is not set
# CONFIG_AT91_EARLY_USART4 is not set
# CONFIG_AT91_EARLY_USART5 is not set
CONFIG_AT91SAM9X_WATCHDOG=y
CONFIG_USB_GADGET_AT91=y
CONFIG_USB_AT91=y
CONFIG_MMC_AT91=y
CONFIG_RTC_DRV_AT91SAM9=y
CONFIG_RTC_DRV_AT91SAM9_RTT=0
CONFIG_RTC_DRV_AT91SAM9_GPBR=0
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 02.10.2010 22:23 Сообщение: 13
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Как раз использую ядро 2.6.35.1, правда вместе с Uboot-1.1.5. Исходники ядра подправлял как описано в http://dmilvdv.narod.ru/AT91SAM9260/index.html?linux.html (не трогал правда светодиоды), патчи не накладывал.

и типа все работает? хм.. значит что-то, где-то, внезапно..
сравнил с конфигом 2.6.31.3 - отличий не нашел, "старые" ядра и юбут карточку видят - значит дело не в железе. карточка из "старых" проверенных, с нормальными таймингами
в логе вылет вот с такой строчкой
Код
mmc0: error -110 whilst initialising SD card


выудил с кернел.орг версию 2.6.35.1 - буду ее посмотреть..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 03.10.2010 01:16 Редактировалось 03.10.2010 01:20 Сообщение: 14
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
запустил, посмотрел, не сразу но запустилась поддержка SD/MMC в 2.6.35.1
странно, что в 2.6.31.3 вроде все было выставленно правильно и не идет. я бы списал типа "ядро тестовое" :)
теперь ругается вот так (2.6.31.3)
Код
Error detected and set to -110/0 (cmd = 3, retries = 3)
mmc0: req failed (CMD3): -110, retrying...
Sending command 3 as 00001843, arg = 00000000, blocks = 0, length = 0 (MR = 00009B7C)
MCI irq: status = 0000C1E5, C07F0001, 00000001
Command ready
Completed command
Status = 00000001/0000c1e5 [B3688500 44432020 10410025 8F00540D]
mmc0: req done (CMD3): 0: b3688500 44432020 10410025 8f00540d
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 0
clkdiv = 124. mcck = 400000
MMC: Setting controller bus width to 1
mmc0: starting CMD9 arg b3680000 flags 00000007
Sending command 9 as 00001089, arg = B3680000, blocks = 0, length = 0 (MR = 00009B7C)
MCI irq: status = 0000C1E5, C07F0001, 00000001
Command ready
Completed command
Status = 00000001/0000c1e5 [005E0032 1F5983D0 6DB7BF9F 96400005]
mmc0: req done (CMD9): 0: 005e0032 1f5983d0 6db7bf9f 96400005
mmc0: starting CMD7 arg b3680000 flags 00000015
Sending command 7 as 00001047, arg = B3680000, blocks = 0, length = 0 (MR = 00009B7C)
MCI irq: status = 0000C1E5, C07F0001, 00000001
Command ready
Completed command

видимо надо расчехлить паяльник и навесить на интерфейс резисторов хороших и разных :)
интересно, что раньше таких глюков не было - видимо что-то в драйверах накрутили..
рекомендация от Павла куда паять

ЗЫ млин, забыл добавить - в ванильном непатченом ядре надо править "штатные" грабли отличия board-ek и кита

Код
static struct at91_mmc_data __initdata ek_mmc_data = {
//pi .slot_b = 1,
.slot_b = 0,
.wire4 = 1,
.det_pin = AT91_PIN_PA4,
// .det_pin = ... not connected
// .wp_pin = ... not connected
// .vcc_pin = ... not connected
};

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 04.10.2010 16:03 Редактировалось 04.10.2010 16:09 Сообщение: 15
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Спасибо.Т.е. что бы ядро заработала на плате павла надо только __initdata ek_mmc_data поправить и все?
Не могли бы вы написать необходимые опции ,которые надо в ядре включить?
Есть ли какая нибудь у них не переносимость.? т.е. может я что то лишнее включил и по этому не работает или конфликтует?Такое может быть?

Вопрос немного не в тему..с чего быстрее производится чтение? С usb (флэха,хард),sd карточки через встроенный интерфейс в проц или с nand(8бит шина)? Просто работает пока что только usb,нет возможности померить.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 04.10.2010 16:29 Сообщение: 16
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Спасибо.Т.е. что бы ядро заработала на плате павла надо только __initdata ek_mmc_data поправить и все?
Не могли бы вы написать необходимые опции ,которые надо в ядре включить?

в принципе да - это для запуска поддержки SD/MMC на плате кита.. разумеется включив нужные опции в конфиге ядра..
если буду вечером вменяем, то постараюсь повторить действия и выложить результат..

Цитата
Есть ли какая нибудь у них не переносимость.? т.е. может я что то лишнее включил и по этому не работает или конфликтует?Такое может быть?

хз..в логах должно быть видно..

Цитата
Вопрос немного не в тему..с чего быстрее производится чтение? С usb (флэха,хард),sd карточки через встроенный интерфейс в проц или с nand(8бит шина)? Просто работает пока что только usb,нет возможности померить.

э-э.. у меня нет ответа, надо проводить исследования и измерения. Четко известно одно, что у 9260 USB1.1 - физ ограничение интерфейса.

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 04.10.2010 23:17 Сообщение: 17
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
если буду вечером вменяем, то постараюсь повторить действия и выложить результат..

базовый минимум:
1. с кернел.орг тащим исходники ядра
2. распаковываем tar xjvf linux-2.6.35.1.tar.bz2, заходим внутрь
3. натягиваем конфиг make ARCH=arm at91sam9260ek_defconfig
4. поправляем синтаксис /arch/arm/mach-at91/Makefile.boot
5. правим /arch/arm/mach-at91/board-sam9260ek.c на предмет слота mmc
Код
//pi .slot_b = 1,
.slot_b = 0,

6. запускаем конфигуратор ядра, идем в раздел "Device Drivers"
7. Взводим галку общей поддержки SPI
8. Взводим галку общей поддержки MMC/SD/SDIO, заходим внутрь, расставляем галки типа:
title
9. загрузочная строка, поддержка ФС по вкусу
10. собираем ядро, грузим, в логе должны увидеть:
Код
mmc0: card lacks mandatory switch function, performance might suffer.
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new SD card at address b368
mmcblk0: mmc0:b368 SDC 976 MiB
mmcblk0: p1

алес..

полагаю, что был пропущен пункт №7..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Lavin
Добавлено 10.10.2010 19:36 Сообщение: 18
Lavin
2.4

Пункты: 1267
Регистрация: 22.05.2009
Пол: Мужчина
Из: Москва
Непонятно что именно надо править в пункте 4?
7пункт никак не мог быть пропущен так как на спи аудиокодек сидит...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 16.10.2010 12:07 Сообщение: 19
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Непонятно что именно надо править в пункте 4?
7пункт никак не мог быть пропущен так как на спи аудиокодек сидит...

о пункте 4: я вытащил указанное ядро с кернел.орг, навесил конфиг и при попытке собрать получил сообщение об ошибке в указанном файле - при анализе выявил неправильную расстановку ifdef и нехватку endif

все остальное сделал как написал выше. Не смотрел зависимости, но пока не включил общую поддержку SPI, карточка не увиделась..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux