Ник:
Пароль:

Контакты

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

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:4
Форум » starterkit.ru » Процессорные модули » SK-iMX6S/D-SODIMM
SK-iMX6S-SODIMM проблема с emmc.
Генрюсай
Добавлено 24.06.2015 23:22 Редактировалось 25.06.2015 20:50
0
Сообщение: 1
Генрюсай
0

Пункты: 239
Регистрация: 24.06.2015
Здравствуйте,

Столкнулся со следующей проблемой на “SK-iMX6S-SODIMM” модуле (модуль вставлен в материнскую плату "SK-iMX6-MB-SODIMM"):
Ядро Linux в среднем один из десяти раз падает при попытке загрузить rootfs с emmc, установленной на модуле ( модель: «KLM4G1FE3B-B001» )
Это воспроизводится на следующих ваших сборках Linux, доступных для этого модуля:
1) Mfgtools-Rel-4.0.0_130424_SK-iMX6S_SODIMM_UPDATER.rar, скачанный с вашего фтп (ядро Linux 3.1.2).
Как воспроизвести эту ошибку: прошить модуль с помощью этого прошивальшика и после просто начать перезагружать модуль по нескольку раз (можно прописать reboot в inittab) (также можно просто перезагружать с помощью кнопки reset на материнской плате)
лог ошибки:
Код
mmcblk0boot0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot0, sector 2
mmc0: Got data interrupt 0x00000002 even though no data operation was in progress.
mmcblk0boot0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
end_request: I/O error, dev mmcblk0boot0, sector 5
Buffer I/O error on device mmcblk0boot0, logical block 0
mmcblk0boot0: unable to read partition table
VFS: Cannot open root device "mmcblk0p1" or unknown-block(179,1)
Please append a correct "root=" boot option; here are the available partitions:
b300 3817472 mmcblk0 driver: mmcblk
b310 1024 mmcblk0boot1 (driver?)
b308 1024 mmcblk0boot0 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)
[<8004a9fc>] (unwind_backtrace+0x0/0xf8) from [<805aebac>] (panic+0x74/0x198)
[<805aebac>] (panic+0x74/0x198) from [<80008d40>] (mount_block_root+0x16c/0x220)
[<80008d40>] (mount_block_root+0x16c/0x220) from [<80008ee8>] (mount_root+0xf4/0x114)
[<80008ee8>] (mount_root+0xf4/0x114) from [<8000902c>] (prepare_namespace+0x124/0x184)
[<8000902c>] (prepare_namespace+0x124/0x184) from [<80008a08>] (kernel_init+0x134/0x16c)
[<80008a08>] (kernel_init+0x134/0x16c) from [<80044598>] (kernel_thread_exit+0x0/0x8)

2) buildroot-2014.08: http://www.starterkit.ru/html/index.php?name=forum&op=view&id=23990
воспроизводится также как и в пункте №1.
лог:
Код
mmcblk0boot0: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0x0
mmcblk0boot0: error -84 transferring data, sector 1, nr 7, cmd response 0x900, card status 0x0
mmcblk0boot0: error -84 transferring data, sector 2, nr 6, cmd response 0x900, card status 0x0
mmcblk0boot0: error -84 transferring data, sector 3, nr 5, cmd response 0x900, card status 0x0
mmcblk0boot0: error -84 transferring data, sector 4, nr 4, cmd response 0x900, card status 0x0
mmcblk0boot0: error -84 transferring data, sector 5, nr 3, cmd response 0x900, card status 0x0
mmcblk0boot0: error -84 transferring data, sector 6, nr 2, cmd response 0x900, card status 0x0
mmcblk0boot0: error -84 transferring data, sector 7, nr 1, cmd response 0x900, card status 0x0
Buffer I/O error on device mmcblk0boot0, logical block 0
mmcblk0boot0: unable to read partition table
VFS: Cannot open root device "mmcblk0p1" or unknown-block(179,1): error -6
Please append a correct "root=" boot option; here are the available partitions:
b300 3817472 mmcblk0 driver: mmcblk
b318 128 mmcblk0rpmb (driver?)
b310 1024 mmcblk0boot1 (driver?)
b308 1024 mmcblk0boot0 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)


