aboutsummaryrefslogtreecommitdiff
path: root/src/romlayout.S
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-07-26 19:33:13 -0400
committerKevin O'Connor <kevin@koconnor.net>2009-07-26 19:33:13 -0400
commite54ee3800df72c2742f486abf437e75c2b56182c (patch)
tree1cf4862f4819a6bd0dae0a7b05770fc3937b21f8 /src/romlayout.S
parente773930ea4f37bca9334a157e86e70f14234888f (diff)
downloadseabios-hppa-e54ee3800df72c2742f486abf437e75c2b56182c.zip
seabios-hppa-e54ee3800df72c2742f486abf437e75c2b56182c.tar.gz
seabios-hppa-e54ee3800df72c2742f486abf437e75c2b56182c.tar.bz2
Add PMM stubs.
Add initial code for Post Memory Manager - it's just the stubs for now. Also, fix PnP entry point not clearing irqs and direction flags.
Diffstat (limited to 'src/romlayout.S')
-rw-r--r--src/romlayout.S31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/romlayout.S b/src/romlayout.S
index cbd9483..d430d28 100644
--- a/src/romlayout.S
+++ b/src/romlayout.S
@@ -270,6 +270,35 @@ entry_post:
* Misc. entry points.
****************************************************************/
+// PMM entry point
+ DECLFUNC entry_pmm
+entry_pmm:
+ pushl %esp // Backup %esp, then clear high bits
+ movzwl %sp, %esp
+ pushfl // Save registers clobbered by C code
+ cli
+ cld
+ pushl %eax
+ pushl %ecx
+ pushl %edx
+ pushw %es
+ pushw %ds
+ movw %ss, %cx // Move %ss to %ds
+ movw %cx, %ds
+ lea 28(%esp), %eax // %eax points to start of args
+ calll handle_pmm
+ movw %ax, 12(%esp) // Modify %ax:%dx to return %eax
+ shrl $16, %eax
+ movw %ax, 4(%esp)
+ popw %ds // Restore saved registers
+ popw %es
+ popl %edx
+ popl %ecx
+ popl %eax
+ popfl
+ popl %esp
+ lretw
+
// PnP entry points
DECLFUNC entry_pnp_real
.global entry_pnp_prot
@@ -281,6 +310,8 @@ entry_pnp_real:
movzwl %sp, %esp
1:
pushfl // Save registers clobbered by C code
+ cli
+ cld
pushl %eax
pushl %ecx
pushl %edx