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

 
 
> Драйвер 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, 10:26
Сообщение #2


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

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



Утилиты сейчас попробую ...
Еще интересный факт откопал, на этапе записи в устройство (посредством dd) команда стирания блоков флешки не вызывается. Команда sync то же не влияет.

Собрать эти тулзы не могу smile.gif
glib у меня лежит в /usr/local/arm-linux/arm-linux/lib
ядро лежит в /home/pi/linux/linux-2.6.12.4-col2
Подправил makefile:
Цитата
SBINDIR=/usr/sbin
MANDIR=/usr/man
INCLUDEDIR=/usr/local/arm-linux/arm-linux/include #здесь поправил
CROSS=arm-linux-
LDFLAGS := -L/usr/local/arm-linux/arm-linux/lib #это добавил
CC := $(CROSS)gcc
#CFLAGS := -I./include -O2 -Wall #это заменил следующей строчкой
CFLAGS := -I/home/pi/src/linux-2.6.12.4-col2/include -O2 -Wall
...
С таким makefile не собирается, если оставить как было, то не находила заголовочник zlib.h (хотя чать утилит собирает, flash_erase и flash_eraseall), если его тупо скопировать из заголовочников ядра или glib, ругается на структуры в либе ...


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



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

 


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


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