AArch64 EL2 hypervisor for QEMU virt that boots at EL2
1

Configure Feed

Select the types of activity you want to include in your feed.

Refine panic output with architectural register context

+11
+10
core/panic.c
··· 4 4 #include "hv/uart.h" 5 5 #include "hv/vcpu.h" 6 6 7 + void panic_dump_value(const char *name, uint64_t value) 8 + { 9 + uart_puts("panic "); 10 + uart_puts(name); 11 + uart_puts("="); 12 + uart_put_hex64(value); 13 + uart_puts("\n"); 14 + } 15 + 7 16 void panic_with_code(const char *reason, uint64_t code) 8 17 { 9 18 struct log_event ev; ··· 35 44 uart_puts(" current_el="); 36 45 uart_put_dec64(arch_current_el()); 37 46 uart_puts("\n"); 47 + panic_dump_value("code", code); 38 48 arch_dump_el2_state(); 39 49 vcpu_dump(vcpu_current()); 40 50 uart_puts("recent log:\n");
+1
include/hv/panic.h
··· 5 5 6 6 void panic(const char *reason) __attribute__((noreturn)); 7 7 void panic_with_code(const char *reason, uint64_t code) __attribute__((noreturn)); 8 + void panic_dump_value(const char *name, uint64_t value); 8 9 9 10 #define BUG_ON(cond) do { if (cond) { panic("BUG_ON: " #cond); } } while (0) 10 11