Skip to content
@angry-goose-initiative

The Angry Goose Initiative

A RISC-V CPU Journey

The Angry Goose Initiative

Take me to the wiki!

So what is AGI?

The goal of the project is to create a softcore RISC-V CPU that’s capable of running the Linux kernel!

IRVE is the first step on our journey as a fully-Linux-capable RISC-V emulator! The plan is to use it to better understand the RISC-V architecture (with a focus on Volume 2 in particular).

Here's a YouTube video of me (JZJ) using Linux on the emulator. Yes, IRVE can in fact emulate itself!

If you're interested messing around with the project, this is a great place to start!

You can also run Linux yourself if you're interested!

We're now wrapping up the emulator and are currently in the design phase of our SystemVerilog hardware implementation called LETC!

It will be a 6-stage in-order pipelined design, targeting the Cora Z7 devboard containing a Zync 7000 FPGA. It will have TLBs, caches, a hardware page table walker, and will accesses peripherals and memory over an AXI interconnect of our own making!

Exciting stuff! We'll be using everything we've learned to make this a performant, and fully-Linux-capable RISC-V implementation!

Our RISC-V software, including test programs, experiments, C and C++ runtime environments, bootloaders, and an SBI implementation, can be found in the RVSW repository.

We try to keep these programs as hardware-agnostic as possible, allowing IRVE and LETC to specify how things should be linked together and how hardware should be accessed.

You're welcome to use it as well in your own project: just modify the example config!

Conductor is the glue that will allow LETC to chug along with ease! It is in two parts: a CLI frontend running on a host computer, and a component running on the ARM core in the Zync 7000 FPGA.

It will facilitate loading test binaries and kernels into memory for LETC, managing PL clocks and resets, and coordinating I/O between the host and our our design. Lots of work ahead on this front!

Linux-y Stuffs!

We also maintain a fork of the kernel here, and have tools to automate setting up a Linux image for AGI projects in the build-linux repo.

Pronunciation

IRVE and RVSW both have each letter sounded out.

LETC on the other hand is pronounced "let-see" or "letsy"!

Conductor is, well, just the regular word lol.

Acronyms

IRVE stands for the Inextensible RISC-V Emulator.

LETC stands for the Little Engine That Could (run Linux)!

RVSW stands for RISC-V Software. The more boring one of the bunch in terms of naming

Conductor, not being a four-letter-acronym, is new territory for us.

Pinned Loading

  1. irve irve Public

    The Inextensible RISC-V Emulator

    C++ 7

  2. letc letc Public

    The Little Engine That Could (Run Linux) :)

    SystemVerilog 5

  3. rvsw rvsw Public

    Hardware-Agnostic Collection of RISC-V Programs, Testfiles, And More

    Assembly 2

  4. conductor conductor Public

    Software to help out and control LETC

    C++

Repositories

Showing 10 of 10 repositories
  • irve Public

    The Inextensible RISC-V Emulator

    angry-goose-initiative/irve’s past year of commit activity
    C++ 7 MIT 0 1 0 Updated Aug 6, 2024
  • agi_utils Public

    Useful utilities for AGI projects

    angry-goose-initiative/agi_utils’s past year of commit activity
    C++ 1 MIT 0 1 0 Updated Aug 6, 2024
  • letc Public

    The Little Engine That Could (Run Linux) :)

    angry-goose-initiative/letc’s past year of commit activity
    SystemVerilog 5 MIT 0 1 0 Updated May 7, 2024
  • build-linux Public

    Convenience environment to build Linux and initramfs tools for AGI projects!

    angry-goose-initiative/build-linux’s past year of commit activity
    Makefile 0 MIT 0 1 0 Updated Apr 30, 2024
  • wiki Public

    AGI Wiki

    angry-goose-initiative/wiki’s past year of commit activity
    0 0 35 0 Updated Apr 10, 2024
  • rvsw Public

    Hardware-Agnostic Collection of RISC-V Programs, Testfiles, And More

    angry-goose-initiative/rvsw’s past year of commit activity
    Assembly 2 MIT 0 1 0 Updated Mar 23, 2024
  • conductor Public

    Software to help out and control LETC

    angry-goose-initiative/conductor’s past year of commit activity
    C++ 0 MIT 0 1 0 Updated Mar 23, 2024
  • angry-goose-initiative/.github’s past year of commit activity
    0 0 1 0 Updated Mar 9, 2024
  • busybox Public

    Busybox fork for AGI Projects :)

    angry-goose-initiative/busybox’s past year of commit activity
    C 0 0 1 0 Updated Mar 9, 2024
  • linux Public Forked from torvalds/linux

    Linux kernel source tree (with tweaks for AGI projects)

    angry-goose-initiative/linux’s past year of commit activity
    C 0 55,880 1 0 Updated Mar 9, 2024