Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/nathanw_sa]: src/sys/arch/m68k/include Added support for kernel cores on...



details:   https://anonhg.NetBSD.org/src/rev/f2bf620e76bc
branches:  nathanw_sa
changeset: 504676:f2bf620e76bc
user:      fredette <fredette%NetBSD.org@localhost>
date:      Mon May 21 14:48:59 2001 +0000

description:
Added support for kernel cores on the sun2.  This
increases sizeof(struct cpu_kcore_hdr).

diffstat:

 sys/arch/m68k/include/kcore.h |  140 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 140 insertions(+), 0 deletions(-)

diffs (144 lines):

diff -r 4e0de5666982 -r f2bf620e76bc sys/arch/m68k/include/kcore.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/m68k/include/kcore.h     Mon May 21 14:48:59 2001 +0000
@@ -0,0 +1,140 @@
+/*     $NetBSD: kcore.h,v 1.4.8.2 2001/05/21 14:48:59 fredette Exp $   */
+
+/*-
+ * Copyright (c) 1996, 1997 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Gordon W. Ross, Jason R. Thorpe, and Leo Weppelman.
+ *
+ * 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.
+ */
+
+#ifndef _M68K_KCORE_H_
+#define        _M68K_KCORE_H_
+
+/*
+ * Unified m68k kcore header descriptions.
+ *
+ * NOTE: We must have all possible m68k kcore types defined in this
+ * file.  Otherwise, we require kernel sources for all m68k platforms
+ * to build userland.
+ *
+ * We must provide STE/PTE bits in the kcore header for a couple
+ * of reasons:
+ *
+ *     - different platforms may have the MMUs configured for different
+ *       page sizes
+ *     - we may not have a specific platform's pte.h available to us
+ *
+ * These are on-disk structures; use fixed-sized types!
+ *
+ * The total size of the cpu_kcore_hdr should be <= DEV_BSIZE!
+ */
+
+/*
+ * kcore information for Utah-derived pmaps
+ */
+#define        M68K_NPHYS_RAM_SEGS     8       /* XXX */
+struct m68k_kcore_hdr {
+       int32_t         mmutype;        /* MMU type */
+       u_int32_t       sg_v;           /* STE bits */
+       u_int32_t       sg_frame;
+       u_int32_t       sg_ishift;
+       u_int32_t       sg_pmask;
+       u_int32_t       sg40_shift1;
+       u_int32_t       sg40_mask2;
+       u_int32_t       sg40_shift2;
+       u_int32_t       sg40_mask3;
+       u_int32_t       sg40_shift3;
+       u_int32_t       sg40_addr1;
+       u_int32_t       sg40_addr2;
+       u_int32_t       pg_v;           /* PTE bits */
+       u_int32_t       pg_frame;
+       u_int32_t       sysseg_pa;      /* PA of Sysseg[] */
+       u_int32_t       reloc;          /* value added to relocate a symbol
+                                          before address translation is
+                                          enabled */
+       u_int32_t       relocend;       /* if kernbase < va < relocend, we
+                                          can do simple relocation to get
+                                          the physical address */
+       phys_ram_seg_t  ram_segs[M68K_NPHYS_RAM_SEGS];
+};
+
+/*
+ * kcore information for the sun2
+ */
+struct sun2_kcore_hdr {
+       u_int32_t       segshift;
+       u_int32_t       pg_frame;       /* PTE bits */
+       u_int32_t       pg_valid;
+       u_int8_t        ksegmap[512];   /* kernel segment map */
+};
+
+/*
+ * kcore information for the sun3
+ */
+struct sun3_kcore_hdr {
+       u_int32_t       segshift;
+       u_int32_t       pg_frame;       /* PTE bits */
+       u_int32_t       pg_valid;
+       u_int8_t        ksegmap[256];   /* kernel segment map */
+};
+
+/*
+ * kcore information for the sun3x; Motorola MMU, but a very
+ * different pmap.
+ */
+#define        SUN3X_NPHYS_RAM_SEGS    4
+struct sun3x_kcore_hdr {
+       u_int32_t       pg_frame;       /* PTE bits */
+       u_int32_t       pg_valid;
+       u_int32_t       contig_end;
+       u_int32_t       kernCbase;      /* VA of kernel level C page table */
+       phys_ram_seg_t  ram_segs[SUN3X_NPHYS_RAM_SEGS];
+};
+
+/*
+ * Catch-all header.  "un" is interpreted based on the contents of "name".
+ */
+struct cpu_kcore_hdr {
+       char            name[16];       /* machine name */
+       u_int32_t       page_size;      /* hardware page size */
+       u_int32_t       kernbase;       /* start of KVA space */
+       union {
+               struct m68k_kcore_hdr _m68k;
+               struct sun2_kcore_hdr _sun2;
+               struct sun3_kcore_hdr _sun3;
+               struct sun3x_kcore_hdr _sun3x;
+       } un;
+};
+
+typedef struct cpu_kcore_hdr cpu_kcore_hdr_t;
+
+#endif /* _M68K_KCORE_H_ */



Home | Main Index | Thread Index | Old Index