[coreboot-gerrit] Patch set updated for coreboot: 76c9344 board_status.sh name temp dir and print the name

David Hendricks (dhendrix@chromium.org) gerrit at coreboot.org
Wed Jul 16 23:07:22 CEST 2014


David Hendricks (dhendrix at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/6260

-gerrit

commit 76c93446e8d1a56b6ecbc665e18308f600ec246c
Author: Martin Roth <martin.roth at se-eng.com>
Date:   Thu Jul 10 15:00:35 2014 -0600

    board_status.sh name temp dir and print the name
    
    - Read the boot log from a serial device.
    
    Change-Id: I9daf97fd9b7fc55d0d56d815b185f9b4e3ef9f5a
    Signed-off-by: Martin Roth <martin.roth at se-eng.com>
---
 util/board_status/board_status.sh | 68 ++++++++++++++++++++++++++++++++++++---
 1 file changed, 64 insertions(+), 4 deletions(-)

diff --git a/util/board_status/board_status.sh b/util/board_status/board_status.sh
index 65576f4..6032c8c 100755
--- a/util/board_status/board_status.sh
+++ b/util/board_status/board_status.sh
@@ -3,6 +3,7 @@
 # This file is part of the coreboot project.
 #
 # Copyright (C) 2013 Google Inc.
+# Copyright (C) 2014 Sage Electronic Engineering, LLC.
 #
 
 EXIT_SUCCESS=0
@@ -12,6 +13,7 @@ EXIT_FAILURE=1
 REMOTE_HOST=""
 CLOBBER_OUTPUT=0
 UPLOAD_RESULTS=0
+SERIAL_PORT_SPEED=115200
 
 # Used to specify whether a command should always be run locally or
 # if command should be run remoteley when a remote host is specified.
@@ -96,6 +98,50 @@ cmd_nonfatal()
 	rm -f "$3"	# don't leave an empty file
 }
 
+# read from a serial port device
+#
+# $1: serial device to read from
+# $2: serial port speed
+# $3: filename to direct output of command into
+get_serial_bootlog () {
+
+	if [ ! -c "$1" ]; then
+		echo "$1 is not a valid serial device"
+		exit $EXIT_FAILURE
+	fi
+
+	# make the text more noticible
+	test_cmd $LOCAL "tput" $NONFATAL
+	tput_not_available=$?
+	if [ $tput_not_available -eq 0 ]; then
+		tput bold
+		tput setaf 10 # set bright green
+	fi
+
+	echo
+	echo "Waiting to receive boot log from $1"
+	echo "Press [Enter] when the boot is complete and the"
+	echo "system is ready for ssh to get the dmesg log."
+
+	if [ $tput_not_available -eq 0 ]; then
+		tput sgr0
+	fi
+
+	# set up the serial port
+	cmd $LOCAL "stty -F $1 $2 cs8 -cstopb"
+
+	# read from the serial port - user must press enter when complete
+	test_cmd $LOCAL "tee"
+	cat "$SERIAL_DEVICE" | tee "$3" &
+	PID=$!
+
+	read
+	kill "$PID" 2>/dev/null &
+
+	# remove the binary zero value that gets inserted into the file.
+	sed -i 's/\x00//' "$3"
+}
+
 show_help() {
 	echo "Usage:
 	${0} <option>
@@ -107,12 +153,16 @@ Options
         Clobber temporary output when finished. Useful for debugging.
     -r  <host>
         Obtain machine information from remote host (using ssh).
+    -s  </dev/xxx>
+        Obtain boot log via serial device.
+    -S  <speed>
+        Set the port speed for the serial device (Default is 115200).
     -u
         Upload results to coreboot.org.
 "
 }
 
-while getopts "Chr:u" opt; do
+while getopts "Chr:s:S:u" opt; do
 	case "$opt" in
 		h)
 			show_help
@@ -124,6 +174,12 @@ while getopts "Chr:u" opt; do
 		r)
 			REMOTE_HOST="$OPTARG"
 			;;
+		s)
+			SERIAL_DEVICE="$OPTARG"
+			;;
+		S)
+			SERIAL_PORT_SPEED="$OPTARG"
+			;;
 		u)
 			UPLOAD_RESULTS=1
 			;;
@@ -170,9 +226,13 @@ printf "Upstream revision: %s\n" $($getrevision -u) >> ${tmpdir}/${results}/revi
 printf "Upstream URL: %s\n" $($getrevision -U)>> ${tmpdir}/${results}/revision.txt
 printf "Timestamp: %s\n" "$timestamp" >> ${tmpdir}/${results}/revision.txt
 
-test_cmd $REMOTE "cbmem"
-cmd $REMOTE "cbmem -c" "${tmpdir}/${results}/coreboot_console.txt"
-cmd_nonfatal $REMOTE "cbmem -t" "${tmpdir}/${results}/coreboot_timestamps.txt"
+if [ -z "$SERIAL_DEVICE" ]; then
+	test_cmd $REMOTE "cbmem"
+	cmd $REMOTE "cbmem -c" "${tmpdir}/${results}/coreboot_console.txt"
+	cmd_nonfatal $REMOTE "cbmem -t" "${tmpdir}/${results}/coreboot_timestamps.txt"
+else
+	get_serial_bootlog "$SERIAL_DEVICE" "$SERIAL_PORT_SPEED" "${tmpdir}/${results}/coreboot_console.txt"
+fi
 
 cmd $REMOTE dmesg "${tmpdir}/${results}/kernel_log.txt"
 



More information about the coreboot-gerrit mailing list