Эта проблема также наблюдается на следующих ядрах Linux:
3.10.53 ( http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/?h=imx_3.10.53_1.1.0_ga )
3.14.28 ( http://git.freescale.com/git/cgit.cgi/imx/linux-2.6-imx.git/log/?h=imx_3.14.28_1.0.0_ga )
3.19 ( https://github.com/Freescale/linux-fslc/tree/patches-3.19 )

Также я увидел в вашем мануале ( «Manual_imx6_VBM.pdf» ) на фтп следующую фразу:
«для изделий на iMX6Q/D, на данный момент имеется баг – при программном
сбросе (команда reboot) система может не загрузиться»

И в uboot вы используете следующий хак:
Код
diff -uNrp a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
--- a/drivers/mmc/mmc.c 2014-08-10 22:16:46.000000000 +0400
+++ b/drivers/mmc/mmc.c 2014-12-08 22:13:02.000000000 +0300
@@ -1016,8 +1016,10 @@ static int mmc_startup(struct mmc *mmc)

if (IS_SD(mmc))
err = sd_change_freq(mmc);
- else
- err = mmc_change_freq(mmc);
+
+ /* SK FIXME: problem with eMMC on i.mx6 solo */
+// else
+// err = mmc_change_freq(mmc);

if (err)
return err;

Все это как-то связано с данной проблемой?

На данный момент для обхода проблемы я запускаю ядро с параметром "panic=-1" (ядро сразу перезагружается при panic).

Есть ли способ решить эту проблему?

Заранее спасибо.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 25.06.2015 10:01 Редактировалось 25.06.2015 10:39 Сообщение: 2
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
1) Решить у меня не получилось, только обойти, за идею с panic=-1 спасибо, я просто включил сторожевой таймер и он приводит систему в чувства из такого состояния.
Был момент, когда в ходе экспериментов я взял уже не вспомню чье ядро и "эффект" пропал, я сравнил все настройки и драйвера, перенес все изменения - не помогло.

Цитата
«для изделий на iMX6Q/D, на данный момент имеется баг – при программном сбросе (команда reboot) система может не загрузиться»

В этом случае система просто подвисает по завершению работы ядра (т.е. u-boot даже не стартует). Обходится баг так же сторожевым таймером.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 25.06.2015 14:17 Редактировалось 25.06.2015 14:21 Сообщение: 3
sasamy
4.71

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

«для изделий на iMX6Q/D, на данный момент имеется баг – при программном
сбросе (команда reboot) система может не загрузиться»


это в принципе может проявиться на любой плате в каком-нибуть релизе - Freescale официально не поддерживают больше референсы без их PMIC который при каждой перезагрузке выполняет "холодный сброс" процессора

Цитата

И в uboot вы используете следующий хак:
Все это как-то связано с данной проблемой?


нет, хак в убуте не связан точно - по какой-то причине при полностью идентичных условиях на solo не переключается частота клока emmc в убуте, при этом на dual и потом в ядре все без проблем работает

Цитата

Есть ли способ решить эту проблему?


попробуйте поменять настройки пинов в DTS

&usdhc3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc3_sodimm>;
bus-width = <8>;
non-removable;
vmmc-supply = <&reg_3p3v>;
keep-power-in-suspend;
no-1-8-v;
status = "okay";
};
Спуститься к концу Подняться к началу
Персональная информация
Генрюсай
Добавлено 25.06.2015 20:56 Редактировалось 25.06.2015 20:57 Сообщение: 4
Генрюсай
0

Пункты: 239
Регистрация: 24.06.2015
Pavel Ivanchenko, sasamy спасибо за информацию.

Цитата
&usdhc3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc3_sodimm>;
bus-width = <8>;
non-removable;
vmmc-supply = <&reg_3p3v>;
keep-power-in-suspend;
no-1-8-v;
status = "okay";
};

Не помогло (проверял изменения на 3.19 ядре).

Цитата
это в принципе может проявиться на любой плате в каком-нибуть релизе - Freescale официально не поддерживают больше референсы без их PMIC который при каждой перезагрузке выполняет "холодный сброс" процессора

