summaryrefslogtreecommitdiffstats
path: root/sys/boot
diff options
context:
space:
mode:
Diffstat (limited to 'sys/boot')
-rw-r--r--sys/boot/i386/boot2/boot1.S4
-rw-r--r--sys/boot/i386/btx/lib/btxcsu.s10
2 files changed, 9 insertions, 5 deletions
diff --git a/sys/boot/i386/boot2/boot1.S b/sys/boot/i386/boot2/boot1.S
index 44af56b..5b0f6f7 100644
--- a/sys/boot/i386/boot2/boot1.S
+++ b/sys/boot/i386/boot2/boot1.S
@@ -193,10 +193,6 @@ main.5: mov %dx,MEM_ARG # Save args
sub %si,%cx # count
rep # Relocate
movsb # client
- sub %di,%cx # Byte count
- xorb %al,%al # Zero assumed bss from
- rep # the end of boot2.bin
- stosb # up to 0x10000
/*
* Enable A20 so we can access memory above 1 meg.
diff --git a/sys/boot/i386/btx/lib/btxcsu.s b/sys/boot/i386/btx/lib/btxcsu.s
index f08ae75..6a00659 100644
--- a/sys/boot/i386/btx/lib/btxcsu.s
+++ b/sys/boot/i386/btx/lib/btxcsu.s
@@ -30,7 +30,15 @@
#
# Client entry point.
#
-_start: movl %eax,__base # Set base address
+_start: cld
+ pushl %eax
+ movl $_edata,%edi
+ movl $_end,%ecx
+ subl %edi, %ecx
+ xorb %al, %al
+ rep
+ stosb
+ popl __base
movl %esp,%eax # Set
addl $ARGADJ,%eax # argument
movl %eax,__args # pointer
OpenPOWER on IntegriCloud