build_image: Add support for building mips

Provide mips arch definitions wherever needed. For now,
all arch specific cases are handled the same as arm.

BUG=chromium:365867
TEST=build_image --board=mipsel-o32-generic base
CQ-DEPEND=CL:201010

Change-Id: I462ef38c05c9d6f440e8ec1331c995f69f781fe8
Reviewed-on: https://chromium-review.googlesource.com/199995
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Gaurav Shah <gauravsh@chromium.org>
Commit-Queue: Gaurav Shah <gauravsh@chromium.org>
diff --git a/build_kernel_image.sh b/build_kernel_image.sh
index 6178ed9..179a9b5 100755
--- a/build_kernel_image.sh
+++ b/build_kernel_image.sh
@@ -295,7 +295,7 @@
 
   bootloader_path="/lib64/bootstub/bootstub.efi"
   kernel_image="${FLAGS_vmlinuz}"
-elif [[ "${FLAGS_arch}" = "arm" ]]; then
+elif [[ "${FLAGS_arch}" = "arm" || "${FLAGS_arch}" = "mips" ]]; then
   WORK="${WORK} ${FLAGS_working_dir}/config.txt"
 
   # arm does not need/have a bootloader in kernel partition
diff --git a/build_library/board_options.sh b/build_library/board_options.sh
index 6281018..af3c125 100644
--- a/build_library/board_options.sh
+++ b/build_library/board_options.sh
@@ -26,6 +26,9 @@
   *x86_64)
     ARCH="amd64"
     ;;
+  mips*)
+    ARCH="mips"
+    ;;
   *)
     error "Unable to determine ARCH from toolchain: ${CHOST}"
     exit 1
diff --git a/build_library/build_image_util.sh b/build_library/build_image_util.sh
index a91015e..8f42bf1 100755
--- a/build_library/build_image_util.sh
+++ b/build_library/build_image_util.sh
@@ -239,6 +239,8 @@
   case ${ARCH} in
   arm)
     sudo qemu-arm "${root_fs_dir}"/sbin/ldconfig -r "${root_fs_dir}";;
+  mips)
+    sudo qemu-mipsel "${root_fs_dir}"/sbin/ldconfig -r "${root_fs_dir}";;
   x86|amd64)
     sudo ldconfig -r "${root_fs_dir}";;
   *)
diff --git a/build_library/disk_layout_util.sh b/build_library/disk_layout_util.sh
index b8c4552..d2c5771 100644
--- a/build_library/disk_layout_util.sh
+++ b/build_library/disk_layout_util.sh
@@ -53,15 +53,11 @@
 
   local pmbr_img
   case ${ARCH} in
-  arm)
-    pmbr_img=/dev/zero
-    ;;
   amd64|x86)
     pmbr_img=$(readlink -f /usr/share/syslinux/gptmbr.bin)
     ;;
   *)
-    error "Unknown architecture: $ARCH"
-    return 1
+    pmbr_img=/dev/zero
     ;;
   esac