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

 
 
> NAND flash & linux, Как правильно работать с NAND из под linux?
R6L-025
сообщение Jun 3 2017, 11:42
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Добрый день!
Подскажите - есть плата с SoC ArriaV, на ней стоит NAND флеш. На проце заведен linux. Как из под него общаться с памятью?
В DeviceTree есть следующий код:
Код
hps_nand0: flash@0xff900000 {
            compatible = "denali,denali-nand-dt";
            reg = <0xff900000 0x00010000>,
                <0xffb80000 0x00010000>;
            reg-names = "nand_data", "denali_reg";
            interrupt-parent = <&hps_arm_gic_0>;
            interrupts = <0 144 4>;
            clocks = <&nand_clk>;
            #address-cells = <1>;
            #size-cells = <1>;
            status = "okay";
            bank-width = <2>;
            device-width = <1>;
            nand-bus-width = <8>;

            partition@nand-user {
                label = "NAND_Flash";
                reg = <0x0 0x1000>;
            };

        };

Собственно что я должен увидеть? Новое блочное устройство в /dev/* ? Похожего там ничего не видно. Как вообще правильно работать с этим делом? В документации к ядру нашел только примеры devicetree привязок, а вот что должно получится в итоге...

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
krux
сообщение Jun 3 2017, 12:00
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 700
Регистрация: 2-07-12
Из: дефолт-сити
Пользователь №: 72 596



обычно, NAND флеш, подключенный напрямую к чипу в linux - это /dev/mtdX
неужели нету?


--------------------
провоцируем неудовлетворенных провокаторов с удовольствием.
Go to the top of the page
 
+Quote Post
R6L-025
сообщение Jun 3 2017, 13:53
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 76
Регистрация: 8-04-11
Из: Ростов-на-Дону
Пользователь №: 64 227



Цитата(krux @ Jun 3 2017, 15:00) *
обычно, NAND флеш, подключенный напрямую к чипу в linux - это /dev/mtdX
неужели нету?


Спасибо, хоть буду знать как выглядит файл устройства.
Нет, нету
В логах ядра нашел сообщение:
denali-nand-dt: probe of ff900000.flash failed with error -5
осталось понять что это значит, и как его лечить)

Заработало. После того как привел скрипт DT к такому виду:
Код
hps_nand0: flash@0xff900000 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "denali,denali-nand-dt";
            reg = <0xff900000 0x00010000>,
                <0xffb80000 0x00010000>;
            reg-names = "nand_data", "denali_reg";
            interrupt-parent = <&hps_arm_gic_0>;
            interrupts = <0 144 4>;
            dma-mask = <0xffffffff>;
            clocks = <&nand_clk>;
            status = "okay";
            
            //bank-width = <2>;
            //device-width = <1>;
            //nand-bus-width = <8>;

            partition@nand-user {
                label = "NAND_Flash";
                reg = <0x0 0x1000>;
            };

        };


Сообщение отредактировал R6L-025 - Jun 3 2017, 13:36
Go to the top of the page
 
+Quote Post
Jury093
сообщение Jun 3 2017, 21:09
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 959
Регистрация: 11-01-06
Из: Санкт-Петербург
Пользователь №: 13 050



Цитата
Спасибо, хоть буду знать как выглядит файл устройства.

у вас nand на hps подключен? раз по линуксу вопрос..
для начала проверьте, что интерфейс разрешен в настройках прелоадера, пины ни с чем не конфликтуют и чип подключен правильно..
Цитата
В логах ядра нашел сообщение:
denali-nand-dt: probe of ff900000.flash failed with error -5
осталось понять что это значит, и как его лечить)

простейший путь, раз вы не в теме, в исходниках ядра найти исходник драйвера для denali-nand (обычно исходники-ядра/drivers/mtd/nand/denali.c)
и перед каждым:
Код
return -ENOMEM;
goto failed_req_irq;

и подобными выходами по ошибке прописать отладочный
Код
printk("я тут\n");

"тут" можно и нужно менять на "там" или просто цифры, тогда вы увидите в каком месте драйвер завершает работу с ошибкой, дальше делаете анализ - чего ему не хватает
не забудьте сделать бекапную копию исходника драйвера и после правки пересобрать и обновить ядро и драйвер
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 22:23
Рейтинг@Mail.ru


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