Rust seL4 toy system built on ferros for the imx6 sabrelite platform

Overview

Rust seL4 toy system built on ferros for the imx6 sabrelite platform

Getting Started

Dependencies

# Add the extracted toolchain's bin directory to your PATH
wget https://releases.linaro.org/components/toolchain/binaries/7.4-2019.02/arm-linux-gnueabihf/gcc-linaro-7.4.1-2019.02-i686_arm-linux-gnueabihf.tar.xz

# Might need to manually install version 6.1.0
sudo apt install qemu-system-arm

# Install seL4 python deps
# https://github.com/seL4/seL4/blob/4d0f02c029560cae0e8d93727eb17d58bcecc2ac/tools/python-deps/setup.py
pip3 install --user setuptools sel4-deps

rustup target add armv7-unknown-linux-gnueabihf

cargo install --git https://github.com/auxoncorp/selfe-sys selfe-config --bin selfe --features bin --force

Buidling

./scripts/build.sh

Simulating

./scripts/simulate.sh
ELF-loader started on CPU: ARM Ltd. Cortex-A9 r0p0
  paddr=[20000000..20825037]
No DTB found!
Looking for DTB in CPIO archive...
Found dtb at 200e1254
Loaded dtb from 200e1254
   paddr=[10041000..1004bfff]
ELF-loading image 'kernel'
  paddr=[10000000..10040fff]
  vaddr=[e0000000..e0040fff]
  virt_entry=e0000000
ELF-loading image 'root-task'
  paddr=[1004c000..1047efff]
  vaddr=[10000..442fff]
  virt_entry=22eac
ELF loader relocated, continuing boot...
Bringing up 3 other cpus
Enabling MMU and paging
Jumping to kernel-image entry point...

Bootstrapping kernel
Booting all finished, dropped to user space

Bootstrapping kernel
Booting all finished, dropped to user space
TRACE: [root-task] Initializing
TRACE: [root-task] Found iomux ELF data size=2769676
TRACE: [root-task] Found persistent-storage ELF data size=2999236
TRACE: [root-task] Found console ELF data size=2895828
TRACE: [root-task] Setting up iomux driver
TRACE: [root-task] Setting up persistent-storage driver
TRACE: [root-task] Setting up console application
TRACE: [console] process started
INFO: [console] run 'telnet 0.0.0.0 8888' to connect to the console interface
TRACE: [persistent-storage] process started, storage vaddr=0x4F000 size=4096
TRACE: [iomux] process started
TRACE: [iomux] Processing request ConfigureEcSpi1
TRACE: [iomux] PAD_EIM_D17__ECSPI1_MISO
TRACE: [iomux] PAD_EIM_D18__ECSPI1_MOSI
TRACE: [iomux] PAD_EIM_D16__ECSPI1_SCLK
TRACE: [iomux] PAD_EIM_D19__GPIO3_IO19
TRACE: [persistent-storage] Configured ECSPI1 IO resp=EcSpi1Configured
TRACE: [ECSPI1] init
TRACE: [ECSPI1] ctl=0x20F1, cfg=0x0000, period=0x8000
TRACE: [ECSPI1] ctl=0x20F1, cfg=0x0000, period=0x8000
TRACE: [ECSPI1] transfer len 1 bit_len 8
TRACE: [ECSPI1] transfer len 1 bit_len 8
TRACE: [ECSPI1] ctl=0x20F1, cfg=0x0000, period=0x8000
TRACE: [ECSPI1] transfer len 1 bit_len 8
TRACE: [ECSPI1] transfer len 6 bit_len 48
TRACE: [flash] init status=(empty) MFR=0xBF ID=0x2541

Telnet to get at the console:

telnet 0.0.0.0 8888

> help
AVAILABLE ITEMS:
  foo <a> [ <b> ] [OPTIONS...]
  bar
  sub
  help [ <command> ]
You might also like...
NES emulator written in Rust

sprocketnes is an emulator for the Nintendo Entertainment System written in the Rust programming language. Its purpose is to serve as a technology dem

NES emulator in rust
NES emulator in rust

NES emulator in Rust plastic is a NES emulator built from scratch using Rust. This is a personal project for fun and to experience emulating hardware

ZX Spectrum emulator written in Rust
ZX Spectrum emulator written in Rust

