u-boot-brain/drivers
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
..
adc dm: adc: add uclass's mask and conversion helpers 2018-11-20 12:35:25 -05:00
ata Switch to driver model for eSDHC on Layerscape SoCs including LS1021A, 2018-09-29 11:47:32 -04:00
axi drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
bios_emulator bios_emulator: remove assignment without effect 2018-07-23 14:33:21 -04:00
block blk: Introduce IF_TYPE_VIRTIO 2018-11-14 09:16:27 -08:00
board drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
bootcount bootcount: Make bootcount magic configurable 2018-10-19 14:16:43 -04:00
clk rockchip: rk3399: Initialize CPU B clock. 2018-11-30 21:56:45 +01:00
core core: ofnode: Fix ofnode_get_addr_index function 2018-11-29 09:30:06 -07:00
cpu cpu: mpc83xx: Remove unnecessary characters in the description string 2018-11-14 09:16:27 -08:00
crypto SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ddr socfpga: stratix10: fix sdram_calculate_size 2018-09-15 03:17:01 +02:00
demo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu dfu: nand: Add missing dependency on CMD_MTDPARTS 2018-11-13 18:53:10 +05:30
dma SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fastboot drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
firmware efi_loader: PSCI reset and shutdown 2018-12-02 21:59:37 +01:00
fpga arm: socfpga: fpga: fix type of local variable 2018-10-31 01:41:10 +01:00
gpio gpio: dwapb_gpio: fix binding without bank-name property 2018-11-29 12:45:15 +01:00
i2c dm: sandbox: i2c: Use new emulator parent uclass 2018-11-29 09:30:05 -07:00
input spl: input: Allow input in SPL and TPL 2018-10-09 04:40:27 -06:00
led dm: led: move default state support in led uclass 2018-08-10 10:27:32 -04:00
mailbox drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
memory SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
misc misc: Update read() and write() methods to return bytes xfered 2018-11-20 19:14:22 -07:00
mmc Cleanup and update towards support for Amlogic Meson AXG SoCs : 2018-11-29 15:16:58 -05:00
mtd sf: Add a method to obtain the block-protect setting 2018-11-20 19:14:22 -07:00
net Cleanup and update towards support for Amlogic Meson AXG SoCs : 2018-11-29 15:16:58 -05:00
nvme blk: Call part_init() in the post_probe() method 2018-11-14 09:16:27 -08:00
pch SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pci dm/pci: Change the first CFG read to Vendor ID in enumeration 2018-11-20 19:14:22 -07:00
pcmcia SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
phy drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
pinctrl Cleanup and update towards support for Amlogic Meson AXG SoCs : 2018-11-29 15:16:58 -05:00
power dm: sandbox: i2c: Use new emulator parent uclass 2018-11-29 09:30:05 -07:00
pwm pwm: sunxi: choose best prescaler to improve PWM resolution 2018-10-24 21:57:16 +05:30
qe drivers: qe: Move CONFIG_U_QE to Kconfig 2018-09-27 10:01:27 -07:00
ram ram: MediaTek: add DDR3 driver for MT7629 SoC 2018-11-28 23:04:53 -05:00
remoteproc spl: Allow remoteproc drivers to be used within SPL 2018-09-11 08:32:55 -04:00
reset drivers: cosmetic: Convert SPDX license tags to Linux Kernel style 2018-10-28 09:26:39 -04:00
rtc drivers: rtc: correctly convert seconds to time structure 2018-12-01 18:03:14 -05:00
scsi blk: Call part_init() in the post_probe() method 2018-11-14 09:16:27 -08:00
serial serial: MediaTek: add high-speed uart driver for MediaTek SoCs 2018-11-28 23:04:53 -05:00
smem drivers: smem: sandbox 2018-07-19 16:31:38 -04:00
soc SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sound sound: Add sample rate as a parameter for square wave 2018-11-29 09:30:05 -07:00
spi spi: cadence_qspi: use "cdns,qspi-nor" as compatible 2018-11-29 12:45:15 +01:00
spmi SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
sysreset sysreset: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
tee tee: add sandbox driver 2018-10-07 11:04:01 -04:00
thermal SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
timer timer: MediaTek: add timer driver for MediaTek SoCs 2018-11-28 23:04:51 -05:00
tpm tpm: Export the open/close functions 2018-11-29 09:30:06 -07:00
usb usb: s/CONFIG_DM_USB/CONFIG_IS_ENABLED(DM_USB)/ 2018-11-26 21:19:03 +01:00
video rockchip: video: mipi: Fix phy frequency setting 2018-11-30 19:03:16 +01:00
virtio virtio: Add a Sandbox transport driver 2018-11-14 09:16:28 -08:00
w1 w1: fix data abort if no one wire bus master present 2018-11-01 10:02:10 -04:00
w1-eeprom w1-eeprom: Add support for Maxim DS2502 add only memory 2018-11-16 16:51:55 -05:00
watchdog watchdog: MediaTek: add watchdog driver for MediaTek SoCs 2018-11-28 23:04:52 -05:00
Kconfig dm: Add a new uclass driver for VirtIO transport devices 2018-11-14 09:16:27 -08:00
Makefile spl: Support hash, input, pch, pci, rtc, tpm in SPL 2018-11-26 08:25:33 -05:00