Ports/riscv64: различия между версиями
(→Рабочий план: Добавлены sources.list) |
|||
(не показано 25 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
= | == RISC-V == | ||
RISC-V | RISC-V (читается как “risk-five”) -- [https://riscv.org/risc-v-isa архитектура процессоров с открытым набором комманд (ISA)]. ISA RISC-V имеют лицензию [https://creativecommons.org/licenses/by/4.0/ Creative Commons license (CC BY 4.0)]. Любой желающий может получить финальную версию [https://riscv.org/specifications/ спецификаций ISA], а также получить черновики разрабатываемых расширений и поучаствовать в их разработке. | ||
ISA RISC-V имеют лицензию [https://creativecommons.org/licenses/by/4.0/ Creative Commons license (CC BY 4.0)]. | |||
Любой желающий может получить финальную версию [https://riscv.org/specifications/ ISA | |||
Другая ключевая особенность архитектуры RISC-V - её расширяемость | Другая ключевая особенность архитектуры RISC-V - её расширяемость. Базовая спецификация архитектуры RISC-V включает в себя только инструкции для записи, сохранения, переходов и целочисленной арифметики. Минимальная спецификация обозначается RV32I, RV64I или RV128I ("I" означает integer) для размеров операнда 4, 8 или 16 байт соответственно. Конкретные реализации могут дополнять базовую спецификацию расширениями, как стандартными, так и специфичными для конкретного вендора или изделия. Стандартные расширения чаще всего обозначаемыми одной латинской буквой, например расширение '''M''' содержит инструкции для умножения и деления целых чисел, '''A''' -- атомарные операции и т.д. | ||
целочисленной арифметики. | На данный момент порт Linux работает со спецификацией "RV64IMAFDC"<ref>В принятой в 2019 году версии спецификации RISC-V ISA из базовых наборов инструкций были выделены расширения Zifencei и Zicsr, которые также входят в G и нужны Linux'у, но усложнять разбором ещё и этого факта вводный раздел я, пожалуй, не стану.</ref>: | ||
4, 8 или 16 байт соответственно. | |||
На данный момент порт Linux работает со спецификацией "RV64IMAFDC" | |||
* <tt>'''I'''</tt> - целочисленные базовые инструкции; | * <tt>'''I'''</tt> - целочисленные базовые инструкции; | ||
* <tt>'''M'''</tt> - умножение и деление целых чисел; | * <tt>'''M'''</tt> - умножение и деление целых чисел; | ||
* <tt>'''A'''</tt> - атомарные операции; | * <tt>'''A'''</tt> - атомарные операции; | ||
* <tt>'''F'''</tt> - | * <tt>'''F'''</tt> - числа с плавающей запятой одинарной точности; | ||
* <tt>'''D'''</tt> - | * <tt>'''D'''</tt> - числа с плавающей запятой двойной точности; | ||
* <tt>'''C'''</tt> - сжатые 16-битные инструкции. | * <tt>'''C'''</tt> - "сжатые" (16-битные) инструкции. | ||
Для удобства принято сокращение "G" == "IMAFD", то есть процессоры, поддерживаемые портом, должны реализовывать архитектуру rv64gc. | |||
Архитектура Сизифа и пакетов RPM, собранных под rv64gc, называется <tt>riscv64</tt>. | |||
== Порт Сизифа == | |||
Порт [[Sisyphus]] на архитектуру riscv64 (RV64GC) развивается с 2018 года. Поддерживается (и тестируется) работа на платформах: | |||
* [[HiFive Unmatched]] | |||
* [[HiFive Unleashed]] | |||
* Некоторые платы на SoC JH7100 ([[StarFive VisionFive v1|VisionFive v1]]) и JH7110 ([[StarFive VisionFive v2|VisionFive v2]], [[Pine64 Star64|Star64]]) | |||
* Некоторые платы на SoC [[Allwinner D1]] | |||
* [[Ports/riscv64/QEMU|QEMU]] | |||
Для этих платформ выпускаются [[Regular/riscv64|Регулярные сборки]] (см. также [[Regular]]). | |||
Также для этих платформ выпускался [[Simply Linux 10]], сейчас иногда выпускается [[Simply Linux RV]]. | |||
== Репозиторий == | |||
RPM/SRPM репозиторий можно найти по | RPM/SRPM репозиторий можно найти по ссылке: http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/ | ||
В виде sources.list для apt: | |||
rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64 Sisyphus/riscv64 classic | rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64 Sisyphus/riscv64 classic | ||
Строка 38: | Строка 47: | ||
rpm [sisyphus-riscv64] http://mirror.yandex.ru/altlinux/ports/riscv64 Sisyphus/noarch classic | rpm [sisyphus-riscv64] http://mirror.yandex.ru/altlinux/ports/riscv64 Sisyphus/noarch classic | ||
Информацию о доступных пакетах удобно смотреть здесь: https://packages.altlinux.org/ru/sisyphus_riscv64/packages/ | |||
Сборка пакетов проходит на отдельном узле [[girar]], аналогичном [[Git.alt]]. В качестве сборочных узлов сейчас используются платы SiFive [[HiFive Unmatched]]. Сборка пакетов идёт в режиме "догоняющей сборочницы": как только какое-то задание (task) проходит в основной Сизиф, специальный [[Girar/task-rerunner & recycler|робот]] создаёт аналогичное задание в <tt>sisyphus_riscv64</tt>. Это означает, что никаких специальных усилий для сборки пакетов под '''riscv64''' предпринимать не нужно: собирайте в [[Sisyphus]]. Задания подтверждаются вручную, обычно в тот же день или на следующий день. Если какого-то пакета не хватает (мы собираем не всё подряд) или он долго не обновляется, свяжитесь с '''iv@'''. | |||
В очень редких случаях (например, для специфичного riscv64-only софта или для ядер с поддержкой какого-нибудь интересного железа) доступ к girar'у для sisyphus_riscv64 может всё же понадобиться. Его может получить любой участник [[Team]] -- попросите '''iv@''' и как-нибудь доверенно передайте ему свой ssh-ключ. Правда, ресурсов там довольно немного, так что умеренность в задачах приветствуется. | |||
== Как сообщить об ошибке == | |||
Сообщения об ошибках принимаются по адресу https://bugzilla.altlinux.org/ (см. [[BugTracking]]). | |||
* | * если проблема в пакете, выбирайте продукт Sisyphus, компонент соответсвующий имени пакета, платформа riscv64. | ||
* | * если проблема в сборке или образе, выбирайте продукт Regular, компонент, сответствующий DE по умолчанию, платформа riscv64. | ||
'''ВАЖНО''': | |||
* указать <tt>Platform: riscv64</tt> (справа в верхней части формы создания бага) | |||
* назначить ошибку на [[Участник:IvanMelnikov|iv@altlinux.org]] | |||
См. также [[BugTracking/BugzillaMiniHowto|Краткое пособие по использованию Bugzilla]] | |||
== Полезные ссылки == | |||
== Полезные ссылки | |||
* [http://0x1.tv/20180929H OSSDEVCONF-2018] | |||
* [https://github.com/dalegr/riscv-bbl-utils утилиты для Berkeley bootloader] для слияния ядра Linux в bbl.bin с dummy payload. | * [https://github.com/dalegr/riscv-bbl-utils утилиты для Berkeley bootloader] для слияния ядра Linux в bbl.bin с dummy payload. | ||
* [https://riscv.org/specifications RISC-V ISA] | * [https://riscv.org/specifications RISC-V ISA] | ||
* [https://www.sifive.com/blog/all-aboard-part-0-introduction All Aboard] -- интересный блог Палмера Даббелта о RISC-V, toolchain, и т.д. | * [https://www.sifive.com/blog/all-aboard-part-0-introduction All Aboard] -- интересный блог Палмера Даббелта о RISC-V, toolchain, и т.д. | ||
* [http://www.osp.ru/os/2020/02/13055471/ RISC-V: стандарт, изменивший мир микропроцессоров] | |||
* [http://www.osp.ru/os/2020/02/13055471/ RISC-V: стандарт, изменивший мир микропроцессоров ] | |||
* [http://habr.com/ru/post/234047/ Наборы команд должны быть свободны: доводы за RISC-V] | * [http://habr.com/ru/post/234047/ Наборы команд должны быть свободны: доводы за RISC-V] | ||
Строка 206: | Строка 77: | ||
[[en:Ports/riscv64]] | [[en:Ports/riscv64]] | ||
{{Category navigation|title=Ports|category=Ports|sortkey=*}} | {{Category navigation|title=Ports|category=Ports|sortkey=*}} | ||
{{Category navigation|title=RISC-V|category=RISC-V|sortkey=*}} |
Текущая версия от 18:16, 4 апреля 2024
RISC-V
RISC-V (читается как “risk-five”) -- архитектура процессоров с открытым набором комманд (ISA). ISA RISC-V имеют лицензию Creative Commons license (CC BY 4.0). Любой желающий может получить финальную версию спецификаций ISA, а также получить черновики разрабатываемых расширений и поучаствовать в их разработке.
Другая ключевая особенность архитектуры RISC-V - её расширяемость. Базовая спецификация архитектуры RISC-V включает в себя только инструкции для записи, сохранения, переходов и целочисленной арифметики. Минимальная спецификация обозначается RV32I, RV64I или RV128I ("I" означает integer) для размеров операнда 4, 8 или 16 байт соответственно. Конкретные реализации могут дополнять базовую спецификацию расширениями, как стандартными, так и специфичными для конкретного вендора или изделия. Стандартные расширения чаще всего обозначаемыми одной латинской буквой, например расширение M содержит инструкции для умножения и деления целых чисел, A -- атомарные операции и т.д.
На данный момент порт Linux работает со спецификацией "RV64IMAFDC"[1]:
- I - целочисленные базовые инструкции;
- M - умножение и деление целых чисел;
- A - атомарные операции;
- F - числа с плавающей запятой одинарной точности;
- D - числа с плавающей запятой двойной точности;
- C - "сжатые" (16-битные) инструкции.
Для удобства принято сокращение "G" == "IMAFD", то есть процессоры, поддерживаемые портом, должны реализовывать архитектуру rv64gc.
Архитектура Сизифа и пакетов RPM, собранных под rv64gc, называется riscv64.
Порт Сизифа
Порт Sisyphus на архитектуру riscv64 (RV64GC) развивается с 2018 года. Поддерживается (и тестируется) работа на платформах:
- HiFive Unmatched
- HiFive Unleashed
- Некоторые платы на SoC JH7100 (VisionFive v1) и JH7110 (VisionFive v2, Star64)
- Некоторые платы на SoC Allwinner D1
- QEMU
Для этих платформ выпускаются Регулярные сборки (см. также Regular).
Также для этих платформ выпускался Simply Linux 10, сейчас иногда выпускается Simply Linux RV.
Репозиторий
RPM/SRPM репозиторий можно найти по ссылке: http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64/Sisyphus/
В виде sources.list для apt:
rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64 Sisyphus/riscv64 classic # rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64 Sisyphus/riscv64 debuginfo rpm [sisyphus-riscv64] http://ftp.altlinux.org/pub/distributions/ALTLinux/ports/riscv64 Sisyphus/noarch classic
Зеркало на Яндексе (скачивается быстрее, иногда отстаёт):
rpm [sisyphus-riscv64] http://mirror.yandex.ru/altlinux/ports/riscv64 Sisyphus/riscv64 classic # rpm [sisyphus-riscv64] http://mirror.yandex.ru/altlinux/ports/riscv64 Sisyphus/riscv64 debuginfo rpm [sisyphus-riscv64] http://mirror.yandex.ru/altlinux/ports/riscv64 Sisyphus/noarch classic
Информацию о доступных пакетах удобно смотреть здесь: https://packages.altlinux.org/ru/sisyphus_riscv64/packages/
Сборка пакетов проходит на отдельном узле girar, аналогичном Git.alt. В качестве сборочных узлов сейчас используются платы SiFive HiFive Unmatched. Сборка пакетов идёт в режиме "догоняющей сборочницы": как только какое-то задание (task) проходит в основной Сизиф, специальный робот создаёт аналогичное задание в sisyphus_riscv64. Это означает, что никаких специальных усилий для сборки пакетов под riscv64 предпринимать не нужно: собирайте в Sisyphus. Задания подтверждаются вручную, обычно в тот же день или на следующий день. Если какого-то пакета не хватает (мы собираем не всё подряд) или он долго не обновляется, свяжитесь с iv@.
В очень редких случаях (например, для специфичного riscv64-only софта или для ядер с поддержкой какого-нибудь интересного железа) доступ к girar'у для sisyphus_riscv64 может всё же понадобиться. Его может получить любой участник Team -- попросите iv@ и как-нибудь доверенно передайте ему свой ssh-ключ. Правда, ресурсов там довольно немного, так что умеренность в задачах приветствуется.
Как сообщить об ошибке
Сообщения об ошибках принимаются по адресу https://bugzilla.altlinux.org/ (см. BugTracking).
- если проблема в пакете, выбирайте продукт Sisyphus, компонент соответсвующий имени пакета, платформа riscv64.
- если проблема в сборке или образе, выбирайте продукт Regular, компонент, сответствующий DE по умолчанию, платформа riscv64.
ВАЖНО:
- указать Platform: riscv64 (справа в верхней части формы создания бага)
- назначить ошибку на iv@altlinux.org
См. также Краткое пособие по использованию Bugzilla
Полезные ссылки
- OSSDEVCONF-2018
- утилиты для Berkeley bootloader для слияния ядра Linux в bbl.bin с dummy payload.
- RISC-V ISA
- All Aboard -- интересный блог Палмера Даббелта о RISC-V, toolchain, и т.д.
- RISC-V: стандарт, изменивший мир микропроцессоров
- Наборы команд должны быть свободны: доводы за RISC-V
- ↑ В принятой в 2019 году версии спецификации RISC-V ISA из базовых наборов инструкций были выделены расширения Zifencei и Zicsr, которые также входят в G и нужны Linux'у, но усложнять разбором ещё и этого факта вводный раздел я, пожалуй, не стану.