rustzx ZX Spectrum emulator which I writing in rust. I develop this project just for fun and for learning the basics of computer architecture. License

Intel 8080 cpu emulator by Rust
Intel 8080 cpu emulator by Rust

i8080 i8080 is a emulator for Intel 8080 cpu. 8080 Programmers Manual 8080 opcodes [dependencies] i8080 = { git = "https://github.com/mohanson/i8080"

CHIP-8 emulator written in Rust
CHIP-8 emulator written in Rust

CHIP-8 emulator written in Rust. This is intended to be a project for gaining experience writing emulators and practice Rust.

A CHIP-8 emulator for Rust in ~350 LOC
A CHIP-8 emulator for Rust in ~350 LOC

chip8 An implementation of the CHIP-8 for Rust in ~350 lines of code. What is CHIP-8? CHIP-8 is a virtual machine (along with a supporting programming

Rudroid - Writing the World's worst Android Emulator in Rust 🦀
Rudroid - Writing the World's worst Android Emulator in Rust 🦀

Rudroid - Writing the World's worst Android Emulator in Rust 🦀 Introduction Rudroid - this might arguably be one of the worst Android emulators possi

A 6502 emulator written in Rust.

v6502 This package contains an emulator for the 6502 microprocessor. It doesn't support binary decimal (BCD) mode yet. To run the debug version: cargo

Spaghetti Chip8 Emulator Written In Rust

How to run? Command is simple: cargo run FILENAME. files are stored in the /c8games folder, use one of them. Example: cargo run INVADERS Keymap use 1

Comments
  • selfe: command not found

    selfe: command not found

    hi

    I followed the instructions you wrote step by step, but I had a problem with "selfe: command not found" error while executing the "./scripts/simulate.sh" command. please guide me.

    opened by Hamed-Kh18 1
Owner
Jon
Jon
A cross-platform sequencer that internally uses a Game Boy emulator to synthesize the sound

chiptrack chiptrack is a cross-platform sequencer that internally uses a Game Boy emulator to synthesize the sound. It uses: SixtyFPS for the UI. RBoy

Jocelyn Turcotte 26 Dec 7, 2022
NES emulator written in Rust to learn Rust

OxideNES A NES emulator in Rust. CPU should be accurate, PPU is mostly accurate, timing between the 2 is off for some corner cases and hardware qui

null 37 Nov 7, 2022
Chip8 emulator written in pure rust, using rust-sdl2 for graphics

Rust-8 chip8 emulator written in rust, using rust-sdl2 for graphics. Features Fully implemented all 35 original chip8 opcodes. This emulator does NOT

Chris Hinson 7 Dec 28, 2022
Commodore 64 emulator written in Rust

Rust64 - a C64 emulator written in Rust This is my attempt to study the Rust programming language and have fun at the same time. The goal is to presen

Krzysztof Kondrak 214 Dec 27, 2022
A Flash Player emulator written in Rust

website | demo | nightly builds | wiki Ruffle Ruffle is an Adobe Flash Player emulator written in the Rust programming language. Ruffle targets both t

Ruffle 11.2k Jan 8, 2023
A Game Boy research project and emulator written in Rust

Mooneye GB Mooneye GB is a Game Boy research project and emulator written in Rust. The main goals of this project are accuracy and documentation. Some

Joonas Javanainen 802 Dec 28, 2022
A Gameboy Emulator in Rust

RBoy A Gameboy Color Emulator written in Rust Implemented CPU All instructions correct All timings correct Double speed mode GPU Normal mode Color mod

Mathijs van de Nes 512 Dec 23, 2022
RGB (Rust Game Boy) is a simple emulator for the original game boy

RGB RGB (Rust Game Boy) is a simple emulator for the original game boy and the color game boy. Warning: This no longer compiles in the latest versions

Niven Achenjang 18 Dec 2, 2022
RustBoyAdvance-NG is a Nintendoâ„¢ Game Boy Advance emulator and debugger, written in the rust programming language.

RustBoyAdvance-NG Nintendo GameBoy Advance â„¢ emulator and debugger, written in rust. WebAssembly Demo: https://michelhe.github.io/rustboyadvance-ng/ P

MishMish 510 Dec 30, 2022
An NES emulator written in Rust

Pinky Pinky is an NES emulator written in Rust completely from scratch based only on publicly available documentation. You can run it in your Web brow

Koute 709 Dec 23, 2022