Примечания к выпуску¶
1.2¶
Новый функционал¶
Реализована поддержка системного вызова getrandom().
Изменены настройки кэш-памяти DSP:
Отключена программная предвыборка кэш-памяти L1 из-за конфликтов и низкой производительности.
Размер предвыборки для кэш-памяти L1 увеличен с 8 строк до 64 строк.
Граница предвыборки изменена с 4 КБ до 2 МБ.
Справочно: скорость копирования из DDR в DDR (memcpy()) выросла с 1260 МБ/c до 2280 МБ/с на MCom-03 и с 1400 МБ/с до 3080 МБ/c для RoboDeus (по результатам запуска бенчмарка tinymembench).
Реализована поддержка отображения произвольных областей физической памяти в адресное пространство DSP с помощью системных вызовов pmmap() и pmunmap().
Добавлена поддержка штатного завершения программы DSP при вызове функции exit().
Обновления¶
Из исходных кодов elcore50/km удален драйвер QLIC, для работы драйвера требуется ядро Linux:
sha: d566883f705928b0812cea980fc8a03e4f8a771f или выше для RoboDeus
sha: 1b83066b936c2a9bedcb040041fd15648bcf2dd7 или выше для MCom-03
Исправления ошибок¶
В драйвере DSP исправлены ошибки установки частоты devfreq.
Исправлена ошибка возврата неправильного кода возврата в случае успешного завершения функции eclCreateCommandQueueWithProperties().
В системный вызов sbrk добавлена проверка выхода за пределы кучи при выделении динамической памяти.
Исправлена ошибка в определении размера VDMA-пересылок.
1.1¶
Новый функционал¶
Добавлена возможность изменения частоты DSP в Linux через sysfs .
Реализована поддержка запуска кернелов в режиме spawn/sync, который позволяет выполнять распараллеливание DSP-программы на нескольких DSP, используя специальные функции.
Исправления ошибок¶
Убраны условия возникновения гонок между драйверами драйверами elcore50 и qlic путем добавления явной зависимости.
Исправлены ошибки при инициализации прерываний в драйвере elcore50.
Для MCom-03 больше не выполняется установка сброса в момент выгрузки драйвера DSP с целью обхода бага с зависанием обращений DSP к своим регистрам после снятия сброса DSP отдельно от подсистемы SDR. Снятие сброса DSP осуществляется при первой загрузке драйвера.