Ports/riscv64: Difference between revisions

From ALT Linux Wiki
m (Add lines between "Username" and "Password")
m (+interwiki)
Line 74: Line 74:
* [http://0x1.tv/20180929H OSSDEVCONF-2018 (in Russian)]
* [http://0x1.tv/20180929H OSSDEVCONF-2018 (in Russian)]

{{Category navigation|title=Ports|category=Ports|sortkey=*}}
{{Category navigation|title=Ports|category=Ports|sortkey=*}}

Revision as of 17:30, 16 March 2019


RISC-V is an open and free instruction set architecture (ISA). The RISC-V ISA specifications are licensed under a Creative Commons license (CC BY 4.0). Anyone could get the final versions of the user-level ISA specifications and drafts of the compressed and privileged ISA specifications.

Another key feature of the RISC-V architecture that it is scalable and allows multiple implementations. The minimal specification has the commands to store and load, jump and integer arithmetic. It supports the 32-, 64- and 128-bit register sizes: "RV32I, RV64I and RV128I" ("I" stands for integer). This Linux port runs on "RV64IMAFDC" or "RV64GC" ("G" == "IMAFD"):

  • I - Integer and basic instructions
  • M - Multiply and divide
  • A - Atomic operations
  • F - Single precision floating point
  • D - Double precision floating point
  • C - Compressed instructions

At this page one could find the latest information about ALT port status for the new platform - RISC-V (RV64GC). We're building it on the HiFive Unleashed board from SiFive.

Working plan

  • The following Linux kernels have been bare metal tested on SiFive HiFive Unleashed:
  • BOOT methods:
    • Berkeley bootloader -- DONE
    • U-BOOT (link) -- DONE
  • Sisyphus port -- IN PROGRESS
    1. Toolchain -- DONE
    2. Linux Kernel -- DONE
    3. X11 -- DONE
    4. Desktop Environments -- IN PROGRESS
  • ALT image metaprofile -- IN PROGRESS
  • Girar Builder -- DONE
  • QEMU image (see below) -- DONE

The RPM/SRPM repository at here.


You've got to install QEMU with riscv64 support to run ALT RISC-V port on QEMU.

In case of the ALT x86_64 host system, for example: qemu-system-riscv-core.

These bits are needed:

After these steps are done it's time to run a kernel!

(one possibly needs to change paths to the kernel and rootfs according to a particular system)

 qemu-system-riscv64 \
  -nographic -machine virt -kernel /boot/vmlinux-4.19.6-un-def-alt3 \
  -drive file=rootfs.raw,format=raw,id=hd0 -device virtio-blk-device,drive=hd0 \
  -append "earlyprintk root=/dev/vda rootwait fastboot console=ttyS0 debug sunrpc.debug STOP=udev" \
  -netdev user,id=eth0 -device virtio-net-device,netdev=eth0

To log into the shell:

Username: root

Password: 123

Useful links:

Template:Category navigation