Learning operating system development using Linux kernel and Raspberry Pi

View on GitHub

2.3: Exercises

  1. Instead of jumping directly from EL3 to EL1, try to get to EL2 first and only then switch to EL1.
  2. One issue that I ran into when working on this lesson was that if FP/SIMD registers are used then everything works well at EL3, but as soon as you get to EL1 print function stops working. This was the reason why I’ve added -mgeneral-regs-only parameter to the compiler options. Now I want you to remove this parameter and reproduce this behavior. Next, you can use objdump tool to see how exactly gcc make use of FP/SIMD registers in the absence of -mgeneral-regs-only flag. Finally, I want you to use ‘cpacr_el1’ to allow using FP/SIMD registers.
  3. Adapt lesson 02 to run on qemu. Check this issue for reference.
Previous Page

2.2 Processor initialization: Linux

Next Page

3.1 Interrupt handling: RPi OS