[romprefix] Change from opt-in to opt-out when booting via INT19
authorMichael Brown <mcb30@etherboot.org>
Thu, 4 Dec 2008 16:46:16 +0000 (16:46 +0000)
committerMichael Brown <mcb30@etherboot.org>
Thu, 4 Dec 2008 16:46:16 +0000 (16:46 +0000)
On non-BBS systems, we have to hook INT 19 in order to be able to boot
from the gPXE ROM at all.  However, doing this unconditionally will
prevent the user from booting via any other devices.

Previously, the INT 19 entry point would prompt the user to press B in
order to boot from gPXE, which makes it impossible to perform an
unattended network boot.  We now prompt the user to press N to skip
booting from gPXE, which allows for unattended operation.

This should be a better match for most real-world scenarios.  Most
modern systems support BBS and so are unaffected by this change.  Very
old (non-BBS) systems tend not to have PXE ROMs by default anyway; if
the user has added a gPXE ROM then they probably do want to boot from
the network.  Newer non-BBS systems are essentially limited to IBM
servers, which will recapture the INT 19 vector anyway and implement
their own boot-ordering selection mechanism.

src/arch/i386/prefix/romprefix.S

index a6431cd..d248916 100644 (file)
@@ -512,7 +512,7 @@ int19_entry:
        call    print_message
        movw    $int19_message_dots, %si
        call    print_message
-       movw    $0xdf42, %bx
+       movw    $0xdf4e, %bx
        call    wait_for_key
        pushf
        xorw    %di, %di
@@ -520,7 +520,7 @@ int19_entry:
        movw    $int19_message_done, %si
        call    print_message
        popf
-       jnz     1f
+       j     1f
        /* Leave keypress in buffer and start gPXE.  The keypress will
         * cause the usual initial Ctrl-B prompt to be skipped.
         */
@@ -539,7 +539,7 @@ orig_int19:
        .size   orig_int19, . - orig_int19
 
 int19_message_prompt:
-       .asciz  "Press B to boot from "
+       .asciz  "Press N to skip booting from "
        .size   int19_message_prompt, . - int19_message_prompt
 int19_message_dots:
        .asciz  "..."