реклама на сайте
подробности

 
 
> Драйвер NAND флешки для Linux
3.14
сообщение Sep 11 2007, 13:01
Сообщение #1


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Нужно написать/адаптировать сабжевый драйвер для PXA270.
Покопавшись в потрохах драйверов NAND устройств, пришел к выводу что сие естьмногослойная структура ... в простейшем случае (драйвер TOTO) объявляется область чтения записи IO и описываются функции управления пинами CE,ALE,CLE.
Моя флешка подключена:
1) шина данных на обшей шине данных
2) WE подключен к глобальному стробу записи
3) RE плдключен к глобальному стробу чтения OE
4) CE, ALE, CLE подключены к IO

Взял за основу этот самый TOTO драйвер, объявил для области NAND неиспользуемый блок SRAM (в __init функции модуля):
Код
        ...
/* Set address of NAND IO lines */
        this->IO_ADDR_R = my_io_base; // переменная, при объявлении присваивается 0х800000
        this->IO_ADDR_W = my_io_base;
        ...
Далее подправил функцию управления CE,ALE,CLE.
Но при инициализации драйвера ядро говорит:
Цитата
NAND flash driver init ...
Unable to handle kernel paging request at virtual address 00800000
pgd = c0004000
[00800000] *pgd=00000000
Internal error: Oops: 8f5 [#1]
Т.е. мне где то надо еще ядру сказать о существовании адреса 0х800000 (где)?


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
3.14
сообщение Sep 20 2007, 13:00
Сообщение #2


Их либе дих ...
******

Группа: СуперМодераторы
Сообщений: 2 010
Регистрация: 6-09-04
Из: Russia, Izhevsk
Пользователь №: 609



Ошибка возникала при компиляции compr_zlib.c файла, в частности на строки:
Цитата
strm.zalloc = (void *)0;
strm.zfree = (void *)0;
Объявления zalloc и zfree в структуре заголовочника отсутствуют, я их просто закоментарил, теперь имею следующую ошибку сборки:
Цитата
arm-linux-gcc -L/usr/local/arm-linux/arm-linux/lib -o mkfs.jffs2 crc32.o compr_rtime.o mkfs.jffs2.o compr_zlib.o compr.o -lz
/usr/local/arm-linux/lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld: cannot find -lz
collect2: ld returned 1 exit status
make: *** [mkfs.jffs2] Ошибка 1
[pi@linuxServer mtd-utils-1.0.0]$
???

Еще вопрос общкго характера, а как тогда монтировать MTD устройства, если они символьшые?
В опциях ядра есть "фичи" MTD emulation using block device и MTD using block device (rewrite) их надо в ядро включать?


--------------------
Усы, борода и кеды - вот мои документы :)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2025 - 01:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016