armv8: fsl-layerscape: Update README.falcon for compression
[oweals/u-boot.git] / arch / arm / cpu / armv8 / fwcall.c
index 7dfd27002916ffa2d27e02a4d737d486bd102652..0ba3dad8cc5e70f1640a5c9129ed898f588e04a9 100644 (file)
@@ -1,7 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0+
 /**
  * (C) Copyright 2014, Cavium Inc.
+ * (C) Copyright 2017, Xilinx Inc.
  *
- * SPDX-License-Identifier:    GPL-2.0+
 **/
 
 #include <asm-offsets.h>
@@ -114,6 +115,22 @@ void __noreturn __efi_runtime 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)
 {
@@ -126,14 +143,12 @@ void __efi_runtime EFIAPI efi_reset_system(
                        efi_status_t reset_status,
                        unsigned long data_size, void *reset_data)
 {
-       switch (reset_type) {
-       case EFI_RESET_COLD:
-       case EFI_RESET_WARM:
+       if (reset_type == EFI_RESET_COLD ||
+           reset_type == EFI_RESET_WARM ||
+           reset_type == EFI_RESET_PLATFORM_SPECIFIC) {
                psci_system_reset();
-               break;
-       case EFI_RESET_SHUTDOWN:
+       } else if (reset_type == EFI_RESET_SHUTDOWN) {
                psci_system_off();
-               break;
        }
 
        while (1) { }