Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Embedded Linux
Сборка нового ядра и загрузка с SD-карты на SK-MAT91SAM9G45
asy
Добавлено 02.01.2013 20:49 Редактировалось 02.01.2013 23:27
0
Сообщение: 1
asy
0

Пункты: 2790
Регистрация: 28.10.2012
Пол: Мужчина
С Новым Годом!

Вернулся к изучению arm и сборке системы для платы. Сейчас появилось желание собрать своё ядро (причина не особенно важна, хотя, на самом деле, хочется обновлённые option и mass storage). Попытки начал с 3.2.18. В принципе, ядро собирается, но вот с SD не грузится:

Код
atmel_mci atmel_mci.0: version: 0x410
atmel_mci atmel_mci.0: no DMA channel available
atmel_mci atmel_mci.0: using PIO
mmc_host mmc0: no WP pin available
mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff80000 irq 11, 1 slots
atmel_mci atmel_mci.1: version: 0x410
atmel_mci atmel_mci.1: no DMA channel available
atmel_mci atmel_mci.1: using PIO
mmc_host mmc0: card is not present
mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
atmel_mci atmel_mci.1: Atmel MCI controller at 0xfffd0000 irq 29, 1 slots
mmc_host mmc1: card is not present


Похожее обсуждение было тут. В первом сообщении не упоминается строка
Код
mmc_host mmc0: card is not present
Далее, однако, про неё тоже говорится. Решением для mmc то обсуждение закончено не было. Есть упоминание о проблеме с тактированием. Действительно, тут, у меня, написано mmc0: clock 0Hz и т.д. Но, в упомянутом обсуждении, направление решения только обозначено, было бы интересно на код посмотреть, так как я не программист-железячник и самостоятельные раскопки могут быть весьма продолжительны у меня...

С рабочим ядром, которое было получено с местного ftp, проблема такая, что оно rc (2.6.36-rc6), сейчас что-то не получается найти тарбол с rc6, чтобы посмотреть отличия. Имеющийся mci.patch маловат, судя по всему: 7330 байт. Попытка применения к ядру 2.6.36 эффекта не даёт, SD-карта, так же, не определяется. В патче отсутствует, как минимум, целый блок, имеющий комментарий
Код
* Patched for SK-MAT91SAM9G45 development board
* Pavel Ivanchenko.
* www.starterkit.ru

Собственно, вопросы. Есть ли у кого полный патч для 2.6.36, или, что лучше, патч для какого-нибудь более свежего ядра ? Или, как вариант, объяснение, почему SD-карта не видна ?

Ещё посмотрел http://starterkit-org.googlecode.com/files/linux-3.2.18-oem.patch
Тут, на первый взгляд, ничего существенного про SD не заметно... Но непонятно, подходит ли этот патч для платы, которая у меня...

UPD: на самом деле, в 3.2.18-oem.patch есть таки изменения именно в mci0_data и mci1_data... Причём, не такие, как по упомянутой, в следующем моём, сообщении ссылке.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 02.01.2013 22:38 Сообщение: 2
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Или, как вариант, объяснение, почему SD-карта не видна ?

выложите:
- строку параметров ядра при загрузке
- изменения в board файле в части mmc
- выдержку из конфига, типа
cat .config | grep MMC
- последние 10-15 строк перед кернел паник..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
asy
Добавлено 02.01.2013 22:38 Сообщение: 3
asy
0

Пункты: 2790
Регистрация: 28.10.2012
Пол: Мужчина
Ещё одно обсуждение нашёл. Тут, вроде бы, всё получилось. Только, опять же, не очень понятно, как.

Последняя проба была с 3.7.1 (уж новое, так новое...). Исходный конфиг получен командой "make ARCH=arm at91sam9g45_defconfig". Пробовал как без исправления board-sam9m10g45ek.c, так и с правкой .detect_pin = AT91_PIN_PA4, как в обсуждении ("at91_add_device_mci(1, &mci1_data)" закомментировал). В последнем случае вывод такой:

Код
atmel_mci atmel_mci.0: version: 0x410
atmel_mci atmel_mci.0: no DMA channel available
atmel_mci atmel_mci.0: using PIO
mmc_host mmc0: slot[0]: bus_width=4, detect_pin=4, detect_is_active_high=false, wp_pin=-22
mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 0 timing 0
atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff80000 irq 27, 1 slots
mmc_host mmc0: card is not present
mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
Waiting for root device /dev/mmcblk0p2...
Спуститься к концу Подняться к началу
Персональная информация
asy
Добавлено 02.01.2013 22:43 Редактировалось 02.01.2013 23:18 Сообщение: 4
asy
0

Пункты: 2790
Регистрация: 28.10.2012
Пол: Мужчина
Цитата
выложите:
- строку параметров ядра при загрузке
- изменения в board файле в части mmc
- выдержку из конфига, типа
cat .config | grep MMC
- последние 10-15 строк перед кернел паник..

Перед предыдущим постом этого ответа не увидел - своё дополнение писал.

mem=64M console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait

Про изменения успел написать в предыдущем сообщении, исправлена структура mci0_data и отключено использование mci1_data.

