Messages in this thread Patch in this message | | | Date | Thu, 22 Apr 2004 23:08:28 +0800 | From | Coywolf Qi Hunt <> | Subject | [PATCH] Remove bootsect_helper and A comment fix (III) |
| |
Hello,
Since "Direct booting from floppy is no longer supported", this patch is to remove the bootsect_helper code. And also a comment fix.
Wish my patch is in correct format this time. The other two platforms x86_64 and PC-9800 should also be cleaned up too.
-- Coywolf Qi Hunt Admin of http://GreatCN.org and http://LoveCN.org --- arch/i386/boot/setup.S.orig Sat Mar 6 23:49:33 2004 +++ arch/i386/boot/setup.S Sun Mar 7 04:38:08 2004 @@ -133,7 +133,7 @@ ramdisk_size: .long 0 # its size in bytes bootsect_kludge: - .word bootsect_helper, SETUPSEG + .long 0 # obsolete heap_end_ptr: .word modelist+1024 # (Header version 0x0201 or later) # space from here (exclusive) down to @@ -837,7 +837,7 @@ subw $DELTA_INITSEG, %si shll $4, %esi # Convert to 32-bit pointer -# jump to startup_32 in arch/i386/kernel/head.S +# jump to startup_32 in arch/i386/boot/compressed/head.S # # NOTE: For high loaded big kernels we need a # jmpi 0x100000,__BOOT_CS @@ -871,88 +871,6 @@ # sequence outb %al, $0x70 lret - -# This routine only gets called, if we get loaded by the simple -# bootsect loader _and_ have a bzImage to load. -# Because there is no place left in the 512 bytes of the boot sector, -# we must emigrate to code space here. -bootsect_helper: - cmpw $0, %cs:bootsect_es - jnz bootsect_second - - movb $0x20, %cs:type_of_loader - movw %es, %ax - shrw $4, %ax - movb %ah, %cs:bootsect_src_base+2 - movw %es, %ax - movw %ax, %cs:bootsect_es - subw $SYSSEG, %ax - lret # nothing else to do for now - -bootsect_second: - pushw %cx - pushw %si - pushw %bx - testw %bx, %bx # 64K full? - jne bootsect_ex - - movw $0x8000, %cx # full 64K, INT15 moves words - pushw %cs - popw %es - movw $bootsect_gdt, %si - movw $0x8700, %ax - int $0x15 - jc bootsect_panic # this, if INT15 fails - - movw %cs:bootsect_es, %es # we reset %es to always point - incb %cs:bootsect_dst_base+2 # to 0x10000 -bootsect_ex: - movb %cs:bootsect_dst_base+2, %ah - shlb $4, %ah # we now have the number of - # moved frames in %ax - xorb %al, %al - popw %bx - popw %si - popw %cx - lret - -bootsect_gdt: - .word 0, 0, 0, 0 - .word 0, 0, 0, 0 - -bootsect_src: - .word 0xffff - -bootsect_src_base: - .byte 0x00, 0x00, 0x01 # base = 0x010000 - .byte 0x93 # typbyte - .word 0 # limit16,base24 =0 - -bootsect_dst: - .word 0xffff - -bootsect_dst_base: - .byte 0x00, 0x00, 0x10 # base = 0x100000 - .byte 0x93 # typbyte - .word 0 # limit16,base24 =0 - .word 0, 0, 0, 0 # BIOS CS - .word 0, 0, 0, 0 # BIOS DS - -bootsect_es: - .word 0 - -bootsect_panic: - pushw %cs - popw %ds - cld - leaw bootsect_panic_mess, %si - call prtstr - -bootsect_panic_loop: - jmp bootsect_panic_loop - -bootsect_panic_mess: - .string "INT15 refuses to access high mem, giving up." #ifndef CONFIG_X86_VOYAGER | |