diff --git a/ap-common b/ap-common
index 0969ab3..1f41ea0 100644
--- a/ap-common
+++ b/ap-common
@@ -39,6 +39,10 @@
 
 : ${TREE_GNULIB_LIBVIRT:=git://git.sv.gnu.org/gnulib.git}
 
+: ${TREE_SEABIOS:=git://git.seabios.org/seabios.git}
+: ${PUSH_TREE_SEABIOS:=$XENBITS:/home/xen/git/osstest/seabios.git}
+: ${BASE_TREE_SEABIOS:=git://xenbits.xen.org/osstest/seabios.git}
+
 : ${TREE_LINUXFIRMWARE:=git://xenbits.xen.org/osstest/linux-firmware.git}
 : ${PUSH_TREE_LINUXFIRMWARE:=$XENBITS:/home/osstest/ext/linux-firmware.git}
 : ${UPSTREAM_TREE_LINUXFIRMWARE:=$GIT_KERNEL_ORG/pub/scm/linux/kernel/git/firmware/linux-firmware.git}
@@ -64,6 +68,7 @@ fi
 : ${LOCALREV_LINUX:=daily-cron.$branch}
 : ${LOCALREV_LIBVIRT:=daily-cron.$branch}
 : ${LOCALREV_GNULIB_LIBVIRT:=daily-cron.$branch}
+: ${LOCALREV_SEABIOS:=daily-cron.$branch}
 
 : ${TREEBASE_LINUX_XCP:=http://hg.uk.xensource.com/carbon/trunk/linux-2.6.27}
 
diff --git a/ap-fetch-version b/ap-fetch-version
index a4558ea..9f65fca 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -81,6 +81,10 @@ gnulib-libvirt)
 	repo_tree_rev_fetch_git gnulib-libvirt \
 		$TREE_GNULIB_LIBVIRT master $LOCALREV_GNULIB_LIBVIRT
 	;;
+seabios)
+	repo_tree_rev_fetch_git seabios \
+		$TREE_SEABIOS master $LOCALREV_SEABIOS
+	;;
 osstest)
 	if [ "x$OSSTEST_USE_HEAD" != "xy" ] ; then
 	    git fetch $HOME/testing.git pretest:ap-fetch >&2
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index f71626f..d1a64dc 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -28,6 +28,7 @@ select_xenbranch
 : ${BASE_TAG_LINUX2639:=tested/2.6.39.x}
 : ${BASE_LOCALREV_LINUX:=daily-cron.$branch.old}
 : ${BASE_LOCALREV_LIBVIRT:=daily-cron.$branch.old}
+: ${BASE_LOCALREV_SEABIOS:=daily-cron.$branch.old}
 
 : ${BASE_TREE_QEMU_UPSTREAM:=${TREE_QEMU_UPSTREAM/\/staging\//\/}}
 
@@ -86,6 +87,10 @@ gnulib-libvirt)
 	# No push gate, same as ap-fetch-version
 	./ap-fetch-version $branch
 	;;
+seabios)
+	repo_tree_rev_fetch_git seabios \
+		$BASE_TREE_SEABIOS xen-tested-master $BASE_LOCALREV_SEABIOS
+	;;
 osstest)
 	if [ "x$OSSTEST_USE_HEAD" != "xy" ] ; then
 	    git fetch -f $HOME/testing.git incoming:ap-fetch
diff --git a/ap-print-url b/ap-print-url
index a21efce..637c9cc 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -55,6 +55,9 @@ libvirt)
 gnulib-libvirt)
 	echo $TREE_GNULIB_LIBVIRT
 	;;
+seabios)
+	echo $TREE_SEABIOS
+	;;
 osstest)
 	echo none:;
 	;;
diff --git a/ap-push b/ap-push
index 00e0d8b..c110e78 100755
--- a/ap-push
+++ b/ap-push
@@ -34,6 +34,7 @@ TREE_QEMU_MAINLINE=$PUSH_TREE_QEMU_MAINLINE
 TREE_QEMU_UPSTREAM=$XENBITS:/home/xen/git/qemu-upstream-${xenbranch#xen-}.git
 TREE_XEN=$PUSH_TREE_XEN
 TREE_LIBVIRT=$PUSH_TREE_LIBVIRT
+TREE_SEABIOS=$PUSH_TREE_SEABIOS
 
 if info_linux_tree "$branch"; then
 	cd $repos/linux
@@ -87,6 +88,10 @@ gnulib-libvirt)
 	echo "gnulib-libvirt has not push gate, refusing to push" >&2
 	exit 1
 	;;
+seabios)
+	cd $repos/seabios
+	git push $TREE_SEABIOS $revision:xen-tested-master
+	;;
 osstest)
 	git push $HOME/testing.git $revision:incoming
 	git push $XENBITS:/home/xen/git/osstest.git $revision:master
diff --git a/cr-daily-branch b/cr-daily-branch
index 837cf7a..82280a4 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -132,6 +132,14 @@ if [ "x$REVISION_LINUX_ARM" = x ]; then
         export REVISION_LINUX_ARM
     fi
 fi
