diff options
Diffstat (limited to 'purgatory')
-rw-r--r-- | purgatory/arch/arm64/purgatory-arm64.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/purgatory/arch/arm64/purgatory-arm64.c b/purgatory/arch/arm64/purgatory-arm64.c index fe50fcf..b4d8578 100644 --- a/purgatory/arch/arm64/purgatory-arm64.c +++ b/purgatory/arch/arm64/purgatory-arm64.c @@ -5,15 +5,30 @@ #include <stdint.h> #include <purgatory.h> +/* Symbols set by kexec. */ + +uint8_t *arm64_sink __attribute__ ((section ("data"))); +extern void (*arm64_kernel_entry)(uint64_t, uint64_t, uint64_t, uint64_t); +extern uint64_t arm64_dtb_addr; + void putchar(int ch) { - /* Nothing for now */ + if (!arm64_sink) + return; + + *arm64_sink = ch; + + if (ch == '\n') + *arm64_sink = '\r'; } void post_verification_setup_arch(void) { + printf("purgatory: booting kernel now\n"); } void setup_arch(void) { + printf("purgatory: entry=%lx\n", (unsigned long)arm64_kernel_entry); + printf("purgatory: dtb=%lx\n", arm64_dtb_addr); } |