diff options
author | Juergen Beisert <jbe@pengutronix.de> | 2010-01-12 11:15:41 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-01-14 10:06:16 +0100 |
commit | 7dcc15e8197e647abc80b1d3298a91edd45a8c2d (patch) | |
tree | f0bb5981a61c989ce37d40554971b9adc49e2b3e /arch/x86/boot/regs.c | |
parent | 2bdd75bd02f3d214b285429be72b3a0eab4e9610 (diff) | |
download | barebox-7dcc15e8197e647abc80b1d3298a91edd45a8c2d.tar.gz barebox-7dcc15e8197e647abc80b1d3298a91edd45a8c2d.tar.xz |
Add functions to be able to boot with BIOSs help
These functions are special: They are running in the 16 bit real mode world
to bring up barebox on an x86 box.
Signed-off-by: Juergen Beisert <jbe@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/x86/boot/regs.c')
-rw-r--r-- | arch/x86/boot/regs.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/arch/x86/boot/regs.c b/arch/x86/boot/regs.c new file mode 100644 index 0000000000..ddc515518c --- /dev/null +++ b/arch/x86/boot/regs.c @@ -0,0 +1,34 @@ +/* ----------------------------------------------------------------------- + * + * Copyright 2009 Intel Corporation; author H. Peter Anvin + * + * This file is part of the Linux kernel, and is made available under + * the terms of the GNU General Public License version 2 or (at your + * option) any later version; incorporated herein by reference. + * + * ----------------------------------------------------------------------- */ + +/** + * @file + * @brief Simple helper function for initializing a register set. + * + * Note that this sets EFLAGS_CF in the input register set; this + * makes it easier to catch functions which do nothing but don't + * explicitly set CF. + */ + +#include <asm/segment.h> +#include "boot.h" + +/* be aware of: */ +THIS_IS_REALMODE_CODE + +void __bootcode initregs(struct biosregs *reg) +{ + memset(reg, 0, sizeof *reg); + reg->eflags |= X86_EFLAGS_CF; + reg->ds = ds(); + reg->es = ds(); + reg->fs = fs(); + reg->gs = gs(); +} |