Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/sommerfeld_i386mp_1]: src/sys/arch/i386/stand/lib Change biosmca() to ex...
details: https://anonhg.NetBSD.org/src/rev/6ee69ea1ae08
branches: sommerfeld_i386mp_1
changeset: 482398:6ee69ea1ae08
user: jdolecek <jdolecek%NetBSD.org@localhost>
date: Mon May 14 22:14:48 2001 +0000
description:
Change biosmca() to export the model number via biosmca_ps2model
variable, if the machine has a MCA bus according to info returned
by BIOS (i.e. on machines without MCA bus, biosmca_ps2model would be zero).
biosmca() is expected to be called on beginning the initialization,
and biosmca_ps2model is then used for further checks.
diffstat:
sys/arch/i386/stand/lib/biosmca.S | 123 ++++++++++++++++++++++++++++++++++++++
sys/arch/i386/stand/lib/biosmca.h | 38 +++++++++++
2 files changed, 161 insertions(+), 0 deletions(-)
diffs (169 lines):
diff -r 93db2fe54c3e -r 6ee69ea1ae08 sys/arch/i386/stand/lib/biosmca.S
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/i386/stand/lib/biosmca.S Mon May 14 22:14:48 2001 +0000
@@ -0,0 +1,123 @@
+/* $NetBSD: biosmca.S,v 1.2.2.2 2001/05/14 22:14:48 jdolecek Exp $ */
+
+/*
+ * Ported to boot 386BSD by Julian Elischer (julian%tfs.com@localhost) Sept 1992
+ *
+ * Mach Operating System
+ * Copyright (c) 1992, 1991 Carnegie Mellon University
+ * All Rights Reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ *
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
+ * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
+ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ *
+ * Carnegie Mellon requests users of this software to return to
+ *
+ * Software Distribution Coordinator or Software.Distribution%CS.CMU.EDU@localhost
+ * School of Computer Science
+ * Carnegie Mellon University
+ * Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie Mellon
+ * the rights to redistribute these changes.
+ */
+
+/*
+ Copyright 1988, 1989, 1990, 1991, 1992
+ by Intel Corporation, Santa Clara, California.
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and
+its documentation for any purpose and without fee is hereby
+granted, provided that the above copyright notice appears in all
+copies and that both the copyright notice and this permission notice
+appear in supporting documentation, and that the name of Intel
+not be used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+
+INTEL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
+INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS,
+IN NO EVENT SHALL INTEL BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
+CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
+NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+*/
+
+/* extracted from netbsd:sys/arch/i386/stand/bios_disk.S */
+
+#include <machine/asm.h>
+
+#define addr32 .byte 0x67
+#define data32 .byte 0x66
+
+ .data
+ .globl _C_LABEL(biosmca_ps2model)
+_C_LABEL(biosmca_ps2model): .long 0
+
+ .text
+/*
+# BIOS call "INT 0x15 Function 0xc0" to read extended sys config info on PS/2
+# Return: no return value
+#
+# This function initializes biosmca_ps2model with model number as
+# identified by BIOS, if the machine is a PS/2 box (i.e. has MCA bus
+# instead of ISA).
+*/
+ENTRY(biosmca)
+ pushl %ebp
+ movl %esp, %ebp
+ pushl %ebx
+ push %ecx
+ push %edx
+ push %esi
+ push %edi
+ push %eax
+
+ call _C_LABEL(prot_to_real) # enter real mode
+
+ # zero %cx
+ data32
+ xorl %cx, %cx
+
+ data32
+ xorl %ax, %ax
+ movb $0xc0, %ah # subfunction
+ int $0x15
+ jc back
+
+ # check feature byte 1 if MCA bus present and replaces ISA
+ addr32
+ movb %es:5(%ebx), %ax
+ andw $0x02, %ax # bit 1 set means MCA instead of ISA
+ cmpw $0x02, %ax # see also arch/i386/mca/mca_machdep.c
+ jne back
+
+ # save model and submodel bytes to %cx
+ addr32
+ movb %es:2(%ebx), %ch # model (1 byte)
+ addr32
+ movb %es:3(%ebx), %cl # submodel (1 byte)
+
+back:
+ data32
+ call _C_LABEL(real_to_prot) # back to protected mode
+
+ # save model
+ movl %ecx, _C_LABEL(biosmca_ps2model)
+
+ pop %eax
+ pop %edi
+ pop %esi
+ pop %edx
+ pop %ecx
+ popl %ebx
+ popl %ebp
+ ret
diff -r 93db2fe54c3e -r 6ee69ea1ae08 sys/arch/i386/stand/lib/biosmca.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/i386/stand/lib/biosmca.h Mon May 14 22:14:48 2001 +0000
@@ -0,0 +1,38 @@
+/* $NetBSD: biosmca.h,v 1.1.2.2 2001/05/14 22:14:48 jdolecek Exp $ */
+
+/*-
+ * Copyright (c) 2001 The NetBSD Foundation, Inc.
+ * 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 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.
+ */
+
+void biosmca __P((void));
+
+extern int biosmca_ps2model;
Home |
Main Index |
Thread Index |
Old Index