Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)
Штатный NAND flash на SK-iMX6S-OEM
Явиар
Добавлено 17.02.2015 17:02 Сообщение: 11
Явиар
0

Пункты: 987
Регистрация: 08.07.2014
Пол: Мужчина
А можно выложить готовую, собранную ОС (прошивку)? В таком же формате как дается на ftp?
Спуститься к концу Подняться к началу
Персональная информация
Явиар
Добавлено 20.02.2015 10:19 Сообщение: 12
Явиар
0

Пункты: 987
Регистрация: 08.07.2014
Пол: Мужчина
Цитата
Плату как отключаете - просто питание убираете ? ubifs теоретически устойчива к сбоям питания но практически работу системы надо завершать корректно - halt или poweroff


У флешки есть пин WP (Write protect) - защита от записи (активный уровень = 0).
У процессора есть нога соответствующая (E15).
Используется ли она программно?

+ из DATASHEET у флешке

"
DATA PROTECTION & POWER UP SEQUENCE
The device is designed to offer protection from any involuntary program/erase during power-transitions. An internal voltage detector
disables all functions whenever Vcc is below about 2V. WP pin provides hardware protection and is recommended to be kept at VIL
during power-up and power-down. A recovery time of minimum 10µs is required before internal circuit gets ready for any command
sequences as shown in Figure 21. The two step command sequence for program/erase provides additional software protection.
"

Процессор должен получать запрет на запись при граничном питании. Используется ли это программно?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 20.02.2015 12:17 Сообщение: 13
Pavel Ivanchenko
Admin
4.39

Пункты: 91424
Регистрация: 24.03.2009
Пол: Мужчина
NANDF_WP пин прописан в системе как в старом так и в новом ядре.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.02.2015 12:34 Редактировалось 20.02.2015 12:57 Сообщение: 14
sasamy
4.70

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

Процессор должен получать запрет на запись при граничном питании. Используется ли это программно?


на плате нет управления питанием - как БП включили так оно и стается пока БП не отключите. Если напряжение "просядет" (а это надо КЗ устроить) то оно и на процессоре будет недостаточным и тут уже не нанды будет. Но если что - пин этот прописан и сконфигурирован на процессоре.

По поводу убута - можно принудительно заставить UBI не пытаться что-то править в нанде и переходить сразу в режим RO

uboot-imx_3.10.31_1.1.0_beta-sk/drivers/mtd/ubi/build.c

/*
* Note, in this implementation we support MTD devices with 0x7FFFFFFF
* physical eraseblocks maximum.
*/

ubi->peb_size = ubi->mtd->erasesize;
ubi->peb_count = mtd_div_by_eb(ubi->mtd->size, ubi->mtd);
ubi->flash_size = ubi->mtd->size;

if (mtd_can_have_bb(ubi->mtd))
ubi->bad_allowed = 0; // sasa

ubi->min_io_size = ubi->mtd->writesize;
ubi->hdrs_min_io_size = ubi->mtd->writesize >> ubi->mtd->subpage_sft;
Спуститься к концу Подняться к началу
Персональная информация
Явиар
Добавлено 23.02.2015 16:46 Сообщение: 15
Явиар
0

Пункты: 987
Регистрация: 08.07.2014
Пол: Мужчина
Цитата

ubi->bad_allowed = 0; // sasa


Пока результаты положительные - сбоев не появлялось, но необходимо дальнейшее тестирование.
+ Нужно заложить количество подменных PEB больше, процентов 10 от общего количества.

И я не совсем понял механизм их работы - при малейшем чихе они помечаются как BAD, но потом они тестируются и если тесты прошли удачно, то пометка снимается, я прав?
Спуститься к концу Подняться к началу
Персональная информация
Явиар
Добавлено 26.02.2015 09:00 Сообщение: 16
Явиар
0

Пункты: 987
Регистрация: 08.07.2014
Пол: Мужчина
Цитата


По поводу убута ...


Надо не только загрузчик настраивать.

http://www.linux-mtd.infradead.org/doc/ubifs.html#L_ubifs_mlc
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 26.02.2015 15:42 Редактировалось 26.02.2015 15:44 Сообщение: 17
sasamy
4.70

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

Надо не только загрузчик настраивать.


Все что реально полезного можно настроить посмотрите в конфиге ядра

Device Drivers --->
<*> Memory Technology Device (MTD) support --->
<*> Enable UBI - Unsorted block images --->

может вас это удивит но там уже прописаны настройки рекомендованные для MLC nand
Спуститься к концу Подняться к началу
Персональная информация
Явиар
Добавлено 02.03.2015 05:50 Редактировалось 02.03.2015 08:31 Сообщение: 18
Явиар
0

Пункты: 987
Регистрация: 08.07.2014
Пол: Мужчина
Нет, к сожалению ни обновление ядра, ни запрет проверки резервных блоков загрузчику u-BOOT не помогло.

однако в настоящий момент появляться ошибка только рода:

Цитата

CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz
Reset cause: POR
Board: SK-iMX6S
DRAM: 512 MiB
Setup enet clock OK
NAND: 2048 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

