diff options
author | marcel <marcel@FreeBSD.org> | 2004-09-24 04:49:32 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2004-09-24 04:49:32 +0000 |
commit | d0d010090d44ba61364b8a906283c81902df1801 (patch) | |
tree | a49b94a148276a64ada41b74e862d638c36902b1 /sys/boot/ia64 | |
parent | 4a53309170ee73e98625970d45a4504e754cab03 (diff) | |
download | FreeBSD-src-d0d010090d44ba61364b8a906283c81902df1801.zip FreeBSD-src-d0d010090d44ba61364b8a906283c81902df1801.tar.gz |
Remove. This file was repocopied to ../ski.
Diffstat (limited to 'sys/boot/ia64')
24 files changed, 0 insertions, 2614 deletions
diff --git a/sys/boot/ia64/libski/Makefile b/sys/boot/ia64/libski/Makefile deleted file mode 100644 index caba74e..0000000 --- a/sys/boot/ia64/libski/Makefile +++ /dev/null @@ -1,22 +0,0 @@ -# $FreeBSD$ - -LIB= ski -INTERNALLIB= true - -SRCS= skiconsole.c time.c copy.c devicename.c module.c exit.c -SRCS+= delay.c skifs.c elf_freebsd.c bootinfo.c ssc.c -SRCS+= acpi_stub.c efi_stub.c pal_stub.S sal_stub.c - -CFLAGS+= -I${.CURDIR}/../../../../lib/libstand -CFLAGS+= -I${.CURDIR}/../../efi/include -CFLAGS+= -I${.CURDIR}/../../efi/include/${MACHINE_ARCH} - -# Pick up the bootstrap header for some interface items -CFLAGS+= -I${.CURDIR}/../../common -I${.CURDIR}/../../.. - -.if defined(BOOT_DISK_DEBUG) -# Make the disk code more talkative -CFLAGS+= -DDISK_DEBUG -.endif - -.include <bsd.lib.mk> diff --git a/sys/boot/ia64/libski/acpi_stub.c b/sys/boot/ia64/libski/acpi_stub.c deleted file mode 100644 index 3e044e6..0000000 --- a/sys/boot/ia64/libski/acpi_stub.c +++ /dev/null @@ -1,182 +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 <contrib/dev/acpica/acpi.h> - -#define APIC_IO_SAPIC 6 -#define APIC_LOCAL_SAPIC 7 - -#pragma pack(1) - -typedef struct /* LOCAL SAPIC */ -{ - APIC_HEADER Header; - UINT8 ProcessorId; /* ACPI processor id */ - UINT8 LocalSapicId; /* Processor local SAPIC id */ - UINT8 LocalSapicEid; /* Processor local SAPIC eid */ - UINT8 Reserved[3]; - UINT32 ProcessorEnabled: 1; - UINT32 FlagsReserved: 31; -} LOCAL_SAPIC; - -typedef struct /* IO SAPIC */ -{ - APIC_HEADER Header; - UINT8 IoSapicId; /* I/O SAPIC ID */ - UINT8 Reserved; /* reserved - must be zero */ - UINT32 Vector; /* interrupt base */ - UINT64 IoSapicAddress; /* SAPIC's physical address */ -} IO_SAPIC; - -/* - */ - -struct { - MULTIPLE_APIC_TABLE Header; - MADT_LOCAL_SAPIC cpu0; - MADT_LOCAL_SAPIC cpu1; - MADT_LOCAL_SAPIC cpu2; - MADT_LOCAL_SAPIC cpu3; - MADT_IO_SAPIC sapic; -} apic = { - /* Header. */ - { - APIC_SIG, /* Signature. */ - sizeof(apic), /* Length of table. */ - 0, /* ACPI minor revision. */ - 0, /* XXX checksum. */ - "FBSD", /* OEM Id. */ - "SKI", /* OEM table Id. */ - 0, /* OEM revision. */ - "FBSD", /* ASL compiler Id. */ - 0, /* ASL revision. */ - 0xfee00000, - }, - /* cpu0. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu0), /* Length. */ - 0, /* ACPI processor id */ - 0, /* Processor local SAPIC id */ - 0, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 1, /* FL: Enabled. */ - }, - /* cpu1. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu1), /* Length. */ - 1, /* ACPI processor id */ - 0, /* Processor local SAPIC id */ - 1, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 1, /* FL: Enabled. */ - }, - /* cpu2. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu2), /* Length. */ - 2, /* ACPI processor id */ - 1, /* Processor local SAPIC id */ - 0, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 0, /* FL: Enabled. */ - }, - /* cpu3. */ - { - APIC_LOCAL_SAPIC, /* Type. */ - sizeof(apic.cpu3), /* Length. */ - 3, /* ACPI processor id */ - 1, /* Processor local SAPIC id */ - 1, /* Processor local SAPIC eid */ - { 0, 0, 0 }, - 0, /* FL: Enabled. */ - }, - /* sapic. */ - { - APIC_IO_SAPIC, /* Type. */ - sizeof(apic.sapic), /* Length. */ - 4, /* IO SAPIC id. */ - 0, - 16, /* Interrupt base. */ - 0xfec00000 /* IO SAPIC address. */ - } -}; - -struct { - ACPI_TABLE_HEADER Header; - UINT64 apic_tbl; -} xsdt = { - { - XSDT_SIG, /* Signature. */ - sizeof(xsdt), /* Length of table. */ - 0, /* ACPI minor revision. */ - 0, /* XXX checksum. */ - "FBSD", /* OEM Id. */ - "SKI", /* OEM table Id. */ - 0, /* OEM revision. */ - "FBSD", /* ASL compiler Id. */ - 0 /* ASL revision. */ - }, - NULL /* XXX APIC table address. */ -}; - -RSDP_DESCRIPTOR acpi_root = { - RSDP_SIG, - 0, /* XXX checksum. */ - "FBSD", - 2, /* ACPI Rev 2.0. */ - NULL, - sizeof(xsdt), /* XSDT length. */ - NULL, /* XXX PA of XSDT. */ - 0, /* XXX Extended checksum. */ -}; - -static void -cksum(void *addr, int sz, UINT8 *sum) -{ - UINT8 *p, s; - - p = addr; - s = 0; - while (sz--) - s += *p++; - *sum = -s; -} - -void -acpi_stub_init(void) -{ - acpi_root.XsdtPhysicalAddress = (UINT64)&xsdt; - cksum(&acpi_root, 20, &acpi_root.Checksum); - cksum(&acpi_root, sizeof(acpi_root), &acpi_root.ExtendedChecksum); - - xsdt.apic_tbl = (UINT32)&apic; - cksum(&xsdt, sizeof(xsdt), &xsdt.Header.Checksum); -} diff --git a/sys/boot/ia64/libski/bootinfo.c b/sys/boot/ia64/libski/bootinfo.c deleted file mode 100644 index dbc4673..0000000 --- a/sys/boot/ia64/libski/bootinfo.c +++ /dev/null @@ -1,316 +0,0 @@ -/*- - * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <stand.h> -#include <string.h> -#include <sys/param.h> -#include <sys/reboot.h> -#include <sys/linker.h> -#include <machine/elf.h> -#include <machine/bootinfo.h> - -#include "bootstrap.h" - -/* - * Return a 'boothowto' value corresponding to the kernel arguments in - * (kargs) and any relevant environment variables. - */ -static struct -{ - const char *ev; - int mask; -} howto_names[] = { - {"boot_askname", RB_ASKNAME}, - {"boot_cdrom", RB_CDROM}, - {"boot_userconfig", RB_CONFIG}, - {"boot_ddb", RB_KDB}, - {"boot_gdb", RB_GDB}, - {"boot_single", RB_SINGLE}, - {"boot_verbose", RB_VERBOSE}, - {"boot_multicons", RB_MULTIPLE}, - {"boot_serial", RB_SERIAL}, - {NULL, 0} -}; - -extern char *ski_fmtdev(void *vdev); -extern int ski_init_stubs(struct bootinfo *); - -int -bi_getboothowto(char *kargs) -{ - char *cp; - int howto; - int active; - int i; - - /* Parse kargs */ - howto = 0; - if (kargs != NULL) { - cp = kargs; - active = 0; - while (*cp != 0) { - if (!active && (*cp == '-')) { - active = 1; - } else if (active) - switch (*cp) { - case 'a': - howto |= RB_ASKNAME; - break; - case 'c': - howto |= RB_CONFIG; - break; - case 'C': - howto |= RB_CDROM; - break; - case 'd': - howto |= RB_KDB; - break; - case 'm': - howto |= RB_MUTE; - break; - case 'g': - howto |= RB_GDB; - break; - case 'h': - howto |= RB_SERIAL; - break; - case 'r': - howto |= RB_DFLTROOT; - break; - case 's': - howto |= RB_SINGLE; - break; - case 'v': - howto |= RB_VERBOSE; - break; - default: - active = 0; - break; - } - cp++; - } - } - /* get equivalents from the environment */ - for (i = 0; howto_names[i].ev != NULL; i++) - if (getenv(howto_names[i].ev) != NULL) - howto |= howto_names[i].mask; - if (!strcmp(getenv("console"), "comconsole")) - howto |= RB_SERIAL; - if (!strcmp(getenv("console"), "nullconsole")) - howto |= RB_MUTE; - return(howto); -} - -/* - * Copy the environment into the load area starting at (addr). - * Each variable is formatted as <name>=<value>, with a single nul - * separating each variable, and a double nul terminating the environment. - */ -vm_offset_t -bi_copyenv(vm_offset_t addr) -{ - struct env_var *ep; - - /* traverse the environment */ - for (ep = environ; ep != NULL; ep = ep->ev_next) { - ski_copyin(ep->ev_name, addr, strlen(ep->ev_name)); - addr += strlen(ep->ev_name); - ski_copyin("=", addr, 1); - addr++; - if (ep->ev_value != NULL) { - ski_copyin(ep->ev_value, addr, strlen(ep->ev_value)); - addr += strlen(ep->ev_value); - } - ski_copyin("", addr, 1); - addr++; - } - ski_copyin("", addr, 1); - addr++; - return(addr); -} - -/* - * Copy module-related data into the load area, where it can be - * used as a directory for loaded modules. - * - * Module data is presented in a self-describing format. Each datum - * is preceded by a 32-bit identifier and a 32-bit size field. - * - * Currently, the following data are saved: - * - * MOD_NAME (variable) module name (string) - * MOD_TYPE (variable) module type (string) - * MOD_ARGS (variable) module parameters (string) - * MOD_ADDR sizeof(vm_offset_t) module load address - * MOD_SIZE sizeof(size_t) module size - * MOD_METADATA (variable) type-specific metadata - */ -#define COPY32(v, a) { \ - u_int32_t x = (v); \ - ski_copyin(&x, a, sizeof(x)); \ - a += sizeof(x); \ -} - -#define MOD_STR(t, a, s) { \ - COPY32(t, a); \ - COPY32(strlen(s) + 1, a); \ - ski_copyin(s, a, strlen(s) + 1); \ - a += roundup(strlen(s) + 1, sizeof(u_int64_t));\ -} - -#define MOD_NAME(a, s) MOD_STR(MODINFO_NAME, a, s) -#define MOD_TYPE(a, s) MOD_STR(MODINFO_TYPE, a, s) -#define MOD_ARGS(a, s) MOD_STR(MODINFO_ARGS, a, s) - -#define MOD_VAR(t, a, s) { \ - COPY32(t, a); \ - COPY32(sizeof(s), a); \ - ski_copyin(&s, a, sizeof(s)); \ - a += roundup(sizeof(s), sizeof(u_int64_t)); \ -} - -#define MOD_ADDR(a, s) MOD_VAR(MODINFO_ADDR, a, s) -#define MOD_SIZE(a, s) MOD_VAR(MODINFO_SIZE, a, s) - -#define MOD_METADATA(a, mm) { \ - COPY32(MODINFO_METADATA | mm->md_type, a); \ - COPY32(mm->md_size, a); \ - ski_copyin(mm->md_data, a, mm->md_size); \ - a += roundup(mm->md_size, sizeof(u_int64_t));\ -} - -#define MOD_END(a) { \ - COPY32(MODINFO_END, a); \ - COPY32(0, a); \ -} - -vm_offset_t -bi_copymodules(vm_offset_t addr) -{ - struct preloaded_file *fp; - struct file_metadata *md; - - /* start with the first module on the list, should be the kernel */ - for (fp = file_findfile(NULL, NULL); fp != NULL; fp = fp->f_next) { - - MOD_NAME(addr, fp->f_name); /* this field must come first */ - MOD_TYPE(addr, fp->f_type); - if (fp->f_args) - MOD_ARGS(addr, fp->f_args); - MOD_ADDR(addr, fp->f_addr); - MOD_SIZE(addr, fp->f_size); - for (md = fp->f_metadata; md != NULL; md = md->md_next) - if (!(md->md_type & MODINFOMD_NOCOPY)) - MOD_METADATA(addr, md); - } - MOD_END(addr); - return(addr); -} - -/* - * Load the information expected by an alpha kernel. - * - * - The kernel environment is copied into kernel space. - * - Module metadata are formatted and placed in kernel space. - */ -int -bi_load(struct bootinfo *bi, struct preloaded_file *fp, char *args) -{ - char *rootdevname; - struct ski_devdesc *rootdev; - struct preloaded_file *xp; - vm_offset_t addr, bootinfo_addr; - char *kernelname; - vm_offset_t ssym, esym; - struct file_metadata *md; - - /* - * Version 1 bootinfo. - */ - bi->bi_magic = BOOTINFO_MAGIC; - bi->bi_version = 1; - - /* - * Calculate boothowto. - */ - bi->bi_boothowto = bi_getboothowto(fp->f_args); - - /* - * Allow the environment variable 'rootdev' to override the supplied device - * This should perhaps go to MI code and/or have $rootdev tested/set by - * MI code before launching the kernel. - */ - rootdevname = getenv("rootdev"); - ski_getdev((void **)(&rootdev), rootdevname, NULL); - if (rootdev == NULL) { /* bad $rootdev/$currdev */ - printf("can't determine root device\n"); - return(EINVAL); - } - - /* Try reading the /etc/fstab file to select the root device */ - getrootmount(ski_fmtdev((void *)rootdev)); - free(rootdev); - - ssym = esym = 0; - if ((md = file_findmetadata(fp, MODINFOMD_SSYM)) != NULL) - ssym = *((vm_offset_t *)&(md->md_data)); - if ((md = file_findmetadata(fp, MODINFOMD_ESYM)) != NULL) - esym = *((vm_offset_t *)&(md->md_data)); - if (ssym == 0 || esym == 0) - ssym = esym = 0; /* sanity */ - - bi->bi_symtab = ssym; - bi->bi_esymtab = esym; - - /* find the last module in the chain */ - addr = 0; - for (xp = file_findfile(NULL, NULL); xp != NULL; xp = xp->f_next) { - if (addr < (xp->f_addr + xp->f_size)) - addr = xp->f_addr + xp->f_size; - } - - /* pad to a page boundary */ - addr = (addr + PAGE_MASK) & ~PAGE_MASK; - - /* copy our environment */ - bi->bi_envp = addr; - addr = bi_copyenv(addr); - - /* pad to a page boundary */ - addr = (addr + PAGE_MASK) & ~PAGE_MASK; - - /* copy module list and metadata */ - bi->bi_modulep = addr; - addr = bi_copymodules(addr); - - /* all done copying stuff in, save end of loaded object space */ - bi->bi_kernend = addr; - - return (ski_init_stubs(bi)); -} diff --git a/sys/boot/ia64/libski/copy.c b/sys/boot/ia64/libski/copy.c deleted file mode 100644 index d86537a..0000000 --- a/sys/boot/ia64/libski/copy.c +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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$"); - -/* - * MD primitives supporting placement of module data - * - * XXX should check load address/size against memory top. - */ -#include <stand.h> - -#include <machine/ia64_cpu.h> -#include <machine/vmparam.h> - -int -ski_copyin(void *src, vm_offset_t dest, size_t len) -{ - bcopy(src, (void*) IA64_RR_MASK(dest), len); - return (len); -} - -int -ski_copyout(vm_offset_t src, void *dest, size_t len) -{ - bcopy((void*) IA64_RR_MASK(src), dest, len); - return (len); -} - -int -ski_readin(int fd, vm_offset_t dest, size_t len) -{ - return (read(fd, (void*) IA64_RR_MASK(dest), len)); -} diff --git a/sys/boot/ia64/libski/delay.c b/sys/boot/ia64/libski/delay.c deleted file mode 100644 index 2389603..0000000 --- a/sys/boot/ia64/libski/delay.c +++ /dev/null @@ -1,34 +0,0 @@ -/*- - * Copyright (c) 2001 Doug Rabson - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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$"); - -void -delay(int usecs) -{ - return; -} diff --git a/sys/boot/ia64/libski/devicename.c b/sys/boot/ia64/libski/devicename.c deleted file mode 100644 index b01bf18..0000000 --- a/sys/boot/ia64/libski/devicename.c +++ /dev/null @@ -1,238 +0,0 @@ -/*- - * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <stand.h> -#include <string.h> -#include <sys/disklabel.h> -#include "bootstrap.h" -#include "libski.h" - -static int ski_parsedev(struct ski_devdesc **dev, const char *devspec, const char **path); - -/* - * Point (dev) at an allocated device specifier for the device matching the - * path in (devspec). If it contains an explicit device specification, - * use that. If not, use the default device. - */ -int -ski_getdev(void **vdev, const char *devspec, const char **path) -{ - struct ski_devdesc **dev = (struct ski_devdesc **)vdev; - int rv; - - /* - * If it looks like this is just a path and no - * device, go with the current device. - */ - if ((devspec == NULL) || - (devspec[0] == '/') || - (strchr(devspec, ':') == NULL)) { - - if (((rv = ski_parsedev(dev, getenv("currdev"), NULL)) == 0) && - (path != NULL)) - *path = devspec; - return(rv); - } - - /* - * Try to parse the device name off the beginning of the devspec - */ - return(ski_parsedev(dev, devspec, path)); -} - -/* - * Point (dev) at an allocated device specifier matching the string version - * at the beginning of (devspec). Return a pointer to the remaining - * text in (path). - * - * In all cases, the beginning of (devspec) is compared to the names - * of known devices in the device switch, and then any following text - * is parsed according to the rules applied to the device type. - * - * For disk-type devices, the syntax is: - * - * disk<unit>[s<slice>][<partition>]: - * - */ -static int -ski_parsedev(struct ski_devdesc **dev, const char *devspec, const char **path) -{ - struct ski_devdesc *idev; - struct devsw *dv; - int i, unit, slice, partition, err; - char *cp; - const char *np; - - /* minimum length check */ - if (strlen(devspec) < 2) - return(EINVAL); - - /* look for a device that matches */ - for (i = 0, dv = NULL; devsw[i] != NULL; i++) { - if (!strncmp(devspec, devsw[i]->dv_name, strlen(devsw[i]->dv_name))) { - dv = devsw[i]; - break; - } - } - - if (dv == NULL) - return(ENOENT); - idev = malloc(sizeof(struct ski_devdesc)); - err = 0; - np = (devspec + strlen(dv->dv_name)); - - switch(dv->dv_type) { - case DEVT_NONE: /* XXX what to do here? Do we care? */ - break; - - case DEVT_DISK: - unit = -1; - slice = -1; - partition = -1; - if (*np && (*np != ':')) { - unit = strtol(np, &cp, 10); /* next comes the unit number */ - if (cp == np) { - err = EUNIT; - goto fail; - } - if (*cp == 's') { /* got a slice number */ - np = cp + 1; - slice = strtol(np, &cp, 10); - if (cp == np) { - err = ESLICE; - goto fail; - } - } - if (*cp && (*cp != ':')) { - partition = *cp - 'a'; /* get a partition number */ - if ((partition < 0) || (partition >= MAXPARTITIONS)) { - err = EPART; - goto fail; - } - cp++; - } - } - if (*cp && (*cp != ':')) { - err = EINVAL; - goto fail; - } - - idev->d_kind.skidisk.unit = unit; - idev->d_kind.skidisk.slice = slice; - idev->d_kind.skidisk.partition = partition; - - if (path != NULL) - *path = (*cp == 0) ? cp : cp + 1; - break; - - case DEVT_NET: - unit = 0; - - if (*np && (*np != ':')) { - unit = strtol(np, &cp, 0); /* get unit number if present */ - if (cp == np) { - err = EUNIT; - goto fail; - } - } - if (*cp && (*cp != ':')) { - err = EINVAL; - goto fail; - } - - idev->d_kind.netif.unit = unit; - if (path != NULL) - *path = (*cp == 0) ? cp : cp + 1; - break; - - default: - err = EINVAL; - goto fail; - } - idev->d_dev = dv; - idev->d_type = dv->dv_type; - if (dev == NULL) { - free(idev); - } else { - *dev = idev; - } - return(0); - - fail: - free(idev); - return(err); -} - - -char * -ski_fmtdev(void *vdev) -{ - struct ski_devdesc *dev = (struct ski_devdesc *)vdev; - static char buf[128]; /* XXX device length constant? */ - char *cp; - - switch(dev->d_type) { - case DEVT_NONE: - strcpy(buf, "(no device)"); - break; - - case DEVT_DISK: - cp = buf; - cp += sprintf(cp, "%s%d", dev->d_dev->dv_name, dev->d_kind.skidisk.unit); - if (dev->d_kind.skidisk.slice > 0) - cp += sprintf(cp, "s%d", dev->d_kind.skidisk.slice); - if (dev->d_kind.skidisk.partition >= 0) - cp += sprintf(cp, "%c", dev->d_kind.skidisk.partition + 'a'); - strcat(cp, ":"); - break; - - case DEVT_NET: - sprintf(buf, "%s%d:", dev->d_dev->dv_name, dev->d_kind.netif.unit); - break; - } - return(buf); -} - - -/* - * Set currdev to suit the value being supplied in (value) - */ -int -ski_setcurrdev(struct env_var *ev, int flags, void *value) -{ - struct ski_devdesc *ncurr; - int rv; - - if ((rv = ski_parsedev(&ncurr, value, NULL)) != 0) - return(rv); - free(ncurr); - env_setenv(ev->ev_name, flags | EV_NOHOOK, value, NULL, NULL); - return(0); -} - diff --git a/sys/boot/ia64/libski/efi_stub.c b/sys/boot/ia64/libski/efi_stub.c deleted file mode 100644 index f2a1dff..0000000 --- a/sys/boot/ia64/libski/efi_stub.c +++ /dev/null @@ -1,268 +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/bootinfo.h> -#include <efi.h> -#include <stand.h> -#include "libski.h" - -extern void acpi_root; -extern void sal_systab; - -extern void acpi_stub_init(void); -extern void sal_stub_init(void); - -EFI_CONFIGURATION_TABLE efi_cfgtab[] = { - { ACPI_20_TABLE_GUID, &acpi_root }, - { SAL_SYSTEM_TABLE_GUID, &sal_systab } -}; - - -static EFI_STATUS GetTime(EFI_TIME *, EFI_TIME_CAPABILITIES *); -static EFI_STATUS SetTime(EFI_TIME *); -static EFI_STATUS GetWakeupTime(BOOLEAN *, BOOLEAN *, EFI_TIME *); -static EFI_STATUS SetWakeupTime(BOOLEAN, EFI_TIME *); - -static EFI_STATUS SetVirtualAddressMap(UINTN, UINTN, UINT32, - EFI_MEMORY_DESCRIPTOR*); -static EFI_STATUS ConvertPointer(UINTN, VOID **); - -static EFI_STATUS GetVariable(CHAR16 *, EFI_GUID *, UINT32 *, UINTN *, VOID *); -static EFI_STATUS GetNextVariableName(UINTN *, CHAR16 *, EFI_GUID *); -static EFI_STATUS SetVariable(CHAR16 *, EFI_GUID *, UINT32, UINTN, VOID *); - -static EFI_STATUS GetNextHighMonotonicCount(UINT32 *); -static EFI_STATUS ResetSystem(EFI_RESET_TYPE, EFI_STATUS, UINTN, CHAR16 *); - -EFI_RUNTIME_SERVICES efi_rttab = { - /* Header. */ - { EFI_RUNTIME_SERVICES_SIGNATURE, - EFI_RUNTIME_SERVICES_REVISION, - 0, /* XXX HeaderSize */ - 0, /* XXX CRC32 */ - }, - - /* Time services */ - GetTime, - SetTime, - GetWakeupTime, - SetWakeupTime, - - /* Virtual memory services */ - SetVirtualAddressMap, - ConvertPointer, - - /* Variable services */ - GetVariable, - GetNextVariableName, - SetVariable, - - /* Misc */ - GetNextHighMonotonicCount, - ResetSystem -}; - -EFI_SYSTEM_TABLE efi_systab = { - /* Header. */ - { EFI_SYSTEM_TABLE_SIGNATURE, - EFI_SYSTEM_TABLE_REVISION, - 0, /* XXX HeaderSize */ - 0, /* XXX CRC32 */ - }, - - /* Firmware info. */ - L"FreeBSD", 0, - - /* Console stuff. */ - NULL, NULL, - NULL, NULL, - NULL, NULL, - - /* Services (runtime first). */ - &efi_rttab, - NULL, - - /* Configuration tables. */ - sizeof(efi_cfgtab)/sizeof(EFI_CONFIGURATION_TABLE), - efi_cfgtab -}; - -static EFI_STATUS -unsupported(const char *func) -{ - printf("EFI: %s not supported\n", func); - return (EFI_UNSUPPORTED); -} - -static EFI_STATUS -GetTime(EFI_TIME *time, EFI_TIME_CAPABILITIES *caps) -{ - UINT32 comps[8]; - - ssc((UINT64)comps, 0, 0, 0, SSC_GET_RTC); - time->Year = comps[0] + 1900; - time->Month = comps[1] + 1; - time->Day = comps[2]; - time->Hour = comps[3]; - time->Minute = comps[4]; - time->Second = comps[5]; - time->Pad1 = time->Pad2 = 0; - time->Nanosecond = 0; - time->TimeZone = 0; - time->Daylight = 0; - return (EFI_SUCCESS); -} - -static EFI_STATUS -SetTime(EFI_TIME *time) -{ - return (EFI_SUCCESS); -} - -static EFI_STATUS -GetWakeupTime(BOOLEAN *enabled, BOOLEAN *pending, EFI_TIME *time) -{ - return (unsupported(__func__)); -} - -static EFI_STATUS -SetWakeupTime(BOOLEAN enable, EFI_TIME *time) -{ - return (unsupported(__func__)); -} - -static void -Reloc(void *addr, UINT64 delta) -{ - UINT64 **fpp = addr; - - *fpp[0] += delta; - *fpp[1] += delta; - *fpp += delta >> 3; -} - -static EFI_STATUS -SetVirtualAddressMap(UINTN mapsz, UINTN descsz, UINT32 version, - EFI_MEMORY_DESCRIPTOR *memmap) -{ - UINT64 delta; - - delta = memmap->VirtualStart - memmap->PhysicalStart; - Reloc(&efi_rttab.GetTime, delta); - Reloc(&efi_rttab.SetTime, delta); - return (EFI_SUCCESS); /* Hah... */ -} - -static EFI_STATUS -ConvertPointer(UINTN debug, VOID **addr) -{ - return (unsupported(__func__)); -} - -static EFI_STATUS -GetVariable(CHAR16 *name, EFI_GUID *vendor, UINT32 *attrs, UINTN *datasz, - VOID *data) -{ - return (unsupported(__func__)); -} - -static EFI_STATUS -GetNextVariableName(UINTN *namesz, CHAR16 *name, EFI_GUID *vendor) -{ - return (unsupported(__func__)); -} - -static EFI_STATUS -SetVariable(CHAR16 *name, EFI_GUID *vendor, UINT32 attrs, UINTN datasz, - VOID *data) -{ - return (unsupported(__func__)); -} - -static EFI_STATUS -GetNextHighMonotonicCount(UINT32 *high) -{ - static UINT32 counter = 0; - - *high = counter++; - return (EFI_SUCCESS); -} - -static EFI_STATUS -ResetSystem(EFI_RESET_TYPE type, EFI_STATUS status, UINTN datasz, - CHAR16 *data) -{ - return (unsupported(__func__)); -} - -int -ski_init_stubs(struct bootinfo *bi) -{ - EFI_MEMORY_DESCRIPTOR *memp; - - /* Describe the SKI memory map. */ - bi->bi_memmap = (u_int64_t)(bi + 1); - bi->bi_memmap_size = 4 * sizeof(EFI_MEMORY_DESCRIPTOR); - bi->bi_memdesc_size = sizeof(EFI_MEMORY_DESCRIPTOR); - bi->bi_memdesc_version = 1; - - memp = (EFI_MEMORY_DESCRIPTOR *)bi->bi_memmap; - - memp[0].Type = EfiPalCode; - memp[0].PhysicalStart = 0x100000; - memp[0].VirtualStart = 0; - memp[0].NumberOfPages = (4L*1024*1024)>>12; - memp[0].Attribute = EFI_MEMORY_WB | EFI_MEMORY_RUNTIME; - - memp[1].Type = EfiConventionalMemory; - memp[1].PhysicalStart = 5L*1024*1024; - memp[1].VirtualStart = 0; - memp[1].NumberOfPages = (128L*1024*1024)>>12; - memp[1].Attribute = EFI_MEMORY_WB; - - memp[2].Type = EfiConventionalMemory; - memp[2].PhysicalStart = 4L*1024*1024*1024; - memp[2].VirtualStart = 0; - memp[2].NumberOfPages = (64L*1024*1024)>>12; - memp[2].Attribute = EFI_MEMORY_WB; - - memp[3].Type = EfiMemoryMappedIOPortSpace; - memp[3].PhysicalStart = 0xffffc000000; - memp[3].VirtualStart = 0; - memp[3].NumberOfPages = (64L*1024*1024)>>12; - memp[3].Attribute = EFI_MEMORY_UC; - - bi->bi_systab = (u_int64_t)&efi_systab; - - sal_stub_init(); - acpi_stub_init(); - - return (0); -} diff --git a/sys/boot/ia64/libski/elf_freebsd.c b/sys/boot/ia64/libski/elf_freebsd.c deleted file mode 100644 index 4f58047..0000000 --- a/sys/boot/ia64/libski/elf_freebsd.c +++ /dev/null @@ -1,202 +0,0 @@ -/* $NetBSD: loadfile.c,v 1.10 1998/06/25 06:45:46 ross Exp $ */ - -/*- - * Copyright (c) 1997 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, - * NASA Ames Research Center. - * - * 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS - * ``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 FOUNDATION OR CONTRIBUTORS - * 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. - */ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Ralph Campbell. - * - * 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. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 REGENTS OR CONTRIBUTORS 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. - * - * @(#)boot.c 8.1 (Berkeley) 6/10/93 - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <stand.h> -#include <string.h> - -#include <sys/param.h> -#include <sys/linker.h> -#include <machine/elf.h> -#include <machine/bootinfo.h> -#include <machine/ia64_cpu.h> -#include <machine/vmparam.h> - -#include "bootstrap.h" -#include "libski.h" - -#define _KERNEL - -static int elf64_exec(struct preloaded_file *amp); - -struct file_format ia64_elf = { elf64_loadfile, elf64_exec }; - -#define PTE_MA_WB 0 -#define PTE_MA_UC 4 -#define PTE_MA_UCE 5 -#define PTE_MA_WC 6 -#define PTE_MA_NATPAGE 7 - -#define PTE_PL_KERN 0 -#define PTE_PL_USER 3 - -#define PTE_AR_R 0 -#define PTE_AR_RX 1 -#define PTE_AR_RW 2 -#define PTE_AR_RWX 3 -#define PTE_AR_R_RW 4 -#define PTE_AR_RX_RWX 5 -#define PTE_AR_RWX_RW 6 -#define PTE_AR_X_RX 7 - -/* - * A short-format VHPT entry. Also matches the TLB insertion format. - */ -struct ia64_pte { - u_int64_t pte_p :1; /* bits 0..0 */ - u_int64_t pte_rv1 :1; /* bits 1..1 */ - u_int64_t pte_ma :3; /* bits 2..4 */ - u_int64_t pte_a :1; /* bits 5..5 */ - u_int64_t pte_d :1; /* bits 6..6 */ - u_int64_t pte_pl :2; /* bits 7..8 */ - u_int64_t pte_ar :3; /* bits 9..11 */ - u_int64_t pte_ppn :38; /* bits 12..49 */ - u_int64_t pte_rv2 :2; /* bits 50..51 */ - u_int64_t pte_ed :1; /* bits 52..52 */ - u_int64_t pte_ig :11; /* bits 53..63 */ -}; - -static struct bootinfo bootinfo; - -void -enter_kernel(const char* filename, u_int64_t start, struct bootinfo *bi) -{ - printf("Entering %s at 0x%lx...\n", filename, start); - - while (*filename == '/') - filename++; - ssc(0, (u_int64_t) filename, 0, 0, SSC_LOAD_SYMBOLS); - - __asm __volatile("mov cr.ipsr=%0" - :: "r"(IA64_PSR_IC - | IA64_PSR_DT - | IA64_PSR_RT - | IA64_PSR_IT - | IA64_PSR_BN)); - __asm __volatile("mov cr.iip=%0" :: "r"(start)); - __asm __volatile("mov cr.ifs=r0;;"); - __asm __volatile("mov r8=%0" :: "r" (bi)); - __asm __volatile("rfi;;"); -} - -static int -elf64_exec(struct preloaded_file *fp) -{ - struct file_metadata *md; - Elf_Ehdr *hdr; - struct ia64_pte pte; - struct bootinfo *bi; - - if ((md = file_findmetadata(fp, MODINFOMD_ELFHDR)) == NULL) - return(EFTYPE); /* XXX actually EFUCKUP */ - hdr = (Elf_Ehdr *)&(md->md_data); - - /* - * Ugly hack, similar to linux. Dump the bootinfo into a - * special page reserved in the link map. - */ - bi = &bootinfo; - bzero(bi, sizeof(struct bootinfo)); - bi_load(bi, fp); - - /* - * Region 6 is direct mapped UC and region 7 is direct mapped - * WC. The details of this is controlled by the Alt {I,D}TLB - * handlers. Here we just make sure that they have the largest - * possible page size to minimise TLB usage. - */ - ia64_set_rr(IA64_RR_BASE(6), (6 << 8) | (28 << 2)); - ia64_set_rr(IA64_RR_BASE(7), (7 << 8) | (28 << 2)); - - bzero(&pte, sizeof(pte)); - pte.pte_p = 1; - pte.pte_ma = PTE_MA_WB; - pte.pte_a = 1; - pte.pte_d = 1; - pte.pte_pl = PTE_PL_KERN; - pte.pte_ar = PTE_AR_RWX; - pte.pte_ppn = 0; - - __asm __volatile("mov cr.ifa=%0" :: "r"(IA64_RR_BASE(7))); - __asm __volatile("mov cr.itir=%0" :: "r"(28 << 2)); - __asm __volatile("srlz.i;;"); - __asm __volatile("itr.i itr[%0]=%1;;" - :: "r"(0), "r"(*(u_int64_t*)&pte)); - __asm __volatile("srlz.i;;"); - __asm __volatile("itr.d dtr[%0]=%1;;" - :: "r"(0), "r"(*(u_int64_t*)&pte)); - __asm __volatile("srlz.i;;"); - - enter_kernel(fp->f_name, hdr->e_entry, bi); -} diff --git a/sys/boot/ia64/libski/exit.c b/sys/boot/ia64/libski/exit.c deleted file mode 100644 index aeac67c..0000000 --- a/sys/boot/ia64/libski/exit.c +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * Copyright (c) 2000 Doug Rabson - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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/param.h> -#include <sys/time.h> -#include <stddef.h> -#include <stand.h> -#include <stdarg.h> - -#include "libski.h" - -void -exit(int code) -{ - ssc(code, 0, 0, 0, SSC_EXIT); -} diff --git a/sys/boot/ia64/libski/libski.h b/sys/boot/ia64/libski/libski.h deleted file mode 100644 index 043177c..0000000 --- a/sys/boot/ia64/libski/libski.h +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * Copyright (c) 2001 Doug Rabson - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. - * - * $FreeBSD$ - */ - -/* - * SKI fully-qualified device descriptor - */ -struct ski_devdesc { - struct devsw *d_dev; - int d_type; -#define DEVT_NONE 0 -#define DEVT_DISK 1 -#define DEVT_NET 2 - union { - struct { - int unit; - int slice; - int partition; - } skidisk; - struct { - int unit; /* XXX net layer lives over these? */ - } netif; - } d_kind; -}; - -extern int ski_getdev(void **vdev, const char *devspec, const char **path); -extern char *ski_fmtdev(void *vdev); -extern int ski_setcurrdev(struct env_var *ev, int flags, void *value); - -#define MAXDEV 31 /* maximum number of distinct devices */ - -typedef unsigned long physaddr_t; - -/* exported devices XXX rename? */ -extern struct devsw skifs_dev; -extern struct devsw ski_disk; -extern struct netif_driver ski_net; - -/* Wrapper over SKI filesystems. */ -extern struct fs_ops ski_fsops; - -/* this is in startup code */ -extern void delay(int); -extern void reboot(void); - -extern ssize_t ski_copyin(const void *src, vm_offset_t dest, size_t len); -extern ssize_t ski_copyout(const vm_offset_t src, void *dest, size_t len); -extern ssize_t ski_readin(int fd, vm_offset_t dest, size_t len); - -extern int ski_boot(void); -extern int ski_autoload(void); - -struct bootinfo; -struct preloaded_file; -extern int bi_load(struct bootinfo *, struct preloaded_file *); - -#define SSC_CONSOLE_INIT 20 -#define SSC_GETCHAR 21 -#define SSC_PUTCHAR 31 -#define SSC_OPEN 50 -#define SSC_CLOSE 51 -#define SSC_READ 52 -#define SSC_WRITE 53 -#define SSC_GET_COMPLETION 54 -#define SSC_WAIT_COMPLETION 55 -#define SSC_GET_RTC 65 -#define SSC_EXIT 66 -#define SSC_LOAD_SYMBOLS 69 -#define SSC_SAL_SET_VECTORS 120 - -u_int64_t ssc(u_int64_t in0, u_int64_t in1, u_int64_t in2, u_int64_t in3, - int which); diff --git a/sys/boot/ia64/libski/module.c b/sys/boot/ia64/libski/module.c deleted file mode 100644 index 57f697c..0000000 --- a/sys/boot/ia64/libski/module.c +++ /dev/null @@ -1,40 +0,0 @@ -/*- - * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <stand.h> - -/* - * Use voodoo to load modules required by current hardware. - */ -int -ski_autoload(void) -{ - /* XXX use PnP to locate stuff here */ - return (0); -} diff --git a/sys/boot/ia64/libski/pal_stub.S b/sys/boot/ia64/libski/pal_stub.S deleted file mode 100644 index e247661..0000000 --- a/sys/boot/ia64/libski/pal_stub.S +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2003 Marcel Moolenaar - * Copyright (c) 2001 Doug Rabson - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. - * - * $FreeBSD$ - */ - -#include <machine/asm.h> - - .text -ENTRY(PalProc, 0) - cmp.eq p6,p0=6,r28 // PAL_PTCE_INFO -(p6) br.cond.dptk pal_ptce_info - ;; - cmp.eq p6,p0=8,r28 // PAL_VM_SUMMARY -(p6) br.cond.dptk pal_vm_summary - ;; - cmp.eq p6,p0=14,r28 // PAL_FREQ_RATIOS -(p6) br.cond.dptk pal_freq_ratios - ;; - cmp.eq p6,p0=29,r28 // PAL_HALT_LIGHT -(p6) br.cond.dptk pal_halt_light - ;; - mov r15=66 // EXIT - break.i 0x80000 // SSC - ;; -pal_ptce_info: - mov r8=0 - mov r9=0 // base - movl r10=0x0000000100000001 // loop counts (outer|inner) - mov r11=0x0000000000000000 // loop strides (outer|inner) - br.sptk b0 -pal_vm_summary: - mov r8=0 - movl r9=(8<<40)|(8<<32) // VM info 1 - mov r10=(18<<8)|(41<<0) // VM info 2 - mov r11=0 - br.sptk b0 -pal_freq_ratios: - mov r8=0 - movl r9=0x0000000B00000002 // processor ratio 11/2 - movl r10=0x0000000100000001 // bus ratio 1/1 - movl r11=0x0000000B00000002 // ITC ratio 11/2 - br.sptk b0 -pal_halt_light: - mov r8=0 - mov r9=0 - mov r10=0 - mov r11=0 - br.sptk b0 -END(PalProc) diff --git a/sys/boot/ia64/libski/sal_stub.c b/sys/boot/ia64/libski/sal_stub.c deleted file mode 100644 index b5661a3..0000000 --- a/sys/boot/ia64/libski/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; -} diff --git a/sys/boot/ia64/libski/skiconsole.c b/sys/boot/ia64/libski/skiconsole.c deleted file mode 100644 index e5cea3d..0000000 --- a/sys/boot/ia64/libski/skiconsole.c +++ /dev/null @@ -1,96 +0,0 @@ -/*- - * Copyright (c) 2000 Doug Rabson - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <stand.h> - -#include "bootstrap.h" -#include "libski.h" - -static void -ski_cons_probe(struct console *cp) -{ - cp->c_flags |= C_PRESENTIN | C_PRESENTOUT; -} - -static int -ski_cons_init(int arg) -{ - ssc(0, 0, 0, 0, SSC_CONSOLE_INIT); - return 0; -} - -void -ski_cons_putchar(int c) -{ - ssc(c, 0, 0, 0, SSC_PUTCHAR); -} - -static int pollchar = -1; - -int -ski_cons_getchar() -{ - int c; - - if (pollchar > 0) { - c = pollchar; - pollchar = -1; - return c; - } - - do { - c = ssc(0, 0, 0, 0, SSC_GETCHAR); - } while (c == 0); - - return c; -} - -int -ski_cons_poll() -{ - int c; - if (pollchar > 0) - return 1; - c = ssc(0, 0, 0, 0, SSC_GETCHAR); - if (!c) - return 0; - pollchar = c; - return 1; -} - -struct console ski_console = { - "ski", - "ia64 SKI console", - 0, - ski_cons_probe, - ski_cons_init, - ski_cons_putchar, - ski_cons_getchar, - ski_cons_poll -}; diff --git a/sys/boot/ia64/libski/skifs.c b/sys/boot/ia64/libski/skifs.c deleted file mode 100644 index 5a272c7..0000000 --- a/sys/boot/ia64/libski/skifs.c +++ /dev/null @@ -1,193 +0,0 @@ -/*- - * Copyright (c) 2001 Doug Rabson - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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/param.h> -#include <sys/time.h> -#include <stddef.h> -#include <stand.h> -#include <stdarg.h> - -#include "libski.h" - -struct disk_req { - unsigned long addr; - unsigned len; -}; - -struct disk_stat { - int fd; - unsigned count; -}; - -static int -skifs_open(const char *path, struct open_file *f) -{ - int fd; - - /* - * Skip leading '/' so that our pretend filesystem starts in - * the current working directory. - */ - while (*path == '/') - path++; - - fd = ssc((u_int64_t) path, 1, 0, 0, SSC_OPEN); - if (fd > 0) { - f->f_fsdata = (void*)(u_int64_t) fd; - return 0; - } - return ENOENT; -} - -static int -skifs_close(struct open_file *f) -{ - ssc((u_int64_t) f->f_fsdata, 0, 0, 0, SSC_CLOSE); - return 0; -} - -static int -skifs_read(struct open_file *f, void *buf, size_t size, size_t *resid) -{ - struct disk_req req; - struct disk_stat stat; - - req.len = size; - req.addr = (u_int64_t) buf; - ssc((u_int64_t) f->f_fsdata, 1, (u_int64_t) &req, f->f_offset, SSC_READ); - stat.fd = (u_int64_t) f->f_fsdata; - ssc((u_int64_t)&stat, 0, 0, 0, SSC_WAIT_COMPLETION); - - *resid = size - stat.count; - f->f_offset += stat.count; - return 0; -} - -static off_t -skifs_seek(struct open_file *f, off_t offset, int where) -{ - u_int64_t base; - - switch (where) { - case SEEK_SET: - base = 0; - break; - - case SEEK_CUR: - base = f->f_offset; - break; - - case SEEK_END: - printf("can't find end of file in SKI\n"); - base = f->f_offset; - break; - } - - f->f_offset = base + offset; - return base; -} - -static int -skifs_stat(struct open_file *f, struct stat *sb) -{ - bzero(sb, sizeof(*sb)); - sb->st_mode = S_IFREG | S_IRUSR; - return 0; -} - -static int -skifs_readdir(struct open_file *f, struct dirent *d) -{ - return ENOENT; -} - -struct fs_ops ski_fsops = { - "fs", - skifs_open, - skifs_close, - skifs_read, - null_write, - skifs_seek, - skifs_stat, - skifs_readdir -}; - -static int -skifs_dev_init(void) -{ - return 0; -} - -/* - * Print information about disks - */ -static void -skifs_dev_print(int verbose) -{ -} - -/* - * Attempt to open the disk described by (dev) for use by (f). - * - * Note that the philosophy here is "give them exactly what - * they ask for". This is necessary because being too "smart" - * about what the user might want leads to complications. - * (eg. given no slice or partition value, with a disk that is - * sliced - are they after the first BSD slice, or the DOS - * slice before it?) - */ -static int -skifs_dev_open(struct open_file *f, ...) -{ - return 0; -} - -static int -skifs_dev_close(struct open_file *f) -{ - - return 0; -} - -static int -skifs_dev_strategy(void *devdata, int rw, daddr_t dblk, size_t size, char *buf, size_t *rsize) -{ - return 0; -} - -struct devsw skifs_dev = { - "fs", - DEVT_DISK, - skifs_dev_init, - skifs_dev_strategy, - skifs_dev_open, - skifs_dev_close, - noioctl, - skifs_dev_print -}; diff --git a/sys/boot/ia64/libski/ssc.c b/sys/boot/ia64/libski/ssc.c deleted file mode 100644 index e1f871c..0000000 --- a/sys/boot/ia64/libski/ssc.c +++ /dev/null @@ -1,53 +0,0 @@ -/*- - * Copyright (c) 2001 Doug Rabson - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <stand.h> -#include "libski.h" - -/* - * Ugh... Work around a bug in the Linux version of ski for SSC_GET_RTC. The - * PSR.dt register is not preserved properly and causes further memory - * references to be done without translation. All we need to do is preserve - * PSR.dt across the SSC call. We do this by saving and restoring psr.l - * completely. - */ -u_int64_t -ssc(u_int64_t in0, u_int64_t in1, u_int64_t in2, u_int64_t in3, int which) -{ - register u_int64_t psr; - register u_int64_t ret0 __asm("r8"); - - __asm __volatile("mov %0=psr;;" : "=r"(psr)); - __asm __volatile("mov r15=%1\n\t" - "break 0x80000;;" - : "=r"(ret0) - : "r"(which), "r"(in0), "r"(in1), "r"(in2), "r"(in3)); - __asm __volatile("mov psr.l=%0;; srlz.d" :: "r"(psr)); - return ret0; -} diff --git a/sys/boot/ia64/libski/time.c b/sys/boot/ia64/libski/time.c deleted file mode 100644 index c66bdee..0000000 --- a/sys/boot/ia64/libski/time.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright (c) 1999, 2000 - * Intel Corporation. - * 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. - * - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * - * This product includes software developed by Intel Corporation and - * its contributors. - * - * 4. Neither the name of Intel Corporation or its contributors may be - * used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION AND CONTRIBUTORS ``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 INTEL CORPORATION OR CONTRIBUTORS 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 <time.h> -#include <sys/time.h> -#include <stand.h> - -#include "libski.h" - -/* -// Accurate only for the past couple of centuries; -// that will probably do. -// -// (#defines From FreeBSD 3.2 lib/libc/stdtime/tzfile.h) -*/ - -#define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0)) -#define SECSPERHOUR ( 60*60 ) -#define SECSPERDAY (24 * SECSPERHOUR) - -struct ssc_time { - int Year; - int Month; - int Day; - int Hour; - int Minute; - int Second; - int Msec; - int Wday; -}; - -time_t -EfiTimeToUnixTime(struct ssc_time *ETime) -{ - /* - // These arrays give the cumulative number of days up to the first of the - // month number used as the index (1 -> 12) for regular and leap years. - // The value at index 13 is for the whole year. - */ - static time_t CumulativeDays[2][14] = { - {0, - 0, - 31, - 31 + 28, - 31 + 28 + 31, - 31 + 28 + 31 + 30, - 31 + 28 + 31 + 30 + 31, - 31 + 28 + 31 + 30 + 31 + 30, - 31 + 28 + 31 + 30 + 31 + 30 + 31, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30, - 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31 }, - {0, - 0, - 31, - 31 + 29, - 31 + 29 + 31, - 31 + 29 + 31 + 30, - 31 + 29 + 31 + 30 + 31, - 31 + 29 + 31 + 30 + 31 + 30, - 31 + 29 + 31 + 30 + 31 + 30 + 31, - 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31, - 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30, - 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, - 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30, - 31 + 29 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31 }}; - - time_t UTime; - int Year; - - ETime->Year += 1900; - - /* - // Do a santity check - */ - if ( ETime->Year < 1998 || ETime->Year > 2099 || - ETime->Month == 0 || ETime->Month > 12 || - ETime->Day == 0 || ETime->Month > 31 || - ETime->Hour > 23 || - ETime->Minute > 59 || - ETime->Second > 59 ) { - return (0); - } - - /* - // Years - */ - UTime = 0; - for (Year = 1970; Year != ETime->Year; ++Year) { - UTime += (CumulativeDays[isleap(Year)][13] * SECSPERDAY); - } - - /* - // UTime should now be set to 00:00:00 on Jan 1 of the file's year. - // - // Months - */ - UTime += (CumulativeDays[isleap(ETime->Year)][ETime->Month] * SECSPERDAY); - - /* - // UTime should now be set to 00:00:00 on the first of the file's month and year - // - // Days -- Don't count the file's day - */ - UTime += (((ETime->Day > 0) ? ETime->Day-1:0) * SECSPERDAY); - - /* - // Hours - */ - UTime += (ETime->Hour * SECSPERHOUR); - - /* - // Minutes - */ - UTime += (ETime->Minute * 60); - - /* - // Seconds - */ - UTime += ETime->Second; - - return UTime; -} - -time_t -time(time_t *tloc) -{ - struct ssc_time time; - - ssc((u_int64_t) &time, 0, 0, 0, SSC_GET_RTC); - - return *tloc = EfiTimeToUnixTime(&time); -} diff --git a/sys/boot/ia64/skiload/Makefile b/sys/boot/ia64/skiload/Makefile deleted file mode 100644 index 2003b963..0000000 --- a/sys/boot/ia64/skiload/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -# $FreeBSD$ - -.PATH: ${.CURDIR}/../common - -PROG= skiload -NOMAN= -NEWVERSWHAT= "ia64 SKI boot" ${MACHINE_ARCH} -BINDIR?= /boot -STRIP= # We must not strip skiload at install time. - -SRCS= conf.c main.c start.S vers.c - -.if !defined(NOFORTH) -# Enable BootForth -BOOT_FORTH= yes -CFLAGS+= -DBOOT_FORTH -CFLAGS+= -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/${MACHINE_ARCH} -LIBFICL= ${.OBJDIR}/../../ficl/libficl.a -.endif - -LIBSKI= ${.OBJDIR}/../libski/libski.a - -# Always add MI sources -.PATH: ${.CURDIR}/../../common -.include "${.CURDIR}/../../common/Makefile.inc" - -CFLAGS+= -I${.CURDIR}/../../common -CFLAGS+= -I${.CURDIR}/../libski -CFLAGS+= -DLOADER - -LDFLAGS= -Wl,-T${.CURDIR}/ldscript.ia64 - -CLEANFILES= vers.c ${PROG}.help - -vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version - sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT} - -${PROG}.help: help.common - cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk \ - > ${.TARGET} - -FILES= ${PROG}.help - -DPADD= ${LIBFICL} ${LIBSKI} ${LIBSTAND} -LDADD= ${LIBFICL} ${LIBSKI} -lstand - -.include <bsd.prog.mk> diff --git a/sys/boot/ia64/skiload/conf.c b/sys/boot/ia64/skiload/conf.c deleted file mode 100644 index 5066a77..0000000 --- a/sys/boot/ia64/skiload/conf.c +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 1997 - * Matthias Drochner. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed for the NetBSD Project - * by Matthias Drochner. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * 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. - * - * $NetBSD: conf.c,v 1.2 1997/03/22 09:03:29 thorpej Exp $ - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <stand.h> - -#include "libski.h" - -/* - * We could use linker sets for some or all of these, but - * then we would have to control what ended up linked into - * the bootstrap. So it's easier to conditionalise things - * here. - * - * XXX rename these arrays to be consistent and less namespace-hostile - */ - -/* Exported for libstand */ -struct devsw *devsw[] = { - &skifs_dev, - NULL -}; - -struct fs_ops *file_system[] = { - &ski_fsops, - &ufs_fsops, - &gzipfs_fsops, - NULL -}; - -/* Exported for ia64 only */ -/* - * Sort formats so that those that can detect based on arguments - * rather than reading the file go first. - */ -extern struct file_format ia64_elf; - -struct file_format *file_formats[] = { - &ia64_elf, - NULL -}; - -/* - * Consoles - * - * We don't prototype these in libalpha.h because they require - * data structures from bootstrap.h as well. - */ -extern struct console ski_console; - -struct console *consoles[] = { - &ski_console, - NULL -}; diff --git a/sys/boot/ia64/skiload/ldscript.ia64 b/sys/boot/ia64/skiload/ldscript.ia64 deleted file mode 100644 index e4e1dad..0000000 --- a/sys/boot/ia64/skiload/ldscript.ia64 +++ /dev/null @@ -1,61 +0,0 @@ -/* $FreeBSD$ */ -OUTPUT_FORMAT("elf64-ia64-little", "elf64-ia64-little", "elf64-ia64-little") -OUTPUT_ARCH(ia64) -ENTRY(_start) -SECTIONS -{ - /* Read-only sections, merged into text segment: */ - . = 0x100000; - .text : { - *(.text .stub .text.* .gnu.linkonce.t.*) - /* .gnu.warning sections are handled specially by elf32.em. */ - *(.gnu.warning) - *(.plt) - } =0x00300000010070000002000001000400 - .data : { - *(.rodata .rodata.* .gnu.linkonce.r.*) - *(.rodata1) - *(.sdata2 .sdata2.* .gnu.linkonce.s2.*) - *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*) - *(.opd) - *(.IA_64.unwind_info* .gnu.linkonce.ia64unwi.*) - *(.IA_64.unwind* .gnu.linkonce.ia64unw.*) - __start_set_Xcommand_set = .; - *(set_Xcommand_set) - __stop_set_Xcommand_set = .; - *(.data .data.* .gnu.linkonce.d.*) - *(.data1) - *(.plabel) - *(.dynbss) - *(.bss .bss.* .gnu.linkonce.b.*) - *(COMMON) - } - __gp = .; - .sdata : { - *(.got.plt .got) - *(.IA_64.pltoff) - *(.sdata .sdata.* .gnu.linkonce.s.*) - *(dynsbss) - *(.sbss .sbss.* .gnu.linkonce.sb.*) - *(.scommon) - } - .dynamic : { *(.dynamic) } - .rela : { - *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) - *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) - *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) - *(.rela.got) - *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*) - *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*) - *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*) - *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*) - *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) - *(.rela.plt) - *(.rela.IA_64.pltoff) - *(.relaset_*) - *(.rela.dyn .rela.dyn.*) - } - .hash : { *(.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } -} diff --git a/sys/boot/ia64/skiload/main.c b/sys/boot/ia64/skiload/main.c deleted file mode 100644 index f336d17..0000000 --- a/sys/boot/ia64/skiload/main.c +++ /dev/null @@ -1,128 +0,0 @@ -/*- - * Copyright (c) 1998 Michael Smith <msmith@freebsd.org> - * Copyright (c) 1998,2000 Doug Rabson <dfr@freebsd.org> - * 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 AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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 <stand.h> -#include <string.h> -#include <setjmp.h> -#include <machine/fpu.h> - -#include "bootstrap.h" -#include "libski.h" - -extern char bootprog_name[]; -extern char bootprog_rev[]; -extern char bootprog_date[]; -extern char bootprog_maker[]; - -struct ski_devdesc currdev; /* our current device */ -struct arch_switch archsw; /* MI/MD interface boundary */ - -void -ski_main(void) -{ - static char malloc[512*1024]; - int i; - - /* - * initialise the heap as early as possible. Once this is done, - * alloc() is usable. The stack is buried inside us, so this is - * safe. - */ - setheap((void *)malloc, (void *)(malloc + 512*1024)); - - /* - * XXX Chicken-and-egg problem; we want to have console output - * early, but some console attributes may depend on reading from - * eg. the boot device, which we can't do yet. We can use - * printf() etc. once this is done. - */ - cons_probe(); - - /* - * Initialise the block cache - */ - bcache_init(32, 512); /* 16k XXX tune this */ - - /* - * March through the device switch probing for things. - */ - for (i = 0; devsw[i] != NULL; i++) - if (devsw[i]->dv_init != NULL) - (devsw[i]->dv_init)(); - - printf("\n"); - printf("%s, Revision %s\n", bootprog_name, bootprog_rev); - printf("(%s, %s)\n", bootprog_maker, bootprog_date); -#if 0 - printf("Memory: %ld k\n", memsize() / 1024); -#endif - - /* XXX presumes that biosdisk is first in devsw */ - currdev.d_dev = devsw[0]; - currdev.d_type = currdev.d_dev->dv_type; - currdev.d_kind.skidisk.unit = 0; - /* XXX should be able to detect this, default to autoprobe */ - currdev.d_kind.skidisk.slice = -1; - /* default to 'a' */ - currdev.d_kind.skidisk.partition = 0; - -#if 0 - /* Create arc-specific variables */ - bootfile = GetEnvironmentVariable(ARCENV_BOOTFILE); - if (bootfile) - setenv("bootfile", bootfile, 1); -#endif - - env_setenv("currdev", EV_VOLATILE, ski_fmtdev(&currdev), - ski_setcurrdev, env_nounset); - env_setenv("loaddev", EV_VOLATILE, ski_fmtdev(&currdev), env_noset, - env_nounset); - - setenv("LINES", "24", 1); /* optional */ - - archsw.arch_autoload = ski_autoload; - archsw.arch_getdev = ski_getdev; - archsw.arch_copyin = ski_copyin; - archsw.arch_copyout = ski_copyout; - archsw.arch_readin = ski_readin; - - interact(); /* doesn't return */ - - exit(0); -} - -COMMAND_SET(quit, "quit", "exit the loader", command_quit); - -static int -command_quit(int argc, char *argv[]) -{ - exit(0); - return (CMD_OK); -} diff --git a/sys/boot/ia64/skiload/skiload.cmd b/sys/boot/ia64/skiload/skiload.cmd deleted file mode 100644 index 48b77e1..0000000 --- a/sys/boot/ia64/skiload/skiload.cmd +++ /dev/null @@ -1,16 +0,0 @@ -# $FreeBSD$ -iar -fr -pa -b enter_kernel -c -b printf -c -b rp -c -b ssc -c -b rp -c -bD -s 11 diff --git a/sys/boot/ia64/skiload/start.S b/sys/boot/ia64/skiload/start.S deleted file mode 100644 index b3ef1dd..0000000 --- a/sys/boot/ia64/skiload/start.S +++ /dev/null @@ -1,62 +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. - * - * $FreeBSD$ - */ - -#define STACKSIZE 16384 -#define FPSR_DEFAULT 0x0009804c0270033f - - .text - .global _start - .proc _start -_start: -{ .mlx - mov ar.rsc=0 - movl gp=__gp - ;; -} -{ .mlx - add r2=@gprel(stack),gp - movl r14=FPSR_DEFAULT - ;; -} -{ .mib - mov ar.bspstore=r2 - add r12=STACKSIZE-16,r2 - bsw.1 - ;; -} -{ .mmb - mov ar.rsc=3 - mov ar.fpsr=r14 - br.sptk ski_main - ;; -} - .endp _start - - .data - .align 16 -stack: .skip STACKSIZE diff --git a/sys/boot/ia64/skiload/version b/sys/boot/ia64/skiload/version deleted file mode 100644 index 6f4fc3c..0000000 --- a/sys/boot/ia64/skiload/version +++ /dev/null @@ -1,8 +0,0 @@ -$FreeBSD$ - -NOTE ANY CHANGES YOU MAKE TO THE BOOTBLOCKS HERE. The format of this -file is important. Make sure the current version number is on line 6. - -0.2: Pass the address of the bootinfo block to the kernel in register - r8. Keep it at the hardwired address for now. -0.1: Initial SKI version. |