#!/bin/sh

SCRIPT="$0"
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"

OUTPUT="build/coreboot.rom"
TMP_DIFF="$SCRIPT_DIR/.image-diff.bin"
FLASHROM="/usr/local/sbin/flashrom"

BL1_NAME="E5250.nbl1.bin"
BL1_PATH="3rdparty/cpu/samsung/exynos5250/"
BL1_URL="http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/exynos-pre-boot-0.0.2-r8.tbz2"

die() {
  echo "$*" >&2
  exit 1
}

create_diff_192k() {
  local image_file="$1"
  local diff_file="$2"
  cp -f "$image_file" "$diff_file"
  dd if=/dev/zero of=$diff_file bs=1 count=$((192*1024)) conv=notrunc
}

fast_flash_image() {
  local image_file="$1"
  local diff_file="$2"
  dut-control spi2_buf_en:on spi2_buf_on_flex_en:on spi2_vref:pp1800
  sudo ${FLASHROM} -p ft2232_spi:type=servo-v2,port=a -w "$image_file" -V \
    --noverify --ignore-fmap --diff "$diff_file"
  dut-control spi2_buf_en:off spi2_buf_on_flex_en:off spi2_vref:off
}

get_bl1() {
  wget "${BL1_URL}" -O /tmp/bl1.tbz2
  tar jxvf /tmp/bl1.tbz2
  mkdir -p "${BL1_PATH}"
  mv "exynos-pre-boot/firmware/${BL1_NAME}" "${BL1_PATH}"
  rm -rf exynos-pre-boot
  if [ ! -e "${BL1_PATH}/${BL1_NAME}" ]; then
    echo "Error getting BL1"
    exit 1
  fi
}

merge_bl1() {
  local outfile="$1"
  local bl1="${BL1_PATH}/${BL1_NAME}"

  if [ ! -e "$bl1" ]; then
    get_bl1
  fi

  # use the new BL1 which supports 30KB BL2/SPL/Coreboot
  local size="$(stat -c "%s" "$outfile")"
  local bl1_size="$(stat -c "%s" "$bl1")"

  [ "$bl1_size" = "$((0x2000))" ] || die "Incorrect BL1 input file."
  dd if="$bl1" of=${outfile} conv=notrunc
}

is_servod_ready() {
  ps -C servod >/dev/null 2>&1
}

main() {
  make
  merge_bl1 "$OUTPUT"
  create_diff_192k "$OUTPUT" "$TMP_DIFF"
  echo "OK: Generated image (with BL1) in $OUTPUT"
  if is_servod_ready; then
    echo "servod detected - flashing into device."
    fast_flash_image "$OUTPUT" "$TMP_DIFF"
    echo "OK: Generated and flashed 128k of image into device via servo."
  else
    echo "(servod is not running, flashing into device is skipped)"
  fi
}

set -e
main "$@"