Net: FEC
Hit any key to stop autoboot: 0
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 1048576 bytes (1024 KiB)
UBI: logical eraseblock size: 1032192 bytes
UBI: smallest flash I/O unit: 8192
UBI: VID header offset: 8192 (aligned 8192)
UBI: data offset: 16384
UBI: fixable bit-flip detected at PEB 11
UBI error: ubi_io_read: error -74 while reading 1032192 bytes from PEB 11:16384, read 1032192 bytes
UBI error: ubi_init: cannot attach mtd1
UBI error: ubi_init: UBI error: cannot initialize UBI, error -74
UBI init error 74
UBIFS error (pid 0): ubifs_get_sb: cannot open "ubi0:kernelfs", error -19
UBIFS error (pid 0): ubifs_mount: Error reading superblock on volume 'ubi0:kernelfs' errno=-19!

ubifsmount - mount UBIFS volume

Usage:
ubifsmount <volume-name>
- mount 'volume-name' volume
UBIFS not mounted, use ubifs mount to mount volume first!
ubifsload - load file from an UBIFS filesystem

Usage:
ubifsload <addr> <filename> [bytes]
- load file 'filename' to address 'addr'
Wrong Image Format for bootm command
ERROR: can't get kernel image!
SK-iMX6S >


Или с другой платы:

Цитата


U-Boot 2014.04 (Feb 19 2015 - 09:49:58)

CPU: Freescale i.MX6SOLO rev1.1 at 792 MHz
CPU: Temperature 27 C, calibration data: 0x58d5115f
Reset cause: POR
Board: SK-iMX6-OEM
DRAM: 512 MiB
NAND: 1024 MiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment

Net: FEC
Normal Boot
Hit any key to stop autoboot: 0
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size: 1048576 bytes (1024 KiB)
UBI: logical eraseblock size: 1032192 bytes
UBI: smallest flash I/O unit: 8192
UBI: VID header offset: 8192 (aligned 8192)
UBI: data offset: 16384
UBI error: do_sync_erase: cannot erase PEB 76, error -5
UBI error: erase_worker: failed to erase PEB 76, error -5
UBI: reserve more 1 PEBs
UBI: mark PEB 76 as bad
UBI error: do_sync_erase: cannot erase PEB 305, error -5
UBI error: erase_worker: failed to erase PEB 305, error -5
UBI: reserve more 1 PEBs
UBI: mark PEB 305 as bad
UBI error: do_sync_erase: cannot erase PEB 409, error -5
UBI error: erase_worker: failed to erase PEB 409, error -5
UBI: reserve more 1 PEBs
UBI: mark PEB 409 as bad
UBI: attached mtd1 to ubi0
UBI: MTD device name: "mtd=1"
UBI: MTD device size: 512 MiB
UBI: number of good PEBs: 509
UBI: number of bad PEBs: 3
UBI: max. allowed volumes: 128
UBI: wear-leveling threshold: 4096
UBI: number of internal volumes: 1
UBI: number of user volumes: 1
UBI: available PEBs: 12
UBI: total number of reserved PEBs: 500
UBI: number of PEBs reserved for bad PEB handling: 5
UBI: max/mean erase counter: 8194/18
UBIFS: recovery needed
UBI error: ubi_io_read: error -74 while reading 688128 bytes from PEB 17:360448, read 688128 bytes
UBIFS error (pid 0): ubifs_recover_leb: corrupt empty space at LEB 11:344064
UBIFS error (pid 0): ubifs_scanned_corruption: corrupted data at LEB 11:344064
UBIFS error (pid 0): ubifs_recover_leb: LEB 11 scanning failed
UBIFS error (pid 0): ubifs_mount: Error reading superblock on volume 'ubi0:rootfs' errno=-117!

ubifsmount - mount UBIFS volume

Usage:
ubifsmount <volume-name>
- mount 'volume-name' volume
UBIFS not mounted, use ubifs mount to mount volume first!
ubifsload - load file from an UBIFS filesystem

Usage:
ubifsload <addr> <filename> [bytes]
- load file 'filename' to address 'addr'
UBIFS not mounted, use ubifs mount to mount volume first!
ubifsload - load file from an UBIFS filesystem

Usage:
ubifsload <addr> <filename> [bytes]
- load file 'filename' to address 'addr'
Bad Linux ARM zImage magic!
u-boot >


Вы говорите, что никаких проблем не возникало при использовании NAND типа SLC.
Может действительно программный контроллер не способен напрямую нивелировать все недостатки и особенности MLC.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 02.03.2015 09:00 Сообщение: 19
Pavel Ivanchenko
Admin
4.39

Пункты: 91424
Регистрация: 24.03.2009
Пол: Мужчина
Остается попробовать изменить способ загрузки на новом убуте - грузиться не с UBI, а непосредственно с NAND, как и было изначально сделано (как сделано на всех других модулях и платах с NAND).

Этот "маразм" с MLC изрядно уже действует на нервы, в будущем будем ставить SLC флешки.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 02.03.2015 11:28 Сообщение: 20
Pavel Ivanchenko
Admin
4.39

Пункты: 91424
Регистрация: 24.03.2009
Пол: Мужчина
Хотя ... отправте нам этот "глючный" модуль, попробуем разобраться.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)