The boot starts at head.S , on GLOBAL(start) label, where the EFI header (used by linux chad bootloaders) is defined, than the execution flow as follows:

  1. head.S :: real_start → launch → start_xen
  2. setup.c :: start_xen → switch_stack_and_jump
  3. current.h :: switch_stack_and_jump → init_done
  4. setup.c :: init_done → startup_cpu_idle_loop
  5. domain.c :: startup_cpu_idle_loop → reset_stack_and_jump
  6. domain.c :: reset_stack_and_jump → idle_loop
  7. domain.c :: idle_loop

🌱 Back to Garden