[GSoC 2022] ARM port and device tree support

Blog post by Zhihong Niu on Mon, 2022-05-30 00:00

Introduction

I am Zhihong Niu, an Computer science undergraduate student at the Xi’an Shiyou University.

This summer I will port Haiku to ARM and support some device tree-based storage device.

My mentors for this project are scottmc and David Karoly.

Here is the link to my proposal.

Project

The project actually has three goals: run Haiku on ARM(qemu-system-arm), device tree support and mass storage device driver based on device tree.

  • ARM port

    This work will be done soon, I just need to do some testing and fix bugs along the way.

    Hardware testing will begin after all work is done.

  • Device tree support

    Under x86, the address of most hardware is fixed, but for architectures such as ARM/RISCV/MIPS, the address of the device varies according to the vendor. To solve the problem of device address, the concept of device tree was introduced. The human-readable format of the device tree is .dts, the bootloader passes dtb info to the kernel at system startup. The bootloader passes dtb info encoded according to the specification to the kernel at system startup, and kernel can access the device after parsing the device information according to the specification.

    Thanks to X512, X512 has done a lot of this, I thought I could help X512 get this done.

  • Mass storage device driver based on device tree

    This is the main job for me, the goal is provide at least one mass storage solution to the ARM port of Haiku. The current plan is virtio_disk which use provided by qemu virtio.

Thread

Progress will be updated here.