diff options
Diffstat (limited to 'arch/i386/boot')
-rw-r--r-- | arch/i386/boot/Makefile | 2 | ||||
-rw-r--r-- | arch/i386/boot/bootsect.S | 5 | ||||
-rw-r--r-- | arch/i386/boot/compressed/misc.c | 4 | ||||
-rw-r--r-- | arch/i386/boot/setup.S | 7 | ||||
-rw-r--r-- | arch/i386/boot/video.S | 4 |
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 |