На днях мы писали о том, как начать работу со встраиваемой Linux-системой на RISC-V в эмуляторе QEMU, и отметили, что поддержка RISC-V в Linux в настоящее время стоит довольно дорого.
Мы также упоминали, что работали над переносом uCLinux на процессор Kendryte K210 с архитектурой RISC-V на таких платах, как плата Sipeed Maix. Процессор поставляется только с 8 МБ ОЗУ и не имеет MMU (блок управления памятью), поэтому то, что вы сможете сделать на плате, будет ограничено, среда рабочего стола явно невозможна на платформе
Поддержка NOMMU также требует дополнительной работы, и в Linux 5.4 мы увидели только изменения: «Модификации чипа SiFive PLIC IRQ, в рамках подготовки к M-режиму Linux».
Слайд, приведенный выше, взят из презентации “RISC-V NOMMU и M-режим Linux” Дэмиена Ле Моала (Damien Le Moal), представителя компании Western Digital, продемонстрированной на конференции Linux Plumbers Conference 2019 в сентябре этого года. Слайд объясняет, что поддержка M-режима лучше подходит для режима NOMMU, поскольку возможен прямой доступ к аппаратному обеспечению, тогда как S-режим является синонимом «иметь MMU». Работа в M-режиме также снижает издержки RISC-V SBI (бинарный интерфейс супервизора) и приносит пользу обычному S-режиму.
Если прокрутить до конца презентации, мы также увидим журнал загрузки, показывающий загрузку Linux 5.1 в минимальную корневую файловую систему с Busybox на плате Sipeed MAIX Go с процессором Kendryte K210 с оперативной памятью 6 + 2 МБ, которая продается по цене чуть более 40 долларов США. в составе комплекта с камерой и дисплеем.
В конце концов, плата будет поддерживаться и в mainline Linux, так как в Linux 5.5 добавлена поддержка RISC-V NOMMU:
ниже приведен набор команд для поддержки режима Nomm на RISC-V. На данный момент этот набор команд работает только в qemu с платформой qemu-virt. Дэмиен также смог получить ядро на основе этого дерева с дополнительными драйверами для работы на Kendryte KD210, но некоторое время потребуется для cleanup и upstream.
Git дерево доступно здесь:
git: //git.infradead.org/users/hch/riscv.git riscv-nommu.5
Есть два новых варианта конфигурации для включения поддержки RISC-V NOMMU: CONFIG_RISCV_M_MODE для переключения между M-режимом и S-режимом и CONFIG_RISCV_SBI для полного отключения/включения SBI.
Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.
Оригинал статьи вы можете прочитать здесь.