summaryrefslogtreecommitdiffstats
path: root/arch/i386/boot
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/boot')
-rw-r--r--arch/i386/boot/Makefile2
-rw-r--r--arch/i386/boot/bootsect.S5
-rw-r--r--arch/i386/boot/compressed/misc.c4
-rw-r--r--arch/i386/boot/setup.S7
-rw-r--r--arch/i386/boot/video.S4
5 files changed, 9 insertions, 13 deletions
diff --git a/arch/i386/boot/Makefile b/arch/i386/boot/Makefile
index de8cdced8..56a941a62 100644
--- a/arch/i386/boot/Makefile
+++ b/arch/i386/boot/Makefile
@@ -55,7 +55,7 @@ bbootsect: bbootsect.o
$(LD) -Ttext 0x0 -s -oformat binary $< -o $@
bbootsect.o: bbootsect.s
- $(AS) --defsym bootsect_kludge=0x220 -o $@ $<
+ $(AS) -o $@ $<
bbootsect.s: bootsect.S Makefile $(BOOT_INCL)
$(CPP) -D__BIG_KERNEL__ -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@
diff --git a/arch/i386/boot/bootsect.S b/arch/i386/boot/bootsect.S
index 58644810e..4a9d59908 100644
--- a/arch/i386/boot/bootsect.S
+++ b/arch/i386/boot/bootsect.S
@@ -247,7 +247,8 @@ die: jne die # es must be at 64kB boundary
xorw %bx, %bx # bx is starting address within segment
rp_read:
#ifdef __BIG_KERNEL__
- lcall bootsect_kludge # in setup.S
+ bootsect_kludge = 0x220 # 0x200 (size of bootsector) + 0x20 (offset
+ lcall bootsect_kludge # of bootsect_kludge in setup.S)
#else
movw %es, %ax
subw $SYSSEG, %ax
@@ -398,11 +399,9 @@ print_digit:
# don't have to worry about it later.
kill_motor:
- pushw %dx
movw $0x3f2, %dx
xorb %al, %al
outb %al, %dx
- popw %dx
ret
sectors: .word 0
diff --git a/arch/i386/boot/compressed/misc.c b/arch/i386/boot/compressed/misc.c
index 92ae6af45..8aac90800 100644
--- a/arch/i386/boot/compressed/misc.c
+++ b/arch/i386/boot/compressed/misc.c
@@ -9,10 +9,8 @@
* High loaded stuff by Hans Lermen & Werner Almesberger, Feb. 1996
*/
-#include <linux/mm.h>
-#include <asm/segment.h>
+#include <linux/vmalloc.h>
#include <asm/io.h>
-
/*
* gzip declarations
*/
diff --git a/arch/i386/boot/setup.S b/arch/i386/boot/setup.S
index 9c450bab8..cbfa7b3e8 100644
--- a/arch/i386/boot/setup.S
+++ b/arch/i386/boot/setup.S
@@ -125,7 +125,6 @@ ramdisk_image: .long 0 # address of loaded ramdisk image
ramdisk_size: .long 0 # its size in bytes
-.global bootsect_kludge # so that we can see it in bootsect.S
bootsect_kludge:
.word bootsect_helper, SETUPSEG
@@ -209,7 +208,7 @@ bad_sig:
addw $SYSSEG, %bx
movw %bx, %cs:start_sys_seg
# Move rest of setup code/data to here
- movw $4096, %di # four sectors loaded by LILO
+ movw $2048, %di # four sectors loaded by LILO
subw %si, %si
movw %cs, %ax # aka SETUPSEG
movw %ax, %es
@@ -456,7 +455,7 @@ no_psmouse:
xorw %bx, %bx
int $0x15 # ignore return code
movw $0x05303, %ax # 32 bit connect
- xorw %ebx, %ebx
+ xorw %bx, %bx
int $0x15
jc no_32_apm_bios # Ack, error.
@@ -783,7 +782,7 @@ bootsect_panic_mess:
empty_8042:
pushl %ecx
- movl $0xFFFFFF, %ecx
+ movl $0x00FFFFFF, %ecx
empty_8042_loop:
decl %ecx
diff --git a/arch/i386/boot/video.S b/arch/i386/boot/video.S
index 77d22bef1..745f47275 100644
--- a/arch/i386/boot/video.S
+++ b/arch/i386/boot/video.S
@@ -1008,7 +1008,7 @@ vesa_modes:
vesa1:
# gas version 2.9.1, using BFD version 2.9.1.0.23 buggers the next inst.
# XXX: lodsw %gs:(%si), %ax # Get next mode in the list
- .byte 0x66, 0x65, 0xAD
+ .byte 0x65, 0xAD # %gs seg prefix + lodsw
cmpw $0xffff, %ax # End of the table?
jz vesar
@@ -1278,7 +1278,7 @@ no_s3: movb $0x35, %al # restore CRT register 0x35
no_s31: xorw %bp, %bp # Detection failed
s3rest: movb %bh, %ah
movb $0x38, %al # restore old value of CRT register 0x38
- call outidx
+ jmp outidx
idS3: .byte 0x81, 0x82, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95
.byte 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa8, 0xb0