summaryrefslogtreecommitdiffstats
path: root/sys/boot/ia64/ski/sal_stub.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/boot/ia64/ski/sal_stub.c')
-rw-r--r--sys/boot/ia64/ski/sal_stub.c118
1 files changed, 0 insertions, 118 deletions
diff --git a/sys/boot/ia64/ski/sal_stub.c b/sys/boot/ia64/ski/sal_stub.c
deleted file mode 100644
index 1ebbb4c..0000000
--- a/sys/boot/ia64/ski/sal_stub.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/*-
- * Copyright (c) 2003 Marcel Moolenaar
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
-
-#include <sys/types.h>
-#include <machine/md_var.h>
-#include <machine/sal.h>
-#include <stand.h>
-#include "libski.h"
-
-extern void PalProc(void);
-static sal_entry_t SalProc;
-
-struct {
- struct sal_system_table header;
- struct sal_entrypoint_descriptor entry;
- struct sal_ap_wakeup_descriptor wakeup;
-} sal_systab = {
- /* Header. */
- {
- SAL_SIGNATURE,
- sizeof(sal_systab),
- { 00, 03 }, /* Revision 3.0. */
- 2, /* Number of decsriptors. */
- 0, /* XXX checksum. */
- { 0 },
- { 00, 00 }, /* XXX SAL_A version. */
- { 00, 00 }, /* XXX SAL_B version. */
- "FreeBSD",
- "Ski loader",
- { 0 }
- },
- /* Entrypoint. */
- {
- 0, /* Type=entrypoint descr. */
- { 0 },
- 0, /* XXX PalProc. */
- 0, /* XXX SalProc. */
- 0, /* XXX SalProc GP. */
- { 0 }
- },
- /* AP wakeup. */
- {
- 5, /* Type=AP wakeup descr. */
- 0, /* External interrupt. */
- { 0 },
- 255 /* Wakeup vector. */
- }
-};
-
-static inline void
-puts(const char *s)
-{
- s = (const char *)((7UL << 61) | (u_long)s);
- while (*s)
- ski_cons_putchar(*s++);
-}
-
-static struct ia64_sal_result
-SalProc(u_int64_t a1, u_int64_t a2, u_int64_t a3, u_int64_t a4, u_int64_t a5,
- u_int64_t a6, u_int64_t a7, u_int64_t a8)
-{
- struct ia64_sal_result res;
-
- res.sal_status = -3;
- res.sal_result[0] = 0;
- res.sal_result[1] = 0;
- res.sal_result[2] = 0;
-
- if (a1 == SAL_FREQ_BASE) {
- res.sal_status = 0;
- res.sal_result[0] = 133338184;
- } else if (a1 == SAL_SET_VECTORS) {
- /* XXX unofficial SSC function. */
- ssc(a2, a3, a4, a5, SSC_SAL_SET_VECTORS);
- } else if (a1 != SAL_GET_STATE_INFO_SIZE) {
- puts("SAL: unimplemented function called\n");
- }
-
- return (res);
-}
-
-void
-sal_stub_init(void)
-{
- struct ia64_fdesc *fd;
-
- fd = (void*)PalProc;
- sal_systab.entry.sale_pal_proc = fd->func;
- fd = (void*)SalProc;
- sal_systab.entry.sale_sal_proc = fd->func;
- sal_systab.entry.sale_sal_gp = fd->gp;
-}
OpenPOWER on IntegriCloud