aboutsummaryrefslogtreecommitdiff
path: root/sys/boot/alpha/libalpha/prom_swpal.S
diff options
context:
space:
mode:
Diffstat (limited to 'sys/boot/alpha/libalpha/prom_swpal.S')
-rw-r--r--sys/boot/alpha/libalpha/prom_swpal.S139
1 files changed, 0 insertions, 139 deletions
diff --git a/sys/boot/alpha/libalpha/prom_swpal.S b/sys/boot/alpha/libalpha/prom_swpal.S
deleted file mode 100644
index be57632ddd9b..000000000000
--- a/sys/boot/alpha/libalpha/prom_swpal.S
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * $FreeBSD$
- * From: $NetBSD: prom_swpal.S,v 1.2 1997/04/06 08:41:01 cgd Exp $
- */
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Keith Bostic
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#define ASSEMBLER
-#include <machine/asm.h>
-#include <machine/prom.h>
-#include <machine/rpb.h>
-
-/* Offsets from base of HWRPB. */
-#define RPB_SELFREF 0x00
-#define RPB_SLOTSIZE 0x98
-#define RPB_PERCPU_OFF 0xA0
-
-/* Offsets in a boot PCB. */
-#define PCB_KSP 0x00
-#define PCB_PTBR 0x10
-#define PCB_ASN 0x1c
-#define PCB_FEN 0x28
-
-/* Pal values. */
-#define PAL_RESERVED 0 /* Reserved to Digital. */
-#define PAL_VMS 1 /* VMS */
-#define PAL_OSF 2 /* OSF */
-
-/*
- * PAL code switch routine.
- */
-#define D_RA (7*8)
-#define D_S0 (8*8)
-#define D_S1 (9*8)
-#define D_S2 (10*8)
-#define D_S3 (11*8)
-#define D_S4 (12*8)
-#define D_S5 (13*8)
-#define PALSW_FRAME_SIZE (14*8)
-#define PALSW_REGS IM_RA|IM_S0|IM_S1|IM_S2|IM_S3|IM_S4|IM_S5
-
- .comm ptbr_save,8
-
- .text
- .align 4
-
-NESTED(switch_palcode, 0, PALSW_FRAME_SIZE, ra, PALSW_REGS, 0)
- LDGP(pv)
-/* ldgp gp, 0(pv)*/
-
- lda sp, -PALSW_FRAME_SIZE(sp)
- stq ra, D_RA(sp)
- stq s0, D_S0(sp)
- stq s1, D_S1(sp)
- stq s2, D_S2(sp)
- stq s3, D_S3(sp)
- stq s4, D_S4(sp)
- stq s5, D_S5(sp)
-
- stq pv, 0(sp)
- stq gp, 8(sp)
-
- ldiq s0, HWRPB_ADDR /* s0 HWRPB_ADDR */
- ldq s1, RPB_SLOTSIZE(s0)
- call_pal PAL_VMS_mfpr_whami
- mulq s1, v0, s1 /* s1 per_cpu offset from base */
- ldq s2, RPB_PERCPU_OFF(s0)
- addq s0, s2, s2
- addq s2, s1, s2 /* s2 PCB (virtual) */
-
- call_pal PAL_VMS_mfpr_ptbr
- stq v0, PCB_PTBR(s2)
- stq v0, ptbr_save /* save PTBR for the kernel */
- stl zero, PCB_ASN(s2)
- stq zero, PCB_FEN(s2)
- stq sp, PCB_KSP(s2)
-
- ldq t0, RPB_SELFREF(s0) /* HWRBP base (physical) */
- ldq t1, RPB_PERCPU_OFF(s0)
- addq t0, t1, t0
- addq t0, s1, t0 /* PCB base (phys) */
- stq t0, 16(sp)
-
- call_pal PAL_VMS_mfpr_vptb
- mov v0, a3
- ldiq a0, PAL_OSF
- lda a1, contin
- ldq a2, 16(sp)
-
- call_pal PAL_swppal /* a0, a1, a2, a3 */
-
-contin: ldq pv, 0(sp)
- ldq gp, 8(sp)
-
- ldq ra, D_RA(sp)
- ldq s0, D_S0(sp)
- ldq s1, D_S1(sp)
- ldq s2, D_S2(sp)
- ldq s3, D_S3(sp)
- ldq s4, D_S4(sp)
- ldq s5, D_S5(sp)
- lda sp, PALSW_FRAME_SIZE(sp)
- RET
-END(switch_palcode)
-
-#undef D_RA
-#undef D_S0
-#undef D_S1
-#undef D_S2
-#undef D_S3
-#undef D_S4
-#undef D_S5
-#undef PALSW_FRAME_SIZE
-#undef PALSW_REGS