Skip to content

ytakano/baremetalisp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

baremetalisp

CI

demo

Serial Console

  • baud rate: 115200
  • no parity
  • 1 stop bit
$ screen /dev/tty.usbserial-0001 115200
ctrl-a d (detach)
$ screen -r (attach)
ctrl-a k (kill)

Dependencies

Trusted Firmware binary

and customized BL31 image, which is compiled from ATF

$ make PLAT=sun50i_a64 SPD=opteed bl31

BLisp

A statically typed programming language.

synctools

A library for synchronization.

memalloc

A memory allocator crate, which uses buddy and slab allocator.

Boot Image

Under Construction

SCP

$ export PATH="$PATH:/path/to/or1k-linux-musl-cross/bin/
$ git clone https://github.com/crust-firmware/crust
$ cd crust
$ export CROSS_COMPILE=or1k-linux-musl-
$ make pinephone_defconfig
$ make scp
$ ls build/scp/scp.bin
scp.bin

u-boot

For x86-64.

$ export CROSS_COMPILE=aarch64-linux-gnu-
$ export ARCH=arm64
$ git clone https://gitlab.com/pine64-org/u-boot.git
$ cd u-boot
$ git fetch origin v2021.04
$ git checkout v2021.04
$ cp /path/to/bl31.bin .
$ cp /path/to/scp.bin .
$ make distclean
$ make pinephone_defconfig
$ make all

Run on Qemu

Install qemu.

$ brew install qemu

Compile and run.

$ cd kernel
$ make BSP=raspi3
$ qemu-system-aarch64 -M raspi3b -kernel kernel8.img -serial stdio