u-boot/include/linux
Heinrich Schuchardt 81ea00838c efi_loader: PSCI reset and shutdown
When an operating system started via bootefi tries to reset or power off
this is done by calling the EFI runtime ResetSystem(). On most ARMv8 system
the actual reset relies on PSCI. Depending on whether the PSCI firmware
resides the hypervisor (EL2) or in the secure monitor (EL3) either an HVC
or an SMC command has to be issued.

The current implementation always uses SMC. This results in crashes on
systems where the PSCI firmware is implemented in the hypervisor, e.g.
qemu-arm64_defconfig.

The logic to decide which call is needed based on the device tree is
already implemented in the PSCI firmware driver. During the EFI runtime
the device driver model is not available. But we can minimize code
duplication by merging the EFI runtime reset and poweroff code with
the PSCI firmware driver.

As the same HVC/SMC problem is also evident for the ARMv8 do_poweroff
and reset_misc routines let's move them into the same code module.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
Tested-by: Sumit Garg <sumit.garg@linaro.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2018-12-02 21:59:37 +01:00
..
byteorder include/linux/byteorder: Sync to latest Linux definitions 2018-06-12 18:44:00 -04:00
mtd mtd: nand: spi: Add Gigadevice SPI NAND support 2018-10-04 18:24:24 +05:30
soc/ti mailbox: Introduce K3 Secure Proxy Driver 2018-09-11 08:32:55 -04:00
unaligned
usb usb: musb-new: Fix improper musb host pointer 2018-08-23 17:31:24 +05:30
apm_bios.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
arm-smccc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bch.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bitfield.h linux/bitfield.h: import <linux/bitfield.h> from Linux 4.13 2017-10-04 12:00:21 -04:00
bitops.h bitops: collect BIT macros to include/linux/bitops.h 2017-11-29 00:28:57 +09:00
bitrev.h lib: bitrev: Sync with Linux kernel v4.17 2018-09-18 00:01:18 -06:00
bug.h bug.h: introduce WARN_ONCE 2018-06-07 17:08:06 -04:00
build_bug.h bug.h: sync BUILD_BUG stuff with Linux 4.13 2017-10-04 12:00:19 -04:00
compat.h linux/compat.h: Add netdev_### log macros 2018-10-09 14:18:17 -05:00
compiler-clang.h
compiler-gcc.h ctags: Minor changes to fix ctags output 2018-10-09 04:40:27 -06:00
compiler-intel.h compiler*.h: sync include/linux/compiler*.h with Linux 4.5-rc6 2016-02-29 11:43:24 -05:00
compiler.h bug.h: sync BUILD_BUG stuff with Linux 4.13 2017-10-04 12:00:19 -04:00
const.h linux/const.h: import from kernel 2018-11-20 13:08:15 +01:00
crc7.h
crc8.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
crc32.h
ctype.h
delay.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma-direction.h dma: import linux/dma-direction.h to consolidate enum dma_data_direction 2017-09-12 18:02:23 -04:00
drm_dp_helper.h tegra124: video: Add full link training for eDP 2015-05-13 09:24:12 -07:00
edd.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
err.h sf: Adopt flash table INFO macro from Linux 2016-11-18 13:04:52 +05:30
errno.h errno.h: sync error macros with linux 4.8-rc7 2016-09-23 22:25:43 -04:00
ethtool.h
fb.h avr32: Retire AVR32 for good 2017-07-06 16:17:19 -04:00
if_ether.h linux/if_ether.h: Add VLAN related macros 2018-10-10 12:28:53 -05:00
immap_qe.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
input.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
io.h kconfig: Introduce HAVE_ARCH_IOMAP 2018-11-14 09:16:27 -08:00
ioctl.h
iopoll.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ioport.h
kbuild.h
kconfig.h spl: dm: use CONFIG_IS_ENABLED to test for the DM option 2017-08-13 17:12:20 +02:00
kernel.h linux/kernel.h: Add ALIGN_DOWN macro 2018-01-10 08:05:51 -05:00
libfdt.h libfdt: move FDT_RAMDISK_OVERHEAD to image-fdt.c 2018-04-01 22:19:10 +08:00
libfdt_env.h scripts/dtc: Update to upstream version v1.4.6-9-gaadd0b65c987 2018-05-31 08:53:11 -04:00
linkage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
linux_string.h
list.h list: Add list_last_entry() to find the last entry 2016-10-11 11:55:33 +08:00
list_sort.h
log2.h include: update log2 header from the Linux kernel 2018-05-10 20:38:34 -04:00
lzo.h lzo: add a function to check the validity of the header 2017-10-05 21:31:04 -04:00
math64.h lib: div64: sync with Linux 2017-04-13 09:41:10 -04:00
mbus.h
mc146818rtc.h
mdio.h linux/mdio.h: Sync with Linux kernel v4.17 2018-10-09 14:18:12 -05:00
mii.h linux/mii.h: Sync with Linux kernel v4.17 2018-10-09 14:18:07 -05:00
netdevice.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
poison.h
posix_types.h
printk.h printk: collect printk stuff into <linux/printk.h> with loglevel support 2017-10-04 10:31:17 -04:00
psci.h efi_loader: PSCI reset and shutdown 2018-12-02 21:59:37 +01:00
rbtree.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rbtree_augmented.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
screen_info.h
serial_reg.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sizes.h linux/sizes.h: sync from kernel 2018-11-20 13:08:15 +01:00
stat.h avr32: Retire AVR32 for good 2017-07-06 16:17:19 -04:00
stddef.h
string.h string: Add strcspn() 2017-06-01 07:03:12 -06:00
stringify.h
time.h linux/time.h: Remove dead code 2017-10-16 09:42:51 -04:00
typecheck.h typecheck: import include/linux/typecheck.h from Linux 4.9 2017-01-14 16:46:29 -05:00
types.h Remove CONFIG_USE_STDINT 2018-09-10 20:48:16 -04:00