xref: /openbmc/linux/arch/mips/dec/prom/locore.S (revision b2441318)
1b2441318SGreg Kroah-Hartman/* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds/*
31da177e4SLinus Torvalds * locore.S
41da177e4SLinus Torvalds */
51da177e4SLinus Torvalds#include <asm/asm.h>
61da177e4SLinus Torvalds#include <asm/regdef.h>
71da177e4SLinus Torvalds#include <asm/mipsregs.h>
81da177e4SLinus Torvalds
91da177e4SLinus Torvalds	.text
101da177e4SLinus Torvalds
111da177e4SLinus Torvalds/*
121da177e4SLinus Torvalds * Simple general exception handling routine. This one is used for the
131da177e4SLinus Torvalds * Memory sizing routine for pmax machines. HK
141da177e4SLinus Torvalds */
151da177e4SLinus Torvalds
161da177e4SLinus TorvaldsNESTED(genexcept_early, 0, sp)
171da177e4SLinus Torvalds	.set	noat
181da177e4SLinus Torvalds	.set	noreorder
191da177e4SLinus Torvalds
201da177e4SLinus Torvalds	mfc0	k0, CP0_STATUS
211da177e4SLinus Torvalds	la	k1, mem_err
221da177e4SLinus Torvalds
231da177e4SLinus Torvalds	sw	k0, 0(k1)
241da177e4SLinus Torvalds
251da177e4SLinus Torvalds	mfc0	k0, CP0_EPC
261da177e4SLinus Torvalds	nop
271da177e4SLinus Torvalds	addiu	k0, 4		# skip the causing instruction
281da177e4SLinus Torvalds	jr	k0
291da177e4SLinus Torvalds	 rfe
301da177e4SLinus TorvaldsEND(genexcept_early)
31