summaryrefslogtreecommitdiff
path: root/src/arch/riscv
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2016-11-06 16:13:52 -0800
committerRonald G. Minnich <rminnich@gmail.com>2016-11-13 00:16:37 +0100
commitc2703354628083b6f784041d62900f41b382024e (patch)
tree05e15d594b59cc9a296dc3f15144f4b694fa2989 /src/arch/riscv
parent9453c92b99ca4e76457e291d6bad93d1035e15e0 (diff)
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>
Diffstat (limited to 'src/arch/riscv')
-rw-r--r--src/arch/riscv/payload.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/arch/riscv/payload.S b/src/arch/riscv/payload.S
index 3261a80c2b..ce88bc3f64 100644
--- a/src/arch/riscv/payload.S
+++ b/src/arch/riscv/payload.S
@@ -11,10 +11,12 @@
* 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
riscvpayload:
- /* Jump to a0 in S-mode */
- mv t0,a0
+ mv t0,a1
csrw mepc, t0
csrr t0, mstatus
li t1, ~(3<<11)