+if [ "x$REVISION_SEABIOS" = x ]; then
+    if [ "x$tree" = "xseabios" ]; then
+	determine_version REVISION_SEABIOS seabios
+	export REVISION_SEABIOS
+    else
+	: REVISION_SEABIOS from Config.mk
+    fi
+fi
 if [ "x$REVISION_LIBVIRT" = x ]; then
 	determine_version REVISION_LIBVIRT libvirt
 	export REVISION_LIBVIRT
@@ -176,6 +184,10 @@ libvirt)
 	realtree=libvirt
 	NEW_REVISION=$REVISION_LIBVIRT
 	;;
+seabios)
+	realtree=seabios
+	NEW_REVISION=$REVISION_SEABIOS
+	;;
 *)
 	NEW_REVISION=''
 	wantpush=false
diff --git a/cr-for-branches b/cr-for-branches
index bded06f..5ed0a17 100755
--- a/cr-for-branches
+++ b/cr-for-branches
@@ -31,7 +31,7 @@ scriptoptions="$1"; shift
 LOGFILE=tmp/cr-for-branches.log
 export LOGFILE
 
-: ${BRANCHES:=osstest xen-4.0-testing xen-4.1-testing xen-4.2-testing xen-4.3-testing xen-4.4-testing xen-unstable qemu-mainline qemu-upstream-unstable qemu-upstream-4.2-testing qemu-upstream-4.3-testing qemu-upstream-4.4-testing linux-3.10 linux-3.4 linux-arm-xen ${EXTRA_BRANCHES}}
+: ${BRANCHES:=osstest xen-4.0-testing xen-4.1-testing xen-4.2-testing xen-4.3-testing xen-4.4-testing xen-unstable qemu-mainline qemu-upstream-unstable qemu-upstream-4.2-testing qemu-upstream-4.3-testing qemu-upstream-4.4-testing linux-3.10 linux-3.4 linux-arm-xen seabios ${EXTRA_BRANCHES}}
 export BRANCHES
 
 fetchwlem=$wlem
diff --git a/cri-common b/cri-common
index d901383..b180c4f 100644
--- a/cri-common
+++ b/cri-common
@@ -49,6 +49,7 @@ select_xenbranch () {
 	linux-*)		tree=linux;	xenbranch=xen-unstable ;;
 	linuxfirmware)	    tree=linuxfirmware;	xenbranch=xen-unstable ;;
 	libvirt)		tree=libvirt;	xenbranch=xen-unstable ;;
+	seabios)		tree=seabios;	xenbranch=xen-unstable ;;
 	osstest)		tree=osstest;	xenbranch=xen-unstable ;;
 	esac
 	if [ "x$tree" = xlinux ]; then
diff --git a/make-flight b/make-flight
index aadf58b..993416f 100755
--- a/make-flight
+++ b/make-flight
@@ -67,6 +67,11 @@ job_create_test_filter_callback () {
     libvirt)
       if [ x$toolstack != xlibvirt ] ; then return 1; fi
       ;;
+    seabios)
+      case $xenarch in
+          x86_64|x86_32) ;;
+          *) return 1;;
+      esac
     *)
       case "$job" in
         *-qemuu-*)
diff --git a/mfi-common b/mfi-common
index 3cfd3ea..bf18301 100644
--- a/mfi-common
+++ b/mfi-common
@@ -52,6 +52,7 @@ create_build_jobs () {
       linux-mingo-tip-master) continue;;
       linux-*) ;;
       qemu-*) continue;;
+      seabios) continue;;
       esac
       case "$xenbranch" in
       xen-3.*-testing) continue;;
@@ -131,12 +132,14 @@ create_build_jobs () {
         tree_qemu=$TREE_QEMU                                                 \
         tree_qemuu=$TREE_QEMU_UPSTREAM                                       \
         tree_xen=$TREE_XEN                                                   \
+        tree_seabios=$TREE_SEABIOS                                           \
                 $RUNVARS $BUILD_RUNVARS $BUILD_XEN_RUNVARS $arch_runvars     \
                 $suite_runvars                                               \
                 host_hostflags=$build_hostflags                              \
                 revision_xen=$REVISION_XEN                                   \
                 revision_qemu=$REVISION_QEMU                                 \
-                revision_qemuu=$REVISION_QEMU_UPSTREAM
+                revision_qemuu=$REVISION_QEMU_UPSTREAM                       \
+                revision_seabios=$REVISION_SEABIOS
 
     if [ $build_extraxend = "true" ] ; then
     ./cs-job-create $flight build-$arch-xend build                           \
diff --git a/ts-xen-build b/ts-xen-build
index 7ac46ea..5a764fd 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -67,6 +67,9 @@ END
                (nonempty($r{revision_qemuu}) ? <<END : '').
 	echo >>.config QEMU_UPSTREAM_REVISION='$r{revision_qemuu}'
 END
+               (nonempty($r{tree_seabios}) ? <<END : '').
+	echo >>.config SEABIOS_UPSTREAM_URL='$r{tree_seabios}'
+END
                (nonempty($r{revision_seabios}) ? <<END : '').
 	echo >>.config SEABIOS_UPSTREAM_TAG='$r{revision_seabios}'
 END