Код
$ cat .config |grep MMC
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set
# CONFIG_MMC_CLKGATE is not set
# MMC/SD/SDIO Card Drivers
CONFIG_MMC_BLOCK=y
CONFIG_MMC_BLOCK_MINORS=8
# CONFIG_MMC_BLOCK_BOUNCE is not set
# CONFIG_MMC_TEST is not set
# MMC/SD/SDIO Host Controller Drivers
# CONFIG_MMC_SDHCI is not set
# CONFIG_MMC_SDHCI_PXAV3 is not set
# CONFIG_MMC_SDHCI_PXAV2 is not set
# CONFIG_MMC_AT91 is not set
CONFIG_MMC_ATMELMCI=y
CONFIG_MMC_ATMELMCI_DMA=y
# CONFIG_MMC_SPI is not set
# CONFIG_MMC_DW is not set
# CONFIG_MMC_VUB300 is not set
# CONFIG_MMC_USHC is not set


Код
atmel_tsadcc atmel_tsadcc: Master clock is set at: 133333333 Hz
atmel_tsadcc atmel_tsadcc: Prescaler is set at: 221
input: atmel touch screen controller as /devices/platform/atmel_tsadcc/input/input0
at91_rtc at91_rtc: rtc core: registered at91_rtc as rtc0
AT91 Real Time Clock driver.
usbcore: registered new interface driver ushc
Registered led device: d7
Registered led device: d8
Registered led device: d6
TCP: cubic registered
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
lib80211: common routines for IEEE802.11 drivers
lib80211_crypt: registered algorithm 'NULL'
dmatest: Started 1 threads using dma0chan0
dmatest: Started 1 threads using dma0chan1
dmatest: Started 1 threads using dma0chan2
dmatest: Started 1 threads using dma0chan3
dmatest: Started 1 threads using dma0chan4
dmatest: Started 1 threads using dma0chan5
dmatest: Started 1 threads using dma0chan6
dmatest: Started 1 threads using dma0chan7
input: gpio-keys as /devices/platform/gpio-keys/input/input1
at91_rtc at91_rtc: setting system clock to 2007-01-01 00:00:03 UTC (1167609603)
atmel_mci atmel_mci.0: version: 0x410
atmel_mci atmel_mci.0: no DMA channel available
atmel_mci atmel_mci.0: using PIO
mmc_host mmc0: slot[0]: bus_width=4, detect_pin=4, detect_is_active_high=false, wp_pin=-22
mmc0: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 21 width 0 timing 0
mmc0: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 21 width 0 timing 0
atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff80000 irq 27, 1 slots
mmc_host mmc0: card is not present
mmc0: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
Waiting for root device /dev/mmcblk0p2...


Сейчас ещё раз собираю, со значением .detect_pin AT91_PIN_PA31, как в исходном 2.6.36-rc6.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 02.01.2013 23:27 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
у меня вот так структура прописана:
Код
static struct mci_platform_data __initdata mci0_data = {
.slot[0] = {
.bus_width = 4,
.detect_pin = AT91_PIN_PA31,
.wp_pin = -EINVAL,
},
};

должно полегчать..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
asy
Добавлено 02.01.2013 23:38 Сообщение: 6
asy
0

Пункты: 2790
Регистрация: 28.10.2012
Пол: Мужчина
Да, точно. AT91_PIN_PA31 - всё, что было надо для 3.7.1. Оно, правда, из-за ФС теперь свалилось, но это, наверное, мелочи - я не проверял, что там наконфигурировалось изначально в плане ФС. Сейчас буду причёсывать конфиг. :)
Спасибо.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 02.01.2013 23:42 Сообщение: 7
Jury093
4.5

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

данивапроз.. сами себе помогли вполне успешно..
ФС - смотрите поддержку ext2 или ext3, смотря как mmc отформатированна..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
asy
Добавлено 03.01.2013 00:25 Редактировалось 03.01.2013 01:43 Сообщение: 8
asy
0

Пункты: 2790
Регистрация: 28.10.2012
Пол: Мужчина
С ФС понятно, там ext2 только по-умолчаню сконфигурирована. Но попал в засаду, хотя это другая тема.

Нет, тема оказалась та же. Смутило отсутствие Atmel в драйверах сетевых карт, но драйвер просто переименовали в "Cadence MACB/GEM". Но вот что потребовалось - это скопировать данные структуры ek_macb_data. Заодно и ek_nand_partition поправил. Надо будет там всё сверить потом.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 03.01.2013 10:10 Сообщение: 9
sasamy
4.71

Пункты: 83560
Регистрация: 14.08.2009
Вы лучше с Device Tree разбирайтесь - board-файлы скоро отсохнут в ванильном ядре :)
Спуститься к концу Подняться к началу
Персональная информация
asy
Добавлено 04.01.2013 20:29 Сообщение: 10
asy
0

Пункты: 2790
Регистрация: 28.10.2012
Пол: Мужчина
Да я надеялся, что ядром вообще заниматься не придётся. Или придётся не мне. Пока 3.7.1 устраивает вроде, потребуется ещё новее - буду тогда и разбираться, если этот вариант станет недоступен.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux