Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
nand samsung
Dilim
Добавлено 23.06.2014 16:31
0
Сообщение: 1
Dilim
0

Пункты: 92
Регистрация: 23.06.2014
В своих продуктах вы используете чипы nand samsung K9F2G08U0C. Подскажите пожалуйста как добавить поддержку данного чипа в ядре? У меня на плате установлен данный чип, система грузится, но после загрузки появляются сообщения:

cannot write OOB for EB at 07320000, requested 8 bytes, read 0 bytes, error -5
jffs2_flush_wbuf(): Write failed with -5
JFFS2 warning: (1507) jffs2_sum_write_data: Write of 16232 bytes at 0x0d99c098 failed. returned -5, retlen 0
Write of 2340 bytes at 0x0dce0000 failed. returned -5, retlen 0

и т.д. Через некоторое время система и вовсе падает

JFFS2 error: (1500) jffs2_link_node_ref: Adding new ref cf3e9488 at (0x0a031000-0x0a031000) not immediately after previous (0x0a040000-0x0a031000)
kernel BUG at /home/logic/mybuild/src/linux/fs/jffs2/nodelist.c:644!
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 23.06.2014 17:10 Редактировалось 23.06.2014 17:11 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Никакой специальной "поддержки" данного чипа в ядро мы не запиливали, у вас скорее всего кривой драйвер NAND или JFFS ...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.06.2014 17:44 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
В своих продуктах вы используете чипы nand samsung K9F2G08U0C.

зря вы полезли править файл драйвера..
в файле борды совсем нет упоминаний о нанде?
в логе загрузки нанд опознается, что пишет?

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Dilim
Добавлено 23.06.2014 18:03 Сообщение: 4
Dilim
0

Пункты: 92
Регистрация: 23.06.2014
Цитата
Цитата
В своих продуктах вы используете чипы nand samsung K9F2G08U0C.

зря вы полезли править файл драйвера..
в файле борды совсем нет упоминаний о нанде?
в логе загрузки нанд опознается, что пишет?


omap2-nand driver initializing
[ 0.990631] NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung )
[ 0.998168] Bad block table found at page 131008, version 0x01
[ 1.005126] Bad block table found at page 130944, version 0x01
[ 1.011688] nand_read_bbt: Bad block at 0x00000bdc0000

всё опознается, более того, пока система живая пробовал создавать файл и сохранять его в файловой системе, всё сохраняется.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 23.06.2014 18:12 Редактировалось 23.06.2014 18:13 Сообщение: 5
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Насколько помню (пару лет назад это было), на SK-DM8148 был подобный секес - флешка определялась, но UBI на ней жить отказывалась. Помог гугл, нашлось место в драйвере, где прописывалась небольшая задержка ...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.06.2014 18:22 Редактировалось 23.06.2014 18:37 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
про am3517 и ubifs на нанде пишут вот тут:
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/115399.aspx
с неоконченым финалом
есть еще офф страница техаса:
http://processors.wiki.ti.com/index.php/AM35x-OMAP35x-PSP_04.02.00.07_UserGuide#Creating_JFFS2_filesystem
вот с такой фразой:
For the NAND part on the EVM board the erase block is 128k Consult either u-boot, the kernel, or the data manual for the flash part used to find the erase block size.
т.е надо указать размер erase блока правильным для своего нанда..
вот тут еще в конце:
http://variwiki.com/index.php?title=VAR-SOM-OM35/7_Linux_Nand_Reflashing_Scripts
есть любопытное упоминание (команда в юбуте):
nandecc bch4_sw
что и зачем - не знаю.. я на ситарах с нандом вроде не работал, более не знаю..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Dilim
Добавлено 23.06.2014 19:02 Сообщение: 7
Dilim
0

Пункты: 92
Регистрация: 23.06.2014
Цитата
в файле борды совсем нет упоминаний о нанде?


а где, простите, такой файл может лежать? я нашел только в папке

linux/arch/arm/plat-omap/include/plat

два файлика которые подцепляются инклудами к драйверу nand.h и gpmc.h но в них ничего интересного я не нашел..


Цитата
про am3517 и ubifs на нанде пишут вот тут:
http://e2e.ti.com/support/arm/sitara_arm/f/791/t/115399.aspx
с неоконченым финалом
есть еще офф страница техаса:
http://processors.wiki.ti.com/index.php/AM35x-OMAP35x-PSP_04.02.00.07_UserGuide#Creating_JFFS2_filesystem
вот с такой фразой:
For the NAND part on the EVM board the erase block is 128k Consult either u-boot, the kernel, or the data manual for the flash part used to find the erase block size.
т.е надо указать размер erase блока правильным для своего нанда..
вот тут еще в конце:
http://variwiki.com/index.php?title=VAR-SOM-OM35/7_Linux_Nand_Reflashing_Scripts
есть любопытное упоминание (команда в юбуте):
nandecc bch4_sw
что и зачем - не знаю.. я на ситарах с нандом вроде не работал, более не знаю..


размер erase блока и размер страницы правильные, ещё раз проверил.
nandecc bch4_sw это схема коррекции ошибок. Здесь другая используется, вроде как должна быть правильная, ведь при чтении ошибок не выдается, только при записи..
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 23.06.2014 21:31 Редактировалось 24.06.2014 00:23 Сообщение: 8
Jury093
4.5

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

дак рядом д.б. в соседнем каталоге
arch/arm/mach-omap2/board*.c (тот, у которого рядом *.o тот сишник и ваш)
по идее, в этом файле д.б. прописан нанд - проверьте заодно его структуры..

Цитата
ведь при чтении ошибок не выдается, только при записи.

может есть возможность загрузиться с другого накопителя - usb или mmc, ну или по сетке с NFS.. а оттуда, с комфортом, попилить нанд
про питание, помехи и прочее не спрашиваю - вероятно уже проверено..
детский вопрос про стирание перед записью не задаю..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 24.06.2014 08:07 Редактировалось 24.06.2014 08:20 Сообщение: 9
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

а где, простите, такой файл может лежать? я нашел только в папке


раз вы его не смотрели - посмотрите как Юра написал board-am3517evm.c (я посмотрел в техасовском ядре 2.6.37)

Цитата

#ifdef CONFIG_MTD_NAND_OMAP2
/* NAND */
board_nand_init(am3517evm_nand_partitions,
ARRAY_SIZE(am3517evm_nand_partitions), 0, NAND_BUSWIDTH_16);
#endif


как минимум ширину шины надо поменять с 16 на 8

board_nand_init(am3517evm_nand_partitions,
ARRAY_SIZE(am3517evm_nand_partitions), 0, 0);
Спуститься к концу Подняться к началу
Персональная информация
Dilim
Добавлено 24.06.2014 12:23 Редактировалось 24.06.2014 12:54 Сообщение: 10
Dilim
0

Пункты: 92
Регистрация: 23.06.2014
Цитата
Цитата

#ifdef CONFIG_MTD_NAND_OMAP2
/* NAND */
board_nand_init(am3517evm_nand_partitions,
ARRAY_SIZE(am3517evm_nand_partitions), 0, NAND_BUSWIDTH_16);
#endif


как минимум ширину шины надо поменять с 16 на 8

board_nand_init(am3517evm_nand_partitions,
ARRAY_SIZE(am3517evm_nand_partitions), 0, 0);


Спасибо! правда я ширину шины сразу поменял в файле драйвера принудительно 0 присвоил.
Цитата

может есть возможность загрузиться с другого накопителя - usb или mmc, ну или по сетке с NFS.. а оттуда, с комфортом, попилить нанд
про питание, помехи и прочее не спрашиваю - вероятно уже проверено..
детский вопрос про стирание перед записью не задаю..


Сейчас я так и делаю: гружусь с mmc, из под u-boot`а записываю в нанд образы загрузчика, ядра и файловой системы, предварительно почистив весь чип целиком. И уж после этого перезагружаюсь с нанда. Ядро загружается нормально, и функции чтения нанда проходят без ошибок(натолкал отладочных printf`ов во все функции драйвера в ядре) а вот функции записи фэйлятся...
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux