Booting Raspberry Pi 3

From OSDev.wiki
Revision as of 17:34, 14 April 2018 by osdev>Surafel911 (Created page with " This is a tutorial on bare-metal OS development on the AArch64 architecture. This article oriented to the Raspberry Pi 3, but is aimed to be as device agnostic as possible. ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This is a tutorial on bare-metal OS development on the AArch64 architecture. This article oriented to the Raspberry Pi 3, but is aimed to be as device agnostic as possible.

This is the author's very first ARM system and wiki page. I learn as I write and will continue to develop this page once I feel comfortable enough at the subjet to share.

Preamble

This article assumes that you have all of the necessary materials needed to begin developing on your respective hardware. Other assumptions are that you are comfortable with low-level programming using C/C++ and the GNU Make buildsystem. Such details are not in the scope of this article and must be done before proceeding to the next steps.

This article is also intended for beginner users who want to get set up developing on the architecture, not for those who want to develop a full OS. Although some insight can be derived for the advanced audience. This article also assumes that you are comfortable enough about OS development and hardware to not be confused.

Preperations

Cross Compiler

A bare-metal AArch64 toolchain is available on the AUR for installation. The links are provided here as well as a link to the publisher of the toolchain.

https://www.linaro.org/downloads/

https://aur.archlinux.org/packages/aarch64-elf-gcc-linaro-bin/

https://aur.archlinux.org/packages/aarch64-elf-newlib-linaro-bin/