Jump to content

Aros/Platforms/RISC-V support

From Wikibooks, open books for an open world

Introduction

[edit | edit source]

RISC-V ISA (Instruction Set) aim to be an additional open hardware option to closed Arm or x86 ISAs used in most CPUs.

OpenSBI is an open-source reference implementation of the RISC-V Supervisor Binary Interface SBI specification. Firmware running at a higher privilege level that setups hardware and allows lower privilege levels, like an operating system, to call up to it for power-cycling or allocating CPU cores.

With RISC-V, userspace at ‘U’, the kernel at ‘S’ (supervisor) and the firmware at ‘M’ (machine).

RISC-V knows 3 privilege levels:

    M (machine) mode:
        highest privilege
        low-level firmware (e.g. OpenSBI), system boot, and security (e.g. secure execution environments)
        handles critical system traps
        return to lower-privileged levels using mret instruction
    S (supervisor) mode:
        intermediate privilege
        used by operating system kernels to manage memory and hardware resources
        restrict direct access to machine-level configuration registers and physical memory protection (PMP)
        uses Memory Management Unit (MMU) and virtual memory
        ecall instruction to request kernel services
        return to U-mode using sret instruction
    U (user) mode:
        lowest privilege
        cannot execute privileged instructions, access physical memory directly without virtual memory translations, or directly alter core control registers
        user space executing standard applications
        prevents incorrect or malicious application code from interfering with other running programs or the operating system itself

Thus ‘S’ and ‘VS’ refer to the kernel (where ‘VS’ relates to virtual s-mode when virtualisation is in use).

QEMU can emulate both 32-bit and 64-bit RISC-V CPUs. Use the qemu-system-riscv64 executable to simulate a 64-bit RISC-V machine, It also supports 64-bit CPUs.


Native

[edit | edit source]

Download Milk-V Titan opensbi-riscv64-contrib opensbi-riscv64-system RVA22

Youtube RISC-V boot, [],


Hardware

[edit | edit source]

processor resource, resolving crash dumps, dwmac, bootable, [],

Roughly, the order CPU in terms of newness and speed capability


64bit


  • with RVA30 in 2030?


  • with RVA23p2


  • with RVA23p1


None of the below beat an Intel N100 but closer to Pi5 in synthetic CPU benchmarks but it is getting better 


  • with Ventana Veyron V2
  • with Alibaba XuanTie T-Head C950
  • with tenstorrent TT-Ascalon
  • with Akeana


Start of AI enabled SoCs 
  • Milk-V Jupiter 2 with SpacemiT K3 64-bit RISC-V 8 X100 and 8 A100 AI npu RVA23 compliant with PowerVR B BXM-4-64 gpu proprietary driver (binary blob), Raysan Ram, realtek , kingston ufs nand, pci-e nvme, type-c psu and dp out, 1 realtek rtl8127 10GbE - Pico ITX -
  • Banana Pi BPI-SM10 (K3-Com260) with SpaceMIT K3 and proprietary driver gpu (binary blob) - lpddr5 - ufs -
  • Sipeed with Zhihe A210 8-core 4x C920 cores at up to 2.3 GHz and 4x C908 cores at 1.9 GHz 64-bit RISC-V CPU RVA23 compatible and proprietary driver gpu (binary blob) -


Lifecycle of CPUs from 1 to 1.5 years 
  • Milk-V Titan UltraRISC UR-DP1000 2x4c 64-bit UR-CP100 “RV64GCBHX” cores SoC but lacks some vector extension on a mini-itx board with dwmac ethernet - 1x PCIe x16 Slot (PCIe Gen4, 16‑lane) for gfx card -
  • Banana Pi BPI-F3 with 64bit SpaceMiT K1 8-core (2x4) RISC-V X60 (RV64GCVB) RVA22 RVV1.0 - eMMC - LPddr4 - 2 GbE - IMG BXE-2-32@819MHz proprietary driver (binary blob) - RTL8852BS WIFI6 -
  • SiFive's HiFive Premier P550 Eswin EIC7700X SoC with a quad-core SiFive P550 and Imagination Technologies' GPU IP proprietary (binary blob) -
  • Milk-V Megrez RISC-V AI PC with the ESWIN EIC7700X SoC and Imagination Technologies' GPU IP proprietary (binary blob) -
  • Orange Pi RV2 RISC-V SBC with SpaceMiT X60 8-core Ky X1 64-bit RISC-V, 2 TOPS NPU, 4 GB of LPDDR4 RAM - ethernet with PHY YT8531C-CA - Wi-Fi + Bluetooth 2-in-1 Module AP6256 - imagination bxe-2-32 gpu proprietary driver (binary blob) -


  • StarFive Star64 Model A - StarFive JH-7110 SoC combines a quad-core SiFive U74 with IM BXE-4-32-G52-2EE GPU proprietary driver (binary blob) -
  • Milk-V Mars StarFive JH7110 SoC and IMGBXE-4-32 GPU (binary blob)
  • VisionFive 2 SBC StarFive JH7110 SoC and IMGBXE-4-32 GPU (binary blob) with dwmac
  • Lichee Pi 4 A (LPi4A) is a Pi like with 64bit Pinto Alibaba T-Head TH1520 quad-core Xuantie C910 with BXM-4-64 GPU proprietary driver {binary blob} - dwmac
  • BeagleBoard BeagleV beta prototypes produced only


  • Milk-V Jupiter V1.0 V1.1 with Spacemit M1 64bit RISC-V 8 X60 cores SoC with IMG BXE-2-32 linux binary blob but 1 PCIe 2.1 x8 slot on Mini-ITX up to 16GB
  • StarFive VisionFive V1 with JH7100 64bit SoC and no 3D (binary blob) -
  • with Allwinner D1-H 1core C906 sun20i HDMI and sun8i ethernet, gfx (binary blob),
  • sifive hifive unmatched with SiFive Freedom FU540 and later U740 (FU740) SoC
  • Ox64 Single Board Computer features a Bouffalo Lab BL808 RISC-V SoC


32bit

  • HiFive1 Rev B FE310-G002 processor, which includes a 32-bit RV32IMAC core


Reference

[edit | edit source]

Risc-V Boot HaikuOS alpha builds []


Open hardware GPU, Fury GPU is still an issue for many boards but some software efforts are happening for later BXM BXE GPUs

Open Hardware GPU needs a frame buffer, Pixel processor (Fragment shader and Rasterizer) - geometry processor (aka vertex shader), output signal generator (Timing generator, scalers, interpolators).

Newer gpus have unified shaders etc