History log of /fuchsia/zircon/kernel/arch/arm64/mexec.S
Revision Date Author Comments
# 850bde7e 05-Apr-2018 Gurjant Kalsi <gkalsi@google.com>

[mexec] Fix Boot EL restore bug in mexec

Summary:
Fixes ZX-1945 where we observed that gcc/clang
builds of Zircon could not Zedboot into one
another.

Root Cause:
Commit bdd202a introduced a feature where we
attempt to mexec into the same EL that we
initially booted the system to in order to
facilitate hypervisor development.

For example, if the system initially booted
into EL2, we'll attempt to reboot the system
into EL2 also.

This requires us to call a shim in the EL2
which is resident in Zircon. Previously we
were calling this shim _after_ replacing the
existing kernel. This _only_ worked because the
location of the shim was mostly stable between
kernels (especially if they were generated) by
the same toolchain.

Problems obviously occurred when clang and gcc
put the shim at different locations.

Fix:
We now call this shim before supplanting the
existing kernel.

Validation:
Tested on Vim2 and Gauss by repeatedly
netbooting back and forth between two kernels
generated by clang and gcc respectively.
Note that these two kernels were not able to
mexec into one another prior to this fix.

ZX-1945 #done

Change-Id: I2e69c4fdcff40ea7db70287bf6b11be99f4ef9b9


# bdd202a5 27-Nov-2017 Gurjant Kalsi <gkalsi@google.com>

[mexec][arm] Mexec to same EL that the system originally booted in.

Previously, mexec would always exec the new image at EL1, this change
makes mexec exec to the same EL that the system originally booted to
which should enable hypervisor development using zedboot.

Change-Id: I59c2556b74d653a90c5ec0367900d6ad5b8e0074


# 6e77e9af 31-Jul-2017 Gurjant Kalsi <gkalsi@google.com>

[x86][pc] Implements mexec for Intel x86 PC

Change-Id: Id257568884e91056bbaab64d8d4650ddfd49ddda


# 6a0ae3c7 25-Jun-2017 Doug Evans <dje@google.com>

[kernel][assembler] Add .cfi_startproc, .cfi_endproc directives

... and switch to using .debug_frame from .eh_frame.

Some functions don't really need .cfi directives, e.g. during early boot.
These functions are marked with FUNCTION_LABEL instead of FUNCTION
as now all uses of FUNCTION require a corresponding END_FUNCTION.

MG-870 #comment baby steps

Change-Id: I3c7d182ca91b2f705100880282477bfe930c6633


# 436b12bb 03-May-2017 Gurjant Kalsi <me@gurjantkalsi.com>

[syscall][kexec] Implements mexec syscall.

Change-Id: Icc8a31f73521fef21ac3cbb1da3d3ef1286fb621