blob: 26f4b2ed913a7321c15df2990c7134abb9cf34f2 [file] [log] [blame]
Will Drewryd3c938b2010-07-03 13:32:26 -05001#!/bin/bash
2
3# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7# Creates an empty ESP image.
8
Greg Spencer798d75f2011-02-01 22:04:49 -08009# --- BEGIN COMMON.SH BOILERPLATE ---
10# Load common CrOS utilities. Inside the chroot this file is installed in
11# /usr/lib/crosutils. Outside the chroot we find it relative to the script's
12# location.
13find_common_sh() {
14 local common_paths=(/usr/lib/crosutils $(dirname "$(readlink -f "$0")"))
15 local path
16
17 SCRIPT_ROOT=
18 for path in "${common_paths[@]}"; do
19 if [ -r "${path}/common.sh" ]; then
20 SCRIPT_ROOT=${path}
21 break
22 fi
23 done
24}
25
26find_common_sh
27. "${SCRIPT_ROOT}/common.sh" || (echo "Unable to load common.sh" && exit 1)
28# --- END COMMON.SH BOILERPLATE ---
Will Drewryd3c938b2010-07-03 13:32:26 -050029
30get_default_board
31
32# Flags.
33DEFINE_string to "/tmp/esp.img" \
34 "Path to esp image (Default: /tmp/esp.img)"
35
36# Parse flags
37FLAGS "$@" || exit 1
38eval set -- "${FLAGS_ARGV}"
39set -e
40
41if [[ -e "${FLAGS_to}" ]]; then
42 info "ESP already exists: ${FLAGS_to}"
43 exit 0
44fi
45
46info "Creating a new esp image at ${FLAGS_to}" anyway.
47# Create EFI System Partition to boot stock EFI BIOS (but not ChromeOS EFI
Kenneth Waterse3049de2010-09-30 14:20:34 -070048# BIOS). ARM uses this space to determine which partition is bootable.
Will Drewryd3c938b2010-07-03 13:32:26 -050049# NOTE: The size argument for mkfs.vfat is in 1024-byte blocks.
50# We'll hard-code it to 16M for now.
51ESP_BLOCKS=16384
52/usr/sbin/mkfs.vfat -C "${FLAGS_to}" ${ESP_BLOCKS}