arm64: head.S: document the use of callee saved registers
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 31 Aug 2016 11:05:17 +0000 (12:05 +0100)
committerWill Deacon <will.deacon@arm.com>
Fri, 2 Sep 2016 10:47:51 +0000 (11:47 +0100)
Now that the only remaining occurrences of the use of callee saved
registers are on the primary boot path, add a comment to the code
which register is used for what.

Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/head.S

index 29a734ee0770261a8bba710d95553ed89db5471d..427f6d3f084c30aeb35908155aae3af9aacadf2e 100644 (file)
@@ -208,6 +208,16 @@ efi_header_end:
 
        __INIT
 
+       /*
+        * The following callee saved general purpose registers are used on the
+        * primary lowlevel boot path:
+        *
+        *  Register   Scope                      Purpose
+        *  x21        stext() .. start_kernel()  FDT pointer passed at boot in x0
+        *  x23        stext() .. start_kernel()  physical misalignment/KASLR offset
+        *  x28        __create_page_tables()     callee preserved temp register
+        *  x19/x20    __primary_switch()         callee preserved temp registers
+        */
 ENTRY(stext)
        bl      preserve_boot_args
        bl      el2_setup                       // Drop to EL1, w0=cpu_boot_mode