aboutsummaryrefslogtreecommitdiffstats
path: root/src/arch/i386/prefix
diff options
context:
space:
mode:
authorMichael Brown <mcb30@etherboot.org>2007-06-28 21:56:14 +0100
committerMichael Brown <mcb30@etherboot.org>2007-06-28 21:56:14 +0100
commit045fb24557f4c0a11273b28150b9a870f248197d (patch)
tree720765210b2f7e5a1544117f0551765b64923e10 /src/arch/i386/prefix
parent00473f09520c762bb89b3a695109cd7b57406c7e (diff)
downloadipxe-045fb24557f4c0a11273b28150b9a870f248197d.tar.gz
Use internal real-mode stack from non-returnable prefixes
Diffstat (limited to 'src/arch/i386/prefix')
-rw-r--r--src/arch/i386/prefix/dskprefix.S4
-rw-r--r--src/arch/i386/prefix/romprefix.S4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/arch/i386/prefix/dskprefix.S b/src/arch/i386/prefix/dskprefix.S
index 9b1ebaaf..1a48716a 100644
--- a/src/arch/i386/prefix/dskprefix.S
+++ b/src/arch/i386/prefix/dskprefix.S
@@ -350,6 +350,10 @@ msg1end:
start_runtime:
call install
+ /* Set up real-mode stack */
+ movw %bx, %ss
+ movw $_estack16, %sp
+
/* Jump to .text16 segment */
pushw %ax
pushw $1f
diff --git a/src/arch/i386/prefix/romprefix.S b/src/arch/i386/prefix/romprefix.S
index ced0f49c..52001699 100644
--- a/src/arch/i386/prefix/romprefix.S
+++ b/src/arch/i386/prefix/romprefix.S
@@ -139,6 +139,10 @@ exec_vector:
call install
+ /* Set up real-mode stack */
+ movw %bx, %ss
+ movw $_estack16, %sp
+
/* Jump to .text16 segment */
pushw %ax
pushw $1f