Author: jhb
Date: Fri Jan 13 18:49:28 2012
New Revision: 230066
URL: http://svn.freebsd.org/changeset/base/230066

Log:
  MFC 228738:
  Allow boot0cfg to force a PXE boot via boot0 on the next boot.
  - Fix boot0 to check for PXE when using the pre-set setting for the
    preferred slice.
  - Update boot0cfg to use slice 6 to select PXE.  Accept a 'pxe' argument
    instead of a number for the 's' option as a way to select PXE as well.

Modified:
  stable/8/sys/boot/i386/boot0/boot0.S
  stable/8/usr.sbin/boot0cfg/boot0cfg.8
  stable/8/usr.sbin/boot0cfg/boot0cfg.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/usr.sbin/boot0cfg/   (props changed)

Modified: stable/8/sys/boot/i386/boot0/boot0.S
==============================================================================
--- stable/8/sys/boot/i386/boot0/boot0.S        Fri Jan 13 18:49:04 2012        
(r230065)
+++ stable/8/sys/boot/i386/boot0/boot0.S        Fri Jan 13 18:49:28 2012        
(r230066)
@@ -413,6 +413,7 @@ got_key:
        3:
 #endif /* ONLY_F_KEYS */
 #endif /* SIO */
+check_selection:
                cmpb $0x5,%al                   # F1..F6 or 1..6 ?
 #ifdef PXE /* enable PXE/INT18 using F6 */
                jne 1f;
@@ -421,7 +422,6 @@ got_key:
 #endif /* PXE */
                jae beep                        # Not in F1..F5, beep
 
-check_selection:
        /*
         * We have a selection.  If it's a bad selection go back to complain.
         * The bits in MNUOPT were set when the options were printed.

Modified: stable/8/usr.sbin/boot0cfg/boot0cfg.8
==============================================================================
--- stable/8/usr.sbin/boot0cfg/boot0cfg.8       Fri Jan 13 18:49:04 2012        
(r230065)
+++ stable/8/usr.sbin/boot0cfg/boot0cfg.8       Fri Jan 13 18:49:28 2012        
(r230066)
@@ -146,6 +146,9 @@ Set the default boot selection to
 .Ar slice .
 Values between 1 and 4 refer to slices; a value of 5 refers to the
 option of booting from a second disk.
+The special string
+.Dq PXE
+or a value of 6 can be used to boot via PXE.
 .It Fl t Ar ticks
 Set the timeout value to
 .Ar ticks .

Modified: stable/8/usr.sbin/boot0cfg/boot0cfg.c
==============================================================================
--- stable/8/usr.sbin/boot0cfg/boot0cfg.c       Fri Jan 13 18:49:04 2012        
(r230065)
+++ stable/8/usr.sbin/boot0cfg/boot0cfg.c       Fri Jan 13 18:49:28 2012        
(r230066)
@@ -168,7 +168,10 @@ main(int argc, char *argv[])
             o_flag = 1;
             break;
         case 's':
-            s_arg = argtoi(optarg, 1, 5, 's');
+           if (strcasecmp(optarg, "pxe") == 0)
+               s_arg = 6;
+           else
+               s_arg = argtoi(optarg, 1, 6, 's');
             break;
         case 't':
             t_arg = argtoi(optarg, 1, 0xffff, 't');
@@ -441,8 +444,10 @@ display_mbr(u_int8_t *mbr)
     printf("default_selection=F%d (", mbr[OFF_OPT] + 1);
     if (mbr[OFF_OPT] < 4)
        printf("Slice %d", mbr[OFF_OPT] + 1);
-    else
+    else if (mbr[OFF_OPT] == 4)
        printf("Drive 1");
+    else
+       printf("PXE");
     printf(")\n");
 }
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to