vserver 2.0 rc7
[linux-2.6.git] / arch / x86_64 / boot / setup.S
index 48479ec..75d4d2a 100644 (file)
@@ -132,7 +132,7 @@ ramdisk_image:      .long   0               # address of loaded ramdisk image
 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
@@ -158,7 +158,9 @@ cmd_line_ptr:       .long 0                 # (Header version 0x0202 or later)
 ramdisk_max:   .long 0xffffffff
        
 trampoline:    call    start_of_setup
-               .space  1024
+               .align 16
+                                       # The offset at this point is 0x240
+               .space  (0xeff-0x240+1) # E820 & EDD space (ending at 0xeff)
 # End of setup header #####################################################
 
 start_of_setup:
@@ -410,9 +412,9 @@ jmpe820:
        # sizeof(e820rec).
        #
 good820:
-       movb    (E820NR), %al                   # up to 32 entries
+       movb    (E820NR), %al                   # up to 128 entries
        cmpb    $E820MAX, %al
-       jnl     bail820
+       jae     bail820
 
        incb    (E820NR)
        movw    %di, %ax
@@ -759,87 +761,6 @@ default_switch:
        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."
 
 # This routine checks that the keyboard command queue is empty
 # (after emptying the output buffers)