diff options
author | Jason Wright <jason@cvs.openbsd.org> | 2001-08-18 21:09:16 +0000 |
---|---|---|
committer | Jason Wright <jason@cvs.openbsd.org> | 2001-08-18 21:09:16 +0000 |
commit | 8517440703e599fc787feb834732909522fe09f7 (patch) | |
tree | 68b9d09682ec2acbe4d8b451024781567da00221 /sys/arch/sparc64/include | |
parent | a2b4251cf4433ff7ff3616c4b52db4bf1868ff0c (diff) |
more includes from NetBSD
Diffstat (limited to 'sys/arch/sparc64/include')
-rw-r--r-- | sys/arch/sparc64/include/autoconf.h | 182 | ||||
-rw-r--r-- | sys/arch/sparc64/include/sparc64.h | 75 |
2 files changed, 257 insertions, 0 deletions
diff --git a/sys/arch/sparc64/include/autoconf.h b/sys/arch/sparc64/include/autoconf.h new file mode 100644 index 00000000000..c0b8e800d20 --- /dev/null +++ b/sys/arch/sparc64/include/autoconf.h @@ -0,0 +1,182 @@ +/* $NetBSD: autoconf.h,v 1.10 2001/07/24 19:32:11 eeh Exp $ */ + +/*- + * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Paul Kranenburg. + * + * 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 software was developed by the Computer Systems Engineering group + * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and + * contributed to Berkeley. + * + * All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Lawrence Berkeley Laboratory. + * + * 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 University of + * California, Berkeley and its contributors. + * 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. + * + * @(#)autoconf.h 8.2 (Berkeley) 9/30/93 + */ + +/* + * Autoconfiguration information. + */ + +#include <machine/bus.h> +#include <sparc64/dev/upavar.h> +#include <dev/sbus/sbusvar.h> + +/* This is used to map device classes to IPLs */ +struct intrmap { + char *in_class; + int in_lev; +}; +extern struct intrmap intrmap[]; + +/* The "mainbus" on ultra desktops is actually the UPA bus. We need to + * separate this from peripheral buses like SBUS and PCI because each bus may + * have different ways of encoding properties, such as "reg" and "interrupts". + * + * Eventually I'll create a real UPA bus module to allow servers with multiple + * peripheral buses and things like FHC bus systems. + */ + +/* + * Attach arguments presented by mainbus_attach() + * + * Large fields first followed by smaller ones to minimize stack space used. + */ +struct mainbus_attach_args { + bus_space_tag_t ma_bustag; /* parent bus tag */ + bus_dma_tag_t ma_dmatag; + char *ma_name; /* PROM node name */ + struct upa_reg *ma_reg; /* "reg" properties */ + u_int *ma_address; /* "address" properties -- 32 bits */ + u_int *ma_interrupts; /* "interrupts" properties */ + int ma_upaid; /* UPA bus ID */ + int ma_node; /* PROM handle */ + int ma_nreg; /* Counts for those properties */ + int ma_naddress; + int ma_ninterrupts; + int ma_pri; /* priority (IPL) */ +}; + +/* + * length; the others convert or make some other guarantee. + */ +long getproplen __P((int node, char *name)); +int getprop __P((int, char *, size_t, int *, void **)); +char *getpropstring __P((int node, char *name)); +int getpropint __P((int node, char *name, int deflt)); + +/* Frequently used options node */ +extern int optionsnode; + + /* new interfaces: */ +char *getpropstringA __P((int, char *, char *)); + +/* + * The matchbyname function is useful in drivers that are matched + * by romaux name, i.e., all `mainbus attached' devices. It expects + * its aux pointer to point to a pointer to the name (the address of + * a romaux structure suffices, for instance). (OBSOLETE) + */ +struct device; +struct cfdata; +int matchbyname __P((struct device *, struct cfdata *cf, void *aux)); + +/* + * `clockfreq' produces a printable representation of a clock frequency + * (this is just a frill). + */ +char *clockfreq __P((long freq)); + +/* Openprom V2 style boot path */ +struct bootpath { + char name[16]; /* name of this node */ + int val[3]; /* up to three optional values */ + struct device *dev; /* device that recognised this component */ +}; +struct bootpath *bootpath_store __P((int, struct bootpath *)); +int sd_crazymap __P((int)); + +/* Parse a disk string into a dev_t, return device struct pointer */ +struct device *parsedisk __P((char *, int, int, dev_t *)); + +/* Establish a mountroot_hook, for benefit of floppy drive, mostly. */ +void mountroot_hook_establish __P((void (*) __P((struct device *)), + struct device *)); + +void bootstrap __P((int)); +int firstchild __P((int)); +int nextsibling __P((int)); +void callrom __P((void)); +struct device *getdevunit __P((char *, int)); +void *findzs __P((int)); +int romgetcursoraddr __P((int **, int **)); +int findroot __P((void)); +int findnode __P((int, const char *)); +int node_has_property __P((int, const char *)); + diff --git a/sys/arch/sparc64/include/sparc64.h b/sys/arch/sparc64/include/sparc64.h new file mode 100644 index 00000000000..d714b49ec8b --- /dev/null +++ b/sys/arch/sparc64/include/sparc64.h @@ -0,0 +1,75 @@ +/* $NetBSD: sparc64.h,v 1.3 2000/10/20 05:47:03 mrg Exp $ */ + +/* + * Copyright (C) 1996 Wolfgang Solfrank. + * Copyright (C) 1996 TooLs GmbH. + * 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 TooLs GmbH. + * 4. The name of TooLs GmbH may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``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 TOOLS GMBH 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. + */ +#ifndef _MACHINE_SPARC64_H_ +#define _MACHINE_SPARC64_H_ + +struct mem_region { + u_int64_t start; + u_int64_t size; +}; + +int prom_set_trap_table __P((vaddr_t tba)); +u_int64_t prom_vtop __P((vaddr_t vaddr)); +vaddr_t prom_claim_virt __P((vaddr_t vaddr, int len)); +vaddr_t prom_alloc_virt __P((int len, int align)); +int prom_free_virt __P((vaddr_t vaddr, int len)); +int prom_unmap_virt __P((vaddr_t vaddr, int len)); +int prom_map_phys __P((u_int64_t paddr, off_t size, vaddr_t vaddr, int mode)); +u_int64_t prom_alloc_phys __P((int len, int align)); +u_int64_t prom_claim_phys __P((paddr_t phys, int len)); +int prom_free_phys __P((paddr_t paddr, int len)); +u_int64_t prom_get_msgbuf __P((int len, int align)); + +/* + * Compatibility stuff. + */ +#define OF_findroot() OF_peer(0) +#define OF_fd_phandle(x) OF_instance_to_package(x) + +/* + * These two functions get used solely in boot() in machdep.c. + * + * Not sure whether boot itself should be implementation dependent instead. XXX + */ +void ppc_exit __P((void)) __attribute__((__noreturn__)); +void ppc_boot __P((char *bootspec)) __attribute__((__noreturn__)); + +int dk_match __P((char *name)); + +void ofrootfound __P((void)); + +/* + * Debug + */ +void prom_printf __P((const char *, ...)); +#endif /* _MACHINE_SPARC64_H_ */ |