RISC-V boot deep dive (Boot FLOW from 0 to Linux Kernel)

Make RISC-V boot like rest of industry U-boot for embedded, UEFI for consumer and servers

  • Deep dive on RISC-V boot flow started from openSBI.

    • Mode switching (U/S/H/M), SBI calls, platform ops .. , etc.
    • Embedded boot sprawl: U-boot vs edk2/uEFI with GRUB2
  • The latest code base of OpenSBI follow-up.

  • EDKII (edk2) support status on RISC-V: uEFI support to run GRUB2 or load kernel directly as EFI STUB add-emoji

  • Trace RISC-V’s efistub implementation in LINUX.

  • RISC-V ISA study.

Resources

Linux kernel EFI boot Stub

Soft RISC-V by QEMU

Berry inspiration

Embedded Linux Boot Process

Looking for hackers with the skills:

risc-v u-boot grub2 linux

This project is part of:

Hack Week 20

Activity

  • over 1 year ago: nika100s joined this project.
  • about 2 years ago: Aalaalalaaa left this project.
  • about 2 years ago: Aalaalalaaa joined this project.
  • over 4 years ago: Natiku started this project.
  • over 4 years ago: Natiku left this project.
  • over 4 years ago: Natiku added keyword "risc-v" to this project.
  • over 4 years ago: Natiku added keyword "u-boot" to this project.
  • over 4 years ago: Natiku added keyword "grub2" to this project.
  • over 4 years ago: Natiku added keyword "linux" to this project.
  • over 4 years ago: Natiku started this project.
  • over 4 years ago: Natiku left this project.
  • over 4 years ago: iivanov liked this project.
  • over 4 years ago: Natiku started this project.
  • over 4 years ago: Natiku liked this project.
  • over 4 years ago: clin originated this project.

  • Comments

    Be the first to comment!

    Similar Projects

    Create openSUSE images for Arm/RISC-V boards by avicenzi

    Project Description

    Create openSUSE images (or test generic EFI images) for Arm and/or RISC-V boards that are not yet supported.

    Goal for this Hackweek

    Create bootable images of Tumbleweed for SBCs that currently have no images available or are untested.

    Consider generic EFI images where possible, as some boards can hold a bootloader.

    Document in the openSUSE Wiki how to flash and use the image for a given board.

    Boards that I have around and there are no images:

    • Rock 3B
    • Nano PC T3 Plus
    • Lichee RV D1
    • StartFive VisionFive (has some image needs testing)

    Hack Week 22

    Hack Week 21

    Resources


    pudc - A PID 1 process that barks to the internet by mssola

    Description

    As a fun exercise in order to dig deeper into the Linux kernel, its interfaces, the RISC-V architecture, and all the dragons in between; I'm building a blog site cooked like this:

    • The backend is written in a mixture of C and RISC-V assembly.
    • The backend is actually PID1 (for real, not within a container).
    • We poll and parse incoming HTTP requests ourselves.
    • The frontend is a mere HTML page with htmx.

    The project is meant to be Linux-specific, so I'm going to use io_uring, pidfs, namespaces, and Linux-specific features in order to drive all of this.

    I'm open for suggestions and so on, but this is meant to be a solo project, as this is more of a learning exercise for me than anything else.

    Goals

    • Have a better understanding of different Linux features from user space down to the kernel internals.
    • Most importantly: have fun.

    Resources


    pudc - A PID 1 process that barks to the internet by mssola

    Description

    As a fun exercise in order to dig deeper into the Linux kernel, its interfaces, the RISC-V architecture, and all the dragons in between; I'm building a blog site cooked like this:

    • The backend is written in a mixture of C and RISC-V assembly.
    • The backend is actually PID1 (for real, not within a container).
    • We poll and parse incoming HTTP requests ourselves.
    • The frontend is a mere HTML page with htmx.

    The project is meant to be Linux-specific, so I'm going to use io_uring, pidfs, namespaces, and Linux-specific features in order to drive all of this.

    I'm open for suggestions and so on, but this is meant to be a solo project, as this is more of a learning exercise for me than anything else.

    Goals

    • Have a better understanding of different Linux features from user space down to the kernel internals.
    • Most importantly: have fun.

    Resources