riscv: change payload() to pass the config string pointer as arg0

The riscv 1.9 standard defines a textual config string to be passed
to kernels and hypervisors. Change the payload function to pass
this string in a0.

Change-Id: I3be7f1712accf2d726704e4c970f22749d3c3f36
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-on: https://review.coreboot.org/17254
Tested-by: build bot (Jenkins)
Reviewed-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
This commit is contained in:
Ronald G. Minnich 2016-11-06 16:13:52 -08:00
parent 9453c92b99
commit c270335462
1 changed files with 4 additions and 2 deletions

View File

@ -11,10 +11,12 @@
* GNU General Public License for more details. * GNU General Public License for more details.
*/ */
// "return" to a payload pointed to by a1 with
// an M-mode pointer (or, to upper levels, physical address)
// to the config string in a0.
.global riscvpayload .global riscvpayload
riscvpayload: riscvpayload:
/* Jump to a0 in S-mode */ mv t0,a1
mv t0,a0
csrw mepc, t0 csrw mepc, t0
csrr t0, mstatus csrr t0, mstatus
li t1, ~(3<<11) li t1, ~(3<<11)