Skip to content

Commit

Permalink
MCA support for new x86 setup code
Browse files Browse the repository at this point in the history
MCA probing support for the new x86 setup code.  This implements the
same functionality as the assembly version.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
H. Peter Anvin authored and Linus Torvalds committed Jul 12, 2007
1 parent d13444a commit 3b53d30
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions arch/i386/boot/mca.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/* -*- linux-c -*- ------------------------------------------------------- *
*
* Copyright (C) 1991, 1992 Linus Torvalds
* Copyright 2007 rPath, Inc. - All Rights Reserved
*
* This file is part of the Linux kernel, and is made available under
* the terms of the GNU General Public License version 2.
*
* ----------------------------------------------------------------------- */

/*
* arch/i386/boot/mca.c
*
* Get the MCA system description table
*/

#include "boot.h"

int query_mca(void)
{
u8 err;
u16 es, bx, len;

asm("pushw %%es ; "
"int $0x15 ; "
"setc %0 ; "
"movw %%es, %1 ; "
"popw %%es"
: "=acdSDm" (err), "=acdSDm" (es), "=b" (bx)
: "a" (0xc000));

if (err)
return -1; /* No MCA present */

set_fs(es);
len = rdfs16(bx);

if (len > sizeof(boot_params.sys_desc_table))
len = sizeof(boot_params.sys_desc_table);

copy_from_fs(&boot_params.sys_desc_table, bx, len);
return 0;
}

0 comments on commit 3b53d30

Please sign in to comment.