libpayload arm64: Add helper functions with el argument
Allow read/write to registers at a given el. Also, make read/write registers at current el call this newly added function. BRANCH=none BUG=none TEST=build and boot on mt8173-evb Change-Id: Id69f0fdc07193c5c7e997712f0cd99de6f41510b Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: c091917babc39d9ab997f51f81b486c9aa900c24 Original-Change-Id: I0944946642066b88331e497a92388e74e86902d0 Original-Signed-off-by: HC Yen <hc.yen@mediatek.com> Original-Reviewed-on: https://chromium-review.googlesource.com/240322 Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/8798 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
@ -179,12 +179,24 @@ void raw_write_elr_el3(uint64_t elr_el3)
|
||||
|
||||
uint64_t raw_read_elr_current(void)
|
||||
{
|
||||
SWITCH_CASE_READ(raw_read_elr,elr,uint64_t);
|
||||
uint32_t el = get_current_el();
|
||||
return raw_read_elr(el);
|
||||
}
|
||||
|
||||
void raw_write_elr_current(uint64_t elr)
|
||||
{
|
||||
SWITCH_CASE_WRITE(raw_write_elr,elr);
|
||||
uint32_t el = get_current_el();
|
||||
raw_write_elr(elr, el);
|
||||
}
|
||||
|
||||
uint64_t raw_read_elr(uint32_t el)
|
||||
{
|
||||
SWITCH_CASE_READ(raw_read_elr, elr, uint64_t, el);
|
||||
}
|
||||
|
||||
void raw_write_elr(uint64_t elr, uint32_t el)
|
||||
{
|
||||
SWITCH_CASE_WRITE(raw_write_elr, elr, el);
|
||||
}
|
||||
|
||||
/* FPCR */
|
||||
@ -380,12 +392,24 @@ void raw_write_spsr_el3(uint32_t spsr_el3)
|
||||
|
||||
uint32_t raw_read_spsr_current(void)
|
||||
{
|
||||
SWITCH_CASE_READ(raw_read_spsr,spsr,uint32_t);
|
||||
uint32_t el = get_current_el();
|
||||
return raw_read_spsr(el);
|
||||
}
|
||||
|
||||
void raw_write_spsr_current(uint32_t spsr)
|
||||
{
|
||||
SWITCH_CASE_WRITE(raw_write_spsr,spsr);
|
||||
uint32_t el = get_current_el();
|
||||
raw_write_spsr(spsr, el);
|
||||
}
|
||||
|
||||
uint32_t raw_read_spsr(uint32_t el)
|
||||
{
|
||||
SWITCH_CASE_READ(raw_read_spsr, spsr, uint32_t, el);
|
||||
}
|
||||
|
||||
void raw_write_spsr(uint32_t spsr, uint32_t el)
|
||||
{
|
||||
SWITCH_CASE_WRITE(raw_write_spsr, spsr, el);
|
||||
}
|
||||
|
||||
uint32_t raw_read_spsr_fiq(void)
|
||||
|
Reference in New Issue
Block a user