т.е. на процессорах Freescale есть хардварный баг, который не позволяет нормальным образом делать софтварную перезагрузку?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 26.06.2015 09:59 Сообщение: 5
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
т.е. на процессорах Freescale есть хардварный баг, который не позволяет нормальным образом делать софтварную перезагрузку?
Не хардварный, а софтварный (на старом ядре этого эффекта нет).
Спуститься к концу Подняться к началу
Персональная информация
Генрюсай
Добавлено 26.06.2015 14:49 Редактировалось 26.06.2015 15:21 Сообщение: 6
Генрюсай
0

Пункты: 239
Регистрация: 24.06.2015
Цитата
Не хардварный, а софтварный (на старом ядре этого эффекта нет).

Понял, спасибо. А у вас нет ссылки где про этот баг поподробней почитать можно? (просто у нас имеются еще платы на imx6 от других производителей и нам важно могут ли они быть подвержены этому багу или нет)

А моя проблема с загрузкой с emmc воспроизводится на других ваших платах на imx6 процессоре?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 26.06.2015 15:24 Сообщение: 7
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
Цитата
Понял, спасибо. А у вас нет ссылки где про этот баг поподробней почитать можно? (просто у нас имеются еще платы на imx6 от других производителей и нам важно могут ли они быть подвержены ли они этому багу или нет)

Читаем еще раз:
Цитата
это в принципе может проявиться на любой плате в каком-нибуть релизе - Freescale официально не поддерживают больше референсы без их PMIC который при каждой перезагрузке выполняет "холодный сброс" процессора

Если на плате стоит их PMIC, который еще аппаратный сброс при перезагрузке дергает - тогда точно не подвиснет.

Цитата
А моя проблема с загрузкой с emmc воспроизводится на других ваших платах на imx6 процессоре?
На Hola(Duo)-PC я этот эффект тоже наблюдал (они с SD грузятся), по этому, штатно на всех imx6 изделиях включается сторожевой таймер.
Спуститься к концу Подняться к началу
Персональная информация
Генрюсай
Добавлено 26.06.2015 16:14 Редактировалось 26.06.2015 16:20 Сообщение: 8
Генрюсай
0

Пункты: 239
Регистрация: 24.06.2015
Цитата
Если на плате стоит их PMIC, который еще аппаратный сброс при перезагрузке дергает - тогда точно не подвиснет.

Сори, я имел ввиду где я могу прочитать про это (хотябы темы на форумах):
Цитата
Freescale официально не поддерживают больше референсы без их PMIC

и про, то что на платах других производителей из-за отсуствия PMIC тоже наблюдается эта проблема.


Цитата
На Hola(Duo)-PC я этот эффект тоже наблюдал (они с SD грузятся), по этому, штатно на всех imx6 изделиях включается сторожевой таймер.

ок, спасибо. а sd карта там на тотже контроллер выведена (usdhc3) и на всех sd картах воспроизводится или только определенных (имею ввиду, на хотябы двух разных моделях)?
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 26.06.2015 16:37 Сообщение: 9
Pavel Ivanchenko
Admin
4.39

Пункты: 92788
Регистрация: 24.03.2009
Пол: Мужчина
На Холах для загрузки используется usdhc1.
Цитата
и на всех sd картах воспроизводится или только определенных (имею ввиду, на хотябы двух разных моделях)?
Таких экспериментов не ставил.
Хотя, может и не видел я этого эффекта на Холах - в голове такая каша из изделий ...
Спуститься к концу Подняться к началу
Персональная информация
Генрюсай
Добавлено 26.06.2015 16:46 Сообщение: 10
Генрюсай
0

Пункты: 239
Регистрация: 24.06.2015
Pavel Ivanchenko, спасибо за информацию.
Просто мы таких эффектов не наблюдали на нескольких разных платах других производителей с imx6 dual, quad, solo (тоже с emmc rootfs грузили, но там модель emmc другая). Поэтому нам важно понять, это только на этой моделе такая проблема присутствует (значит возможно, что причина хардварная проблема самого модуля) или это общая проблема, которой подвержены все устройства на этих чипах.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX6S/D-SODIMM