coreboot/src
Julius Werner 3834520ba1 arch/arm64: Use correct SPSR.DAIF mask for BL31 and payload
The PSTATE mask bits for Debug exceptions, external Aborts, Interrupts
and Fast interrupts are usually best left unset: under normal
circumstances none of those exceptions should occur in firmware, and if
they do it's better to get a crash close to the code that caused it
(rather than much later when the kernel first unmasks them). For this
reason arm64_cpu_init unmasks them right after boot. However, the EL2
payload was still running with all mask bits set, which this patch
fixes.

BL31, on the other hand, explicitly wants to be entered with all masks
set (see calling convention in docs/firmware-design.md), which we had
previously not been doing. It doesn't seem to make a difference at the
moment, but since it's explicitly specified we should probably comply.

BRANCH=None
BUG=None
TEST=Booted Oak, confirmed with raw_read_daif() in payload that mask
bits are now cleared.

Change-Id: I04406da4c435ae7d44e2592c41f9807934bbc802
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 6ba55bc23fbde962d91c87dc0f982437572a69a8
Original-Change-Id: Ic5fbdd4e1cd7933c8b0c7c5fe72eac2022c9553c
Original-Signed-off-by: Julius Werner <jwerner@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/325056
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/13596
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2016-02-10 09:39:36 +01:00
..
acpi acpi/: add missing license header 2016-01-14 22:52:11 +01:00
arch arch/arm64: Use correct SPSR.DAIF mask for BL31 and payload 2016-02-10 09:39:36 +01:00
commonlib commonlib: move uefi includes out of commonlib includes 2016-02-02 14:27:03 +01:00
console console: Disable SQUELCH_EARLY_SMP if SMP is not selected 2016-02-09 17:14:50 +01:00
cpu cpu/amd/fam10h-fam15h: Honor CMOS option to disable CPB (core boost) 2016-02-05 22:27:31 +01:00
device arch/x86: Drop arch/pciconf.h 2016-01-26 20:22:44 +01:00
drivers drivers/intel/fsp1_1: Make fsp_run_silicon_init public 2016-02-08 18:53:45 +01:00
ec ASL: Remove unused modulo recipient. 2016-02-09 22:56:00 +01:00
include nhlt: add api to override oem_id and oem_table_id of acpi_header_t 2016-02-09 13:21:39 +01:00
lib nhlt: add api to override oem_id and oem_table_id of acpi_header_t 2016-02-09 13:21:39 +01:00
mainboard ASL: Remove unused modulo recipient. 2016-02-09 22:56:00 +01:00
northbridge sandybridge: Set all native gfx-related options in northbridge code. 2016-02-09 22:35:09 +01:00
soc soc/intel/quark: Report CPU info 2016-02-10 03:12:18 +01:00
southbridge drivers/pc80: Add PS/2 mouse presence detect 2016-02-01 22:10:46 +01:00
superio superio/nuvoton/nct5572d: Add PS/2 presence detect 2016-02-09 20:34:15 +01:00
vendorcode soc/fsp_baytrail: Add support for FSP MR 005 2016-02-10 02:45:56 +01:00
Kconfig Kconfig: Move payloads section to payloads/Kconfig 2016-02-09 20:31:52 +01:00