armv8: mmu: fix page table mapping
[oweals/u-boot.git] / arch / arm / cpu / armv8 / fwcall.c
index 64539f9cc61f03022d7114e2f5566dcca654f0b8..c2202675366f37d3853f1ef3e5d4d11d2b4a3e08 100644 (file)
@@ -1,5 +1,6 @@
 /**
  * (C) Copyright 2014, Cavium Inc.
+ * (C) Copyright 2017, Xilinx Inc.
  *
  * SPDX-License-Identifier:    GPL-2.0+
 **/
@@ -18,7 +19,7 @@
  * x0~x7: input arguments
  * x0~x3: output arguments
  */
-static void EFI_RUNTIME_TEXT hvc_call(struct pt_regs *args)
+static void __efi_runtime hvc_call(struct pt_regs *args)
 {
        asm volatile(
                "ldr x0, %0\n"
@@ -52,7 +53,7 @@ static void EFI_RUNTIME_TEXT hvc_call(struct pt_regs *args)
  * x0~x3: output arguments
  */
 
-void EFI_RUNTIME_TEXT smc_call(struct pt_regs *args)
+void __efi_runtime smc_call(struct pt_regs *args)
 {
        asm volatile(
                "ldr x0, %0\n"
@@ -82,9 +83,9 @@ void EFI_RUNTIME_TEXT smc_call(struct pt_regs *args)
  * use PSCI on U-Boot running below a hypervisor, please detect
  * this and set the flag accordingly.
  */
-static const EFI_RUNTIME_DATA bool use_smc_for_psci = true;
+static const __efi_runtime_data bool use_smc_for_psci = true;
 
-void __noreturn EFI_RUNTIME_TEXT psci_system_reset(void)
+void __noreturn __efi_runtime psci_system_reset(void)
 {
        struct pt_regs regs;
 
@@ -99,7 +100,7 @@ void __noreturn EFI_RUNTIME_TEXT psci_system_reset(void)
                ;
 }
 
-void __noreturn EFI_RUNTIME_TEXT psci_system_off(void)
+void __noreturn __efi_runtime psci_system_off(void)
 {
        struct pt_regs regs;
 
@@ -114,6 +115,22 @@ void __noreturn EFI_RUNTIME_TEXT psci_system_off(void)
                ;
 }
 
+#ifdef CONFIG_CMD_POWEROFF
+int do_poweroff(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+{
+       puts("poweroff ...\n");
+
+       udelay(50000); /* wait 50 ms */
+
+       disable_interrupts();
+
+       psci_system_off();
+
+       /*NOTREACHED*/
+       return 0;
+}
+#endif
+
 #ifdef CONFIG_PSCI_RESET
 void reset_misc(void)
 {
@@ -121,7 +138,7 @@ void reset_misc(void)
 }
 
 #ifdef CONFIG_EFI_LOADER
-void EFI_RUNTIME_TEXT EFIAPI efi_reset_system(
+void __efi_runtime EFIAPI efi_reset_system(
                        enum efi_reset_type reset_type,
                        efi_status_t reset_status,
                        unsigned long data_size, void *reset_data)