diff options
author | Matthias Brugger <mbrugger@suse.com> | 2020-10-02 15:42:48 +0200 |
---|---|---|
committer | Simon Horman <horms@verge.net.au> | 2020-10-23 11:42:56 +0200 |
commit | 1e9de8e72054d255d6e90304aab38750a82199ee (patch) | |
tree | 4b4dc16e7789dcfb1405c0fd3214d817d1a96849 /purgatory | |
parent | 70cca8228435e9cbd88c012f22b9c917a39b1535 (diff) |
arm64: Add purgatory printing
Add option to allow purgatory printing on arm64 hardware
by passing the console name which should be used.
Based on a patch by Geoff Levand.
Signed-off-by: Matthias Brugger <mbrugger@suse.com>
Acked-by: Bhupesh Sharma <bhsharma@redhat.com>
Signed-off-by: Simon Horman <horms@verge.net.au>
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); } |