-
- Попытка анализа. Evgeny_CD(831 знак., 20.02.2019 18:01)
- Есть возможность взять простейший анализатор и отснять начало обмена при 4мгц, чтобы точно ничто не уперлась в частоты? Evgeny_CD(207 знак., 20.02.2019 16:54)
- Н-да. Сыроват продукт... - VVB_(20.02.2019 15:23, )
- IP-блок SPI им явно диверсанты подбросили. Я такого ужоса давненько не встречал. У N32926 и NUC980 гораздо лучше - там есть DMA - LightElf(20.02.2019 15:29)
- Слава Богу, мне SPI не нужен - VVB_(20.02.2019 15:34, )
- Откуда грузить планируете? С NAND или eMMC? - LightElf(20.02.2019 15:35)
- Как я понял, проблема в драйвере Linux; драйвер SPI в u-boot работает корректно. VVB_(192 знак., 20.02.2019 15:40, )
- Да, U-Boot работает нормально. - LightElf(20.02.2019 15:42)
- Код драйвера в Linux есть? Может, поглядеть для начала? - VVB_(20.02.2019 15:43, )
- Есть, гляжу. Пока ничего особенного не увидел - LightElf(20.02.2019 16:00)
- Пожалуйста, отпишитесь, если нароете что-то. Чтобы быть в курсе. - VVB_(20.02.2019 16:16, )
- Прихожу к выводу, что накосячил сам. Теперь выясняю где именно :) - LightElf(22.02.2019 00:07)
- Пожалуйста, отпишитесь, если нароете что-то. Чтобы быть в курсе. - VVB_(20.02.2019 16:16, )
- Есть, гляжу. Пока ничего особенного не увидел - LightElf(20.02.2019 16:00)
- Код драйвера в Linux есть? Может, поглядеть для начала? - VVB_(20.02.2019 15:43, )
- Да, U-Boot работает нормально. - LightElf(20.02.2019 15:42)
- Как я понял, проблема в драйвере Linux; драйвер SPI в u-boot работает корректно. VVB_(192 знак., 20.02.2019 15:40, )
- Откуда грузить планируете? С NAND или eMMC? - LightElf(20.02.2019 15:35)
- Слава Богу, мне SPI не нужен - VVB_(20.02.2019 15:34, )
- IP-блок SPI им явно диверсанты подбросили. Я такого ужоса давненько не встречал. У N32926 и NUC980 гораздо лучше - там есть DMA - LightElf(20.02.2019 15:29)
- Для начала неплохо было бы тип процессора сказать. - Ale3000(20.02.2019 13:42)
- NUC976, но вопрос более общий. Что такого может быть в принципе на SPI, чтобы периодически данные бились именно таким способом - потерей целого байта. - LightElf(20.02.2019 15:14)
- вот интересно, в примере в мануале при чтении толкаются 0xFF - это потому что по факту пофигу или глупость какая в кремнии? Vit(176 знак., 22.02.2019 04:54)
- Чтобы прочитать байт по SPI, нужно туда записать какой-нибудь байт. - Ale3000(22.02.2019 06:15)
- Спасибо, Кэп. Вопрос о багах - Vit(22.02.2019 07:33)
- Чтобы прочитать байт по SPI, нужно туда записать какой-нибудь байт. - Ale3000(22.02.2019 06:15)
- вот интересно, в примере в мануале при чтении толкаются 0xFF - это потому что по факту пофигу или глупость какая в кремнии? Vit(176 знак., 22.02.2019 04:54)
- NUC976, но вопрос более общий. Что такого может быть в принципе на SPI, чтобы периодически данные бились именно таким способом - потерей целого байта. - LightElf(20.02.2019 15:14)
- Длинные провода, отсутствие согласующих резисторов? - Хаос(19.02.2019 13:27, )
- Между процессором и флешкой миллиметров 15. Согласующих резисторов нет. Есть подтяжки к 3.3 у CS и SCK. Подчеркиваю - теряются не отдельные биты, а байты целиком. Причем загрузка ядра с этой самой флешки происходит стабильно и четко (ядро в LightElf(140 знак., 19.02.2019 13:47)
- код драйвера загрузчика имеется или аппаратный/закрытый? - Vit(20.02.2019 12:35)
- Исходники этой конкретной версии U-Boot есть в наличии. - LightElf(20.02.2019 15:15)
- драйверы сравнимы? - Vit(21.02.2019 12:24)
- Нет, там очень сильно по-разному сделано - LightElf(21.02.2019 15:54)
- драйверы сравнимы? - Vit(21.02.2019 12:24)
- Исходники этой конкретной версии U-Boot есть в наличии. - LightElf(20.02.2019 15:15)
- код драйвера загрузчика имеется или аппаратный/закрытый? - Vit(20.02.2019 12:35)
- Между процессором и флешкой миллиметров 15. Согласующих резисторов нет. Есть подтяжки к 3.3 у CS и SCK. Подчеркиваю - теряются не отдельные биты, а байты целиком. Причем загрузка ядра с этой самой флешки происходит стабильно и четко (ядро в LightElf(140 знак., 19.02.2019 13:47)
- Но чтоб потерять байт, нужно потерять ВОСЕМЬ бит. И я не понимаю, как в SPI можно что-то потерять вообще: ты сколько клоков дал, столько бит и вычитал! - fk0(19.02.2019 12:59)
- Сдвиговый регистр SPI читается после строба. Если этот строб внешний (сигнал SS, например) то потеря одного сигнала приведёт к потере байта. - AU08(20.02.2019 13:32)
- Вот-вот, и я о том же. Подозреваю багу в линуксячем драйвере SPI, но хочу еще предположения услышать. - LightElf(19.02.2019 13:19)
- uname -a и откуда у вас ядро? я подключал к nuc976 флешку на второй канал, вполне работала, но очень медленно - jury093(20.02.2019 11:08, )
- Ну вот у меня тоже вполне работает, ядро грузится без проблем. Если использовать RAMFS+SD карту, как на демоборде - то все прекрасно. А при попытке поднять рут на JFFS2 - такой вот пердюмонокль. - LightElf(20.02.2019 15:34)
- У вас какая версия ядра? Мы как раз делали загрузку платы с rootfs на SPI flash, проблем нет , garry_(438 знак., 21.02.2019 10:12)
- а флешка на кастомной плате или демоборда? если первое, то за железо уверены, питание, конденсаторы и прочее? может чип сменить, всякое бывает.. jury093(1225 знак., 20.02.2019 23:47, )
- Ну вот у меня тоже вполне работает, ядро грузится без проблем. Если использовать RAMFS+SD карту, как на демоборде - то все прекрасно. А при попытке поднять рут на JFFS2 - такой вот пердюмонокль. - LightElf(20.02.2019 15:34)
- У нас программист что-то правил в спиай, но мы работали с w25q128, патчи приложил garry_(20.02.2019 10:53)
- Спасибо! Флешки у меня и такие же есть и GD25Q127. По патчу 0001 - буду смотреть. А в чем причина была для изменений? По патчу 0003 - я сделал аналогичное, но более радикально. - LightElf(20.02.2019 15:17 - 21.02.2019 12:04)
- Основное - очень медленная работа была - garry_(20.02.2019 21:36)
- Да, скорость мне тоже важна. Буду ваше пробовать. - LightElf(21.02.2019 12:05)
- Основное - очень медленная работа была - garry_(20.02.2019 21:36)
- Спасибо! Флешки у меня и такие же есть и GD25Q127. По патчу 0001 - буду смотреть. А в чем причина была для изменений? По патчу 0003 - я сделал аналогичное, но более радикально. - LightElf(20.02.2019 15:17 - 21.02.2019 12:04)
- Сбой DMA? Что в еррате? - Evgeny_CD(19.02.2019 13:49)
- Это NUC976, там нет DMA на SPI - LightElf(19.02.2019 13:57)
- А FIFO там есть? - il-2(20.02.2019 08:26)
- Там не совсем FIFO, буфер на 4 элемента. - LightElf(20.02.2019 15:28)
- Отсутствие аппаратной буферизации и Linux - уже несовместимая вещь :-) il-2(101 знак., 21.02.2019 18:47)
- +1. Может быть и без FIFO - драйвер выключает/сбрасывает модуль SPI сразу после передачи байта в регистр, не дождавшись завершения передачи на шине. Тут наоборот, установка максимальной скорости может помочь - может начать чаще успевать. - Nikolay_Po(20.02.2019 13:12)
- Беда, как я понял, проявляется в момент переключения с передачи на прием. Т.е. команда и адрес передаются, потом начинается прием данных. В этот момент один-два байта могут почему-то потеряться. Происходит это спорадически, на JFFS2 особенно LightElf(55 знак., 20.02.2019 15:40)
- Наивное предложение. А не тормозит ли там флешка? Может, поуправлять кол. dummy bytes? - Evgeny_CD(20.02.2019 16:29)
- 1) Частоту уронил по самое некуда - принципиальных изменений нет LightElf(247 знак., 20.02.2019 16:57)
- Попробуйте частоту не уронить, а наоборот, поднять. Изменится ли статистика потерь? - Nikolay_Po(21.02.2019 00:43)
- +1 - Evgeny_CD(21.02.2019 00:47)
- Попробуй ради эксперимента изменить базовую частоту, из которой делителем получается входная частота тактов блока SPI - Evgeny_CD(20.02.2019 17:08)
- Посмотрю, можно ли это сделать. Там вроде жестко прибито к частоте APB - LightElf(20.02.2019 17:13)
- APB тормозни для эксперимента. Ошибка внутри контроллера SPI. - Evgeny_CD(20.02.2019 17:18)
- Ошибка, скорее всего, в кривых руках. С любым другим камнем я бы уверенно посмотрел в зеркало. - LightElf(20.02.2019 17:27)
- отписал выше. ошибка более вероятна в кривом коде китайского ядра, где поганый код и они пошли своей дорогой при написание драйверов. отключите драйвер флешки и погоняйте обмен в режиме spidev. если ошибок не будет, то проблема в драйвере флешки jury093(48 знак., 21.02.2019 10:11, )
- Спасибо, буду пробовать всякое. Насчет нестабильности JFFS2 я в курсе, но проблема проявляется сразу же после записи образа на флеш. Т.е. родной утилитой заливаю ядро и образ FS, проверяю - все залилось ОК. Включаю плату - опаньки, JFFS2 ругается. LightElf(233 знак., 21.02.2019 12:01)
- поковырял свою флешечку, подозреваю, что у вас имидж генерится с ошибками в ключах. мне к сожалению полностью не проверить, т.к. у флешки erasesize=4kib, а генератор jffs2 имиджа желает не менее 8кБ. пробная генерация с 8кБ и запись дала такие jury093(1023 знак., 24.02.2019 00:41, )
- Спасибо, буду пробовать всякое. Насчет нестабильности JFFS2 я в курсе, но проблема проявляется сразу же после записи образа на флеш. Т.е. родной утилитой заливаю ядро и образ FS, проверяю - все залилось ОК. Включаю плату - опаньки, JFFS2 ругается. LightElf(233 знак., 21.02.2019 12:01)
- отписал выше. ошибка более вероятна в кривом коде китайского ядра, где поганый код и они пошли своей дорогой при написание драйверов. отключите драйвер флешки и погоняйте обмен в режиме spidev. если ошибок не будет, то проблема в драйвере флешки jury093(48 знак., 21.02.2019 10:11, )
- Ошибка, скорее всего, в кривых руках. С любым другим камнем я бы уверенно посмотрел в зеркало. - LightElf(20.02.2019 17:27)
- APB тормозни для эксперимента. Ошибка внутри контроллера SPI. - Evgeny_CD(20.02.2019 17:18)
- Посмотрю, можно ли это сделать. Там вроде жестко прибито к частоте APB - LightElf(20.02.2019 17:13)
- Попробуйте частоту не уронить, а наоборот, поднять. Изменится ли статистика потерь? - Nikolay_Po(21.02.2019 00:43)
- 1) Частоту уронил по самое некуда - принципиальных изменений нет LightElf(247 знак., 20.02.2019 16:57)
- Наивное предложение. А не тормозит ли там флешка? Может, поуправлять кол. dummy bytes? - Evgeny_CD(20.02.2019 16:29)
- Беда, как я понял, проявляется в момент переключения с передачи на прием. Т.е. команда и адрес передаются, потом начинается прием данных. В этот момент один-два байта могут почему-то потеряться. Происходит это спорадически, на JFFS2 особенно LightElf(55 знак., 20.02.2019 15:40)
- Там не совсем FIFO, буфер на 4 элемента. - LightElf(20.02.2019 15:28)
- А FIFO там есть? - il-2(20.02.2019 08:26)
- Это NUC976, там нет DMA на SPI - LightElf(19.02.2019 13:57)
- uname -a и откуда у вас ядро? я подключал к nuc976 флешку на второй канал, вполне работала, но очень медленно - jury093(20.02.2019 11:08, )