Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Dec 2011 15:19:29 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r228738 - in head: sys/boot/i386/boot0 usr.sbin/boot0cfg
Message-ID:  <201112201519.pBKFJTwd021822@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Tue Dec 20 15:19:29 2011
New Revision: 228738
URL: http://svn.freebsd.org/changeset/base/228738

Log:
  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.
  
  Submitted by:	Andrew Boyer  aboyer averesystems
  MFC after:	2 weeks

Modified:
  head/sys/boot/i386/boot0/boot0.S
  head/usr.sbin/boot0cfg/boot0cfg.8
  head/usr.sbin/boot0cfg/boot0cfg.c

Modified: head/sys/boot/i386/boot0/boot0.S
==============================================================================
--- head/sys/boot/i386/boot0/boot0.S	Tue Dec 20 14:12:50 2011	(r228737)
+++ head/sys/boot/i386/boot0/boot0.S	Tue Dec 20 15:19:29 2011	(r228738)
@@ -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: head/usr.sbin/boot0cfg/boot0cfg.8
==============================================================================
--- head/usr.sbin/boot0cfg/boot0cfg.8	Tue Dec 20 14:12:50 2011	(r228737)
+++ head/usr.sbin/boot0cfg/boot0cfg.8	Tue Dec 20 15:19:29 2011	(r228738)
@@ -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: head/usr.sbin/boot0cfg/boot0cfg.c
==============================================================================
--- head/usr.sbin/boot0cfg/boot0cfg.c	Tue Dec 20 14:12:50 2011	(r228737)
+++ head/usr.sbin/boot0cfg/boot0cfg.c	Tue Dec 20 15:19:29 2011	(r228738)
@@ -169,7 +169,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');
@@ -472,8 +475,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");
 }
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112201519.pBKFJTwd021822>