/raspberrypi

Raspberry Pi bare metal code for qemu raspi2 and raspi3.

Primary LanguageC

Raspberry Pi bare metal code.

qemu-raspi2

name
framebuffer01 draw framebuffer
int01 uart rx interrupt handling
timer01 arm generic timer every 1 secnod

qemu-raspi3

name
dma01 dma memory to meory
framebuffer01 draw framebuffer
int01 uart rx interrupt handling
int02 mini uart rx interrupt handling
sdhost01 sdhost initialize
sdhost02 sdhost readblock
task01 task create
task02 task switch
timer01 arm generic timer every 1 secnod
usb01 usb host : usb device detect
usb02 usb host : control transfer
usb03 usb host : enumuration

toolchain

$ sudo apt install gcc-arm-none-eabi
$ sudo apt install gcc-aarch64-linux-gnu

qemu

I use QEMU 4.2 raspi3 model and raspi2 model.

$ qemu-system-aarch64 -m 128 -M raspi3 -nographic -kernel kernel.elf
$ qemu-system-arm -m 128 -M raspi2 -nographic -kernel kernel.elf