#!/bin/sh

# Copyright (C)  2015. Marvell International Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Marvell A/B Boot Provision Script
fastboot \
  flash partition ${ANDROID_BUILD_TOP}/vendor/bsp/marvell/device/abox_edge/bin/primary_gpt \
  flash misc ${ANDROID_BUILD_TOP}/vendor/bsp/marvell/device/abox_edge/bin/misc.bin \
  erase pbootloader  \
  flash pbootloader ${ANDROID_BUILD_TOP}/vendor/bsp/marvell/device/abox_edge/bootloader/u-boot.bin \
  erase rbootloader \
  flash rbootloader ${ANDROID_BUILD_TOP}/vendor/bsp/marvell/device/abox_edge/bootloader/u-boot.bin \
  flash boot_a ${ANDROID_PRODUCT_OUT}/boot.img \
  flash system_a ${ANDROID_PRODUCT_OUT}/system.img \
  flash userdata ${ANDROID_PRODUCT_OUT}/userdata.img \
  flash cache ${ANDROID_PRODUCT_OUT}/cache.img \
  flash recovery ${ANDROID_PRODUCT_OUT}/recovery.img \
  erase boot_b \
  erase system_b "